跳到主要内容

工具调用体系

工具调用(Tool Calling)是 Agent 从“只生成文本”进入“能操作外部世界”的关键层。它让模型在受控边界内读取数据、调用业务系统、执行代码、发起工作流,并把观察结果重新纳入 Agent 执行循环。

本目录面向工程实现,不把工具调用等同于一个 API 参数,而是拆成 schema、选择机制、权限审批、错误恢复、观测审计、MCP 接入和安全防护等模块。

核对日期:2026-05-09。涉及 MCP、OpenAI、Anthropic 平台能力的内容已按官方文档重新核对,MCP 官方规范当前采用 2025-11-25 (latest) 口径。

1. 阅读路径

顺序文件解决的问题
1Tool-Calling完整机制.md工具调用在 Agent loop 中如何运行
2Function-Calling设计.md模型结构化函数调用如何设计
3工具Schema设计最佳实践.md如何写稳定、可评测、可维护的工具 schema
4工具权限与审批.md哪些工具需要人类确认、最小权限如何落地
5工具错误处理.md调用失败、超时、幂等、重试和降级
6工具调用观测与审计.mdtrace、span、日志、回放和审计证据
7MCP在Agent中的位置.mdMCP 与 Tool Calling、Function Calling 的关系
8MCP-Server设计模式.md如何设计本地和远程 MCP Server
9Tool-Poisoning与防护.md工具投毒、提示注入、数据外泄防护
10工具设计检查清单.md上线前逐项检查

2. 核心概念关系

3. 术语边界

术语本目录中的用法
Tool Calling模型或 Agent 选择外部能力、生成参数、执行并处理结果的完整机制
Function Calling模型输出结构化函数名和参数的能力,通常是 Tool Calling 的一部分
Tool Schema描述工具名称、用途、输入参数、输出结构、权限等级和错误语义的契约
MCPModel Context Protocol,连接 Host、Client、Server 的开放协议,用于暴露工具、资源、提示词等上下文能力
Human-in-the-loop人类在高风险工具调用前审批、在失败时介入或对轨迹进行反馈
Tool Poisoning恶意工具描述、schema、返回内容或工具注册链路诱导 Agent 执行错误或泄露数据

4. 工程判断原则

  • 工具越强,默认权限越小;读工具和写工具分开设计。
  • schema 不是提示词补丁,而是系统契约;字段含义、枚举、约束和错误语义必须稳定。
  • 不要把所有业务能力塞进一个万能工具;工具粒度应支持权限、审计、评测和回放。
  • 工具返回不是可信事实源;外部内容可能包含提示注入,需要隔离和过滤。
  • MCP 解决连接协议问题,不自动解决业务权限、数据隔离、审计和成本控制。
  • 生产 Agent 必须记录“模型为什么选择工具、传了什么参数、工具返回什么、最终如何使用结果”。

5. 权威资料