🔧 Tool Composition

工具组合模式 - 乐高积木式构建 Agent 能力

更新时间: 2026-04-29 | 分类: Agent 架构

Tool Calling Agent 工作流 MCP 架构模式
"世界上有一种高级技能叫 Tool Composition,它就像做菜——单个调料没什么了不起,但把盐、糖、酱油、醋按比例组合,就能做出满汉全席。一个只会调用单个工具的 Agent,顶多是个跑腿小弟;能把工具组合起来的 Agent,才叫真正的助理。"

📖 什么是 Tool Composition

Tool Composition(工具组合)是指 Agent 将多个工具按照特定模式串联、并联、条件分支或循环调用,以完成单个工具无法完成的复杂任务的能力。

一句话解释:单个工具是螺丝刀,组合工具是瑞士军刀。Tool Composition 就是教 Agent 怎么把螺丝刀、扳手、开瓶器组合起来,一口气把 IKEA 书架装好。

为什么需要组合?

  • 任务复杂性:真实任务很少能用一个工具解决(写一篇文章需要搜索+生成+格式化+发布)
  • 数据流转:工具A的输出需要作为工具B的输入
  • 容错需求:一个工具失败了,需要另一个工具来补救
  • 效率优化:多个独立任务可以并行执行

⚙️ 四大核心组合模式

1. 链式组合 (Sequential Chain)

最基础的模式——A 的输出给 B,B 的输出给 C:

搜索工具 → 提取工具 → 格式化工具 → 发布工具
[Web Search] → [Extract] → [Format HTML] → [Write File]
# 链式组合 - AI 新闻日报生成流程 const dailyNewsPipeline = { steps: [ { tool: "web_search", params: { query: "AI news today 2026", limit: 20 } }, { tool: "web_fetch", # 拿搜索结果中的 URL 去抓内容 params: { # 自动接收上一步的 URLs } }, { tool: "write", # 生成 HTML 并保存 params: { path: "/var/www/miaoquai/news/2026-04-29.html" } } ] }; # 效果:搜索 → 抓取 → 生成 → 保存,一气呵成

2. 并行组合 (Parallel Fan-out)

同时执行多个独立任务,最后汇总结果:

┌→ 搜索 GitHub 热门 →┐
用户 → ├→ 搜索 Hacker News →├→ 汇总生成
└→ 搜索 Reddit AI →─┘
# 并行组合 - 多源热点追踪 const hotTopicsPipeline = { parallel: [ { tool: "web_search", params: { query: "site:github.com AI agent trending" } }, { tool: "web_search", params: { query: "site:news.ycombinator.com AI" } }, { tool: "web_search", params: { query: "site:reddit.com/r/artificial AI agent" } } ], aggregate: { tool: "write", params: { path: "/var/www/miaoquai/rss/hot-topics.html" } } }; # 效果:3个搜索同时进行,耗时从 15s → 5s

3. 条件组合 (Conditional Branch)

根据中间结果决定下一步走哪条路:

# 条件组合 - 智能内容路由 const smartRouter = { step1: { tool: "analyze_input" }, branches: { # 如果是技术问题 → 走技术回答流程 "technical": [ { tool: "web_search", params: { query: "${query} tutorial" } }, { tool: "generate_code_example" } ], # 如果是新闻类 → 走热点追踪流程 "news": [ { tool: "web_search", params: { query: "${query} latest news" } }, { tool: "summarize" } ], # 如果是运营任务 → 走运营流程 "ops": [ { tool: "execute_ops_task" }, { tool: "report" } ] } };

4. 循环组合 (Iterative Loop)

反复执行直到满足退出条件:

# 循环组合 - 死链检测与修复 const deadLinkChecker = { loop: { maxIterations: 50, exitCondition: "allLinksValid || iterations >= maxIterations", steps: [ { tool: "read", params: { path: "/var/www/miaoquai/sitemap.xml" } }, { tool: "exec", params: { command: "curl -s -o /dev/null -w '%{http_code}' ${url}" } }, { # 如果是 404 → 修复或删除 tool: "edit", condition: "statusCode === '404'", params: { # 移除死链 } } ] } }; # 效果:自动检查并修复所有死链

🚀 OpenClaw 实战应用

场景:妙趣AI 的每日运营工作流

# 妙趣AI 每日运营 - 混合组合模式 { "name": "daily-ops-pipeline", # 阶段 1:并行收集信息 "phase_collect": { "parallel": [ { tool: "web_search", task: "搜索 AI 行业热点" }, { tool: "web_fetch", task: "抓取 RSS 订阅源" }, { tool: "read", task: "读取竞品网站动态" } ] }, # 阶段 2:串行生成内容 "phase_generate": { "sequential": [ { tool: "write", task: "生成 AI 新闻日报" }, { tool: "write", task: "生成术语百科页面" }, { tool: "write", task: "生成踩坑实录" } ] }, # 阶段 3:条件检查 "phase_validate": { "condition": "contentQuality >= 4", "on_pass": [ { tool: "exec", task: "更新 sitemap.xml" }, { tool: "message", task: "通知飞书群:今日内容已发布" } ], "on_fail": [ { tool: "edit", task: "修复内容质量问题" } ] } }

场景:MCP Server 组合调用

# 通过 MCP 协议组合调用多个 Server { # GitHub MCP Server "github_mcp": { "list_issues": { repo: "miaoquai/tools" }, # 输出 issue 列表 }, # 用 issue 内容搜索相关文档 "search_mcp": { "search": { query: "${github_mcp.list_issues[0].title}", sources: ["docs", "stack_overflow"] } }, # 用找到的方案创建 PR "github_mcp": { "create_pr": { title: "Fix: ${github_mcp.list_issues[0].title}", body: "Based on: ${search_mcp.search.results}" } } } # 效果:自动发现 issue → 搜索方案 → 创建 PR
💡 OpenClaw 最佳实践
1. 先串行再并行:先确保每个工具单独能用,再考虑组合
2. 数据格式约定:工具间传递数据时统一 JSON schema
3. 超时保护:每个步骤设超时,防止一个工具卡住整个流程
4. 断点续传:记录已完成步骤,失败后可从断点恢复
5. 幂等设计:组合中的每个步骤应该是幂等的,可安全重试

⚠️ 反模式(避坑指南)

反模式 1:过度链式调用
A → B → C → D → E → F → G → H...
问题:链条越长,失败概率越高。8 个步骤串联,每个 99% 成功率,整体只有 92%。
解决方案:能并行的并行,不超过 4 步串行。
反模式 2:循环无退出
"检查所有链接 → 发现新链接 → 检查新链接 → 发现更新的链接..."
问题:无限循环,token 和 API 调用无限消耗。
解决方案:严格设 maxIterations + 超时。
反模式 3:数据格式不匹配
工具 A 输出 XML,工具 B 需要 JSON。
解决方案:组合层做格式适配,不要让工具自己处理。

📝 总结

Tool Composition 是 Agent 从"单打独斗"到"团队作战"的关键跃迁。就像你一个人搬砖效率有限,但如果能把搬砖、砌墙、刷漆组合起来,一天就能盖一栋房子。四个核心模式——链式、并行、条件、循环——就是 Agent 的"施工图纸"。