跳转到内容
搜索文档

工具

最后更新 查看 MarkdownAgent 设置

工具让模型检索信息、处理数据并执行操作。每个工具定义一个接口,描述其输入、输出和行为。

旅行 Agent 可能使用工具搜索航班、查询酒店价格、处理支付并发送确认邮件。工具接口让模型理解何时以及如何使用每项能力。

工具设计涉及三个独立选择:

  1. 模型接口 — 将工具暴露为直接 tool call,或通过 Code Mode。
  2. 执行位置 — 在 Worker、浏览器或另一个 Agent 中运行工具实现。
  3. 工具来源 — 在应用中定义工具,或通过 Model Context Protocol (MCP) 连接外部托管工具。

例如,浏览器工具可直接暴露,也可通过 Code Mode 暴露。MCP 工具同样可通过任一模型接口暴露。

选择模型接口

直接 tool call 和 Code Mode 定义模型如何查看和调用工具。它们不决定底层工具实现在何处运行。

接口 工作方式 适用场景
直接 tool call 模型接收各个工具定义。每次结果返回模型后,模型再选择下一次调用。 任务简单且使用少量已知工具集。
Code Mode 模型接收一个 code tool,并针对类型化工具接口编写代码。 任务需要组合、依赖调用、过滤、分支、可重复逻辑或工具发现。

直接 tool call

大多数工具示例使用直接 tool call,即使未明确命名该模式。你定义每个工具并将其 schema 传给模型。模型选择工具,应用执行它,结果返回模型。

模型在每次选择另一个工具之前都会看到中间结果。这使执行路径易于检查。但依赖操作需要重复的模型轮次,并消耗上下文来存储中间数据。

Code Mode

Code Mode 给模型一个代码执行工具。模型编写 JavaScript 调用类型化工具、在工具间传递结果并应用控制流。

生成的代码可过滤大型响应,仅返回模型需要的最终值。中间结果保留在沙箱内,而不是每次操作后都进入模型上下文。这使 Code Mode 更适合组合 Workflow 和大型工具目录。

Code Mode 还支持渐进式发现。模型可搜索可用 connector,并仅为需要的方法请求详细类型。成功的程序可保存为可复用 snippet。

有关运行时行为、审批、重放和 snippet,请参阅 Code Mode 工作原理

选择工具运行位置

执行位置描述工具实现在何处运行。它与模型接口无关。各位置的工具均可直接暴露或通过 Code Mode 暴露。

位置 适用场景 从这里开始
Worker 工具调用 API、查询 SQL,或使用服务端 binding 和密钥。 服务端工具
Browser 工具需要 geolocation、剪贴板、local storage 或其他浏览器 API。 客户端工具
另一个 Agent 支持聊天的 Agent 应作为保留的流式 tool 执行。 Agent 作为工具

使用直接 tool call 时,模型调用工具,框架将执行路由到配置的位置。

使用 Code Mode 时,生成的代码在沙箱中运行。该代码中的调用会跨越沙箱边界到达底层工具实现。服务端工具可在宿主 Worker 中执行,浏览器拥有的工具可在父页面中执行,Agent 工具可将工作委派给另一个 Agent。

通过 MCP 连接外部工具

Model Context Protocol (MCP) 标准化 AI 应用如何发现并调用外部托管工具。MCP 描述工具的来源和传输,而非模型必须如何调用它。

Agent 可通过任一模型接口暴露 MCP 工具:

MCP 服务器也可暴露 Code Mode 本身。例如,它可呈现一个 code tool,或分别呈现 searchexecute tool。有关这些服务端模式,请参阅 Code Mode MCP 服务器模式

控制副作用

审批策略也与执行位置和工具来源无关。任何修改外部状态的工具都可能需要用户审批。

直接 tool 可使用标准 human-in-the-loop 审批模式

持久化 Code Mode 运行时可在标注的 connector 方法执行前暂停生成的代码。审批会从执行日志重放已完成的调用,应用已批准的操作,并继续同一程序。

这篇文档对您有帮助吗?