Ch15 Agent通信协议修订于 二〇二六年七月六日

对比-ToolUsevsFunctionCalling

概述

Tool Use(Anthropic)和 Function Calling(OpenAI)是让 LLM 调用外部工具/API 的机制。两者在技术本质上高度相似,但命名和部分细节存在差异。

核心对比

维度Tool Use (Anthropic)Function Calling (OpenAI)
提出方Anthropic(Claude API)OpenAI(GPT API)
技术机制本质相同:通过 JSON Schema 定义工具,模型返回结构化调用请求
工具定义格式JSON Schema,tools 参数传入JSON Schema,tools / functions 参数传入
并行调用原生支持,模型可一次返回多个 tool_use block支持(2024 年起),parallel_tool_calls
流式支持支持,tool_use 可流式返回支持,但部分场景需特殊处理
强制调用可通过 tool_choice 参数指定支持 tool_choice: "required"
多轮交互content block 模型,可混合文本和工具调用消息数组模型,每轮 tool 消息后追加 assistant 消息
响应格式tool_use content block,独立于文本tool_calls 数组,附加在 assistant message 上
服务端执行否,需客户端执行并返回结果否,需客户端执行并返回结果
2026 趋势两者趋同,MCP 协议统一工具发现与执行层

实际差异

尽管机制相同,实际使用中需注意:

  1. JSON Schema 细节:部分字段(如 required、additionalProperties)的默认行为可能不同
  2. 流式解析:Anthropic 的 content block 模型在流式场景下解析更直观
  3. 错误处理:两者对”模型拒绝调用工具”的表现形式不同

统一趋势

MCP(Model Context Protocol)在工具发现与执行层提供了统一抽象,屏蔽了底层 API 差异。无论是 Tool Use 还是 Function Calling,上层都可通过 MCP Server 以相同方式暴露工具。

相关笔记

来源

  • Anthropic Tool Use 官方文档
  • OpenAI Function Calling 官方文档
  • MCP 协议规范 (modelcontextprotocol.io)

关联8

知识图谱

局部图谱 · 点节点跳转