Skip to content

案例:同一个天气工具在不同 Provider 下怎么接

假设我们有同一个工具:

json
{
  "name": "get_weather",
  "description": "获取指定城市天气",
  "input": {
    "city": "Shanghai"
  }
}

在 OpenAI 里的心智模型

  • 工具定义放进 tools
  • 调用请求在 message.tool_calls
  • 结果通过 role=tool 回填

在 Anthropic 里的心智模型

  • 工具定义也要给模型
  • 调用请求在 content blocks 的 tool_use
  • 结果通过 tool_result block 回填

在 Gemini 里的心智模型

  • 通过 function declarations 暴露能力
  • 函数调用结果结构受 SDK 影响较大
  • 最好尽快归一化成内部结构

为什么这个案例重要

因为它能帮你把“同一业务动作,不同 provider 的协议差异”一眼看清。

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