Skip to content

Tools Block

声明当前上下文中可用的工具集合,控制后续 Generation Block 能够调用哪些工具。

功能说明

Tools Block 是一个声明式节点(isDeclarative = true),它本身不执行具体操作,而是配置后续 AI 生成步骤可以使用的工具列表。执行到 Tools Block 时,它会替换当前工具注册表中的活跃工具集,并设置工具调用策略(auto 或 required)。

当你需要让 AI 在生成过程中调用外部工具(如调用其他 workflow、skill 或 MCP 服务)时,在 Generation Block 之前放置 Tools Block 来声明可用工具。

使用场景

  • AI Agent 工具配置:为 AI 提供一组可调用的 workflow 或 skill 工具,让 AI 根据上下文自动选择使用
  • MCP 集成:声明外部 MCP 服务提供的工具,让 AI 能够调用第三方 API
  • 工具约束:通过 toolChoice 参数控制 AI 是否必须使用工具(required)或自行判断(auto)

配置参数

属性名类型说明默认值
toolsstring工具列表(JSON 序列化的 ToolItem[]'[]'
toolChoice'auto' | 'required'工具调用策略:auto=AI 自行决定, required=必须调用工具'auto'

ToolItem 结构

每个工具项包含以下字段:

字段类型说明
type'workflow' | 'skill' | 'mcp'工具来源类型
idstring工具的唯一标识
labelstring工具显示名称
serverstringMCP 类型时的服务器标识(可选)

toolChoice 说明

行为
autoAI 根据上下文自行决定是否调用工具
requiredAI 必须至少调用一个工具

输出变量

Tools Block 的输出变量是动态生成的,根据配置的工具列表自动产生:

变量名类型说明
__default__object包含所有工具调用结果的对象
{tool_label}any每个工具按其 label 名称生成对应的输出变量

引用语法

{{tools_0}}                    -- 所有工具结果的对象
{{tools_0.my_tool}}            -- 名为 my_tool 的工具调用结果

注意:变量名称来自每个 ToolItem 的 label 字段。如果工具没有设置 label,则使用 tool_N 格式(N 从 1 开始)。

使用示例

示例 1:AI Agent 调用 workflow 工具

配置一组 workflow 工具,让 AI 根据用户请求自动选择调用:

[Tools Block: agent_tools] — toolChoice: auto
    工具列表:
    - type: workflow, label: "search_docs", id: "doc-xxx"
    - type: workflow, label: "send_email", id: "doc-yyy"
    |
[Generation Block] — "根据用户的请求选择合适的工具执行: {{input}}"
    (AI 会根据 prompt 内容决定是否调用 search_docs 或 send_email)

示例 2:强制使用 MCP 工具

配置 MCP 服务工具,并要求 AI 必须调用:

[Tools Block] — toolChoice: required
    工具列表:
    - type: mcp, label: "web_search", server: "search-server"
    |
[Generation Block] — "搜索关于量子计算的最新论文"
    (AI 必须调用 web_search 工具)

运行时约束

  • 适用文档类型:workflow(Slash 菜单中排除了 skill 类型文档)
  • 可插入上下文:顶层文档、Condition 分支、Loop 内、Promise 分支
  • 不可嵌套场景:无特殊限制

注意事项

  1. 覆盖而非叠加:每次执行 Tools Block 时,会全量替换当前活跃的工具集。如果文档中有多个 Tools Block,后声明的会覆盖前面的
  2. 空工具列表:如果配置的工具列表为空,会清除所有活跃工具并将 toolChoice 设为 none
  3. 工具解析:运行时会自动解析工具定义,将 workflow/skill 的 ID 转换为实际可调用的工具。如果解析失败(如目标文档不存在),该工具会被静默跳过
  4. 声明式节点:Tools Block 本身不消耗积分,不产生内容输出。它只是配置工具环境,真正的工具调用发生在后续的 Generation Block 中
  5. 兼容旧格式:Tools Block 向后兼容旧版 allowTools Block 的数据格式

AI Workflow Editor