工具调用体系
工具调用(Tool Calling)是 Agent 从“只生成文本”进入“能操作外部世界”的关键层。它让模型在受控边界内读取数据、调用业务系统、执行代码、发起工作流,并把观察结果重新纳入 Agent 执行循环。
本目录面向工程实现,不把工具调用等同于一个 API 参数,而是拆成 schema、选择机制、权限审批、错误恢复、观测审计、MCP 接入和安全防护等模块。
核对日期:2026-05-09。涉及 MCP、OpenAI、Anthropic 平台能力的内容已按官方文档重新核对,MCP 官方规范当前采用 2025-11-25 (latest) 口径。
1. 阅读路径
| 顺序 | 文件 | 解决的问题 |
|---|---|---|
| 1 | Tool-Calling完整机制.md | 工具调用在 Agent loop 中如何运行 |
| 2 | Function-Calling设计.md | 模型结构化函数调用如何设计 |
| 3 | 工具Schema设计最佳实践.md | 如何写稳定、可评测、可维护的工具 schema |
| 4 | 工具权限与审批.md | 哪些工具需要人类确认、最小权限如何落地 |
| 5 | 工具错误处理.md | 调用失败、超时、幂等、重试和降级 |
| 6 | 工具调用观测与审计.md | trace、span、日志、回放和审计证据 |
| 7 | MCP在Agent中的位置.md | MCP 与 Tool Calling、Function Calling 的关系 |
| 8 | MCP-Server设计模式.md | 如何设计本地和远程 MCP Server |
| 9 | Tool-Poisoning与防护.md | 工具投毒、提示注入、数据外泄防护 |
| 10 | 工具设计检查清单.md | 上线前逐项检查 |
2. 核心概念关系
3. 术语边界
| 术语 | 本目录中的用法 |
|---|---|
| Tool Calling | 模型或 Agent 选择外部能力、生成参数、执行并处理结果的完整机制 |
| Function Calling | 模型输出结构化函数名和参数的能力,通常是 Tool Calling 的一部分 |
| Tool Schema | 描述工具名称、用途、输入参数、输出结构、权限等级和错误语义的契约 |
| MCP | Model Context Protocol,连接 Host、Client、Server 的开放协议,用于暴露工具、资源、提示词等上下文能力 |
| Human-in-the-loop | 人类在高风险工具调用前审批、在失败时介入或对轨迹进行反馈 |
| Tool Poisoning | 恶意工具描述、schema、返回内容或工具注册链路诱导 Agent 执行错误或泄露数据 |
4. 工程判断原则
- 工具越强,默认权限越小;读工具和写工具分开设计。
- schema 不是提示词补丁,而是系统契约;字段含义、枚举、约束和错误语义必须稳定。
- 不要把所有业务能力塞进一个万能工具;工具粒度应支持权限、审计、评测和回放。
- 工具返回不是可信事实源;外部内容可能包含提示注入,需要隔离和过滤。
- MCP 解决连接协议问题,不自动解决业务权限、数据隔离、审计和成本控制。
- 生产 Agent 必须记录“模型为什么选择工具、传了什么参数、工具返回什么、最终如何使用结果”。
5. 权威资料
- MCP Specification 2025-11-25: https://modelcontextprotocol.io/specification/2025-11-25
- MCP Security Best Practices: https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices
- OpenAI Function Calling guide: https://platform.openai.com/docs/guides/function-calling
- OpenAI Remote MCP guide: https://platform.openai.com/docs/guides/tools-remote-mcp
- Anthropic Tool Use docs: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/implement-tool-use
- Anthropic MCP connector docs: https://docs.anthropic.com/en/docs/agents-and-tools/mcp-connector
- OWASP Top 10 for LLM Applications 2025: https://owasp.org/www-project-top-10-for-large-language-model-applications/
- NIST AI Risk Management Framework: https://www.nist.gov/itl/ai-risk-management-framework