Skip to content

开始使用

如果你是第一次接触 tool_calls,可以把它理解成:让模型不只会说,还会按约定调用外部能力。

在 OpenClaw 和主流 LLM API 里,这通常表现为:

  1. 你先声明可用工具
  2. 用户发来请求
  3. 模型判断要不要调用工具
  4. 模型返回结构化调用请求
  5. 宿主程序执行工具
  6. 再把结果发回模型生成最终回答

一个最小心智模型

text
用户提问

模型:这个问题需要外部能力吗?

如果需要 → 返回 tool_calls / tool_use / function call

宿主程序执行工具

把结果回填给模型

模型输出最终答复

最容易卡住的地方

初学者通常不是卡在“不会写 tools 数组”,而是卡在:

  • 不知道什么时候该调用工具
  • 不知道 tool loop 怎么收口
  • 不知道结果回填格式为什么老错
  • 不知道 provider 差异该怎么抽象
  • 不知道在 OpenClaw 里哪些能力该直接用第一方工具

在 OpenClaw 里多了一层什么

OpenClaw 不是简单 SDK 封装,它还负责:

  • 会话状态
  • 消息路由
  • 工具权限边界
  • workspace 文件上下文
  • 技能系统
  • 子代理与 ACP harness

所以在 OpenClaw 里讨论 tool_calls,不能只停留在 JSON 结构,还要理解工具是如何被调度和约束的

推荐阅读路径

聚焦 OpenClaw、tool_calls、function calling 与 agent 实战。