案例:同一个天气工具在不同 Provider 下怎么接
假设我们有同一个工具:
json
{
"name": "get_weather",
"description": "获取指定城市天气",
"input": {
"city": "Shanghai"
}
}在 OpenAI 里的心智模型
- 工具定义放进
tools - 调用请求在
message.tool_calls - 结果通过
role=tool回填
在 Anthropic 里的心智模型
- 工具定义也要给模型
- 调用请求在 content blocks 的
tool_use - 结果通过
tool_resultblock 回填
在 Gemini 里的心智模型
- 通过 function declarations 暴露能力
- 函数调用结果结构受 SDK 影响较大
- 最好尽快归一化成内部结构
为什么这个案例重要
因为它能帮你把“同一业务动作,不同 provider 的协议差异”一眼看清。