工具调用与 MCP¶
工具调用让模型能够使用外部能力,例如搜索、数据库、代码执行、文件读写和业务 API。MCP(Model Context Protocol)可以理解为一种把工具和上下文标准化暴露给模型客户端的协议。
为什么需要工具调用¶
模型参数本身不适合保存所有实时信息,也不应该直接承担所有确定性计算。工具调用可以让模型:
- 获取最新数据。
- 执行精确计算。
- 查询业务系统。
- 操作文件或代码。
- 调用专用模型或服务。
工具设计原则¶
- 输入 schema 明确,减少自由文本歧义。
- 返回结果结构化,便于模型继续推理。
- 权限最小化,危险操作需要确认。
- 工具错误要可解释,不能只返回失败。
- 工具数量不要泛滥,优先做稳定常用工具。
MCP 的价值¶
- 标准化工具暴露方式。
- 统一资源、提示词和工具的上下文接口。
- 降低不同客户端与工具服务之间的适配成本。
- 更容易做权限控制和审计。
常见工具类型¶
- Search:搜索网页、文档或知识库。
- Database:SQL / NoSQL 查询。
- Code Interpreter:运行代码、分析数据。
- File System:读取、修改、生成文件。
- Browser / GUI:操作网页或桌面应用。
- Business API:订单、用户、工单、指标系统。
风险¶
- 工具 hallucination:模型臆造不存在的工具参数。
- 权限扩大:工具能做的事情超过任务需要。
- 状态不一致:模型记忆中的状态和外部系统不一致。
- 错误传播:工具结果错,模型继续基于错误结果生成。