🧠AI Agent 与工具调用
MCP 与 Function Schema 标准化
面试回答
常见问法
- OpenAI Function Calling、Anthropic Tool Use、Google Function Calling 有什么差异?
- MCP(Model Context Protocol)在解决什么问题?
- 工具 Schema 设计有哪些工程上的坑?
- 多厂商工具规范怎么做抽象适配?
回答
待补充:切入点是「工具定义分散、厂商各自为政」,MCP 本质是把工具调用、资源访问、提示模板做成一个跨 LLM 的标准协议,类似 AI 版的 LSP。
追问
- MCP 的 Server / Client / Host 三角色分别负责什么?
- MCP 的 Resources、Tools、Prompts 三类能力怎么用?
- JSON Schema 的
oneOf、enum、pattern在 LLM 调用场景里踩过哪些坑? - 工具太多时怎么做工具检索和分发?
原理展开
- OpenAI tools:顶层
tools: [{type: 'function', function: {...}}],返回tool_calls - Anthropic tools:顶层
tools: [{name, description, input_schema}],返回tool_useblock - MCP 协议:基于 JSON-RPC,通过 stdio / SSE 传输;Server 声明 capabilities
- Schema 稳定性:字段名、类型、描述都会影响调用准确率
- 工具路由:工具 > 20 个就考虑 embedding 检索或分组暴露
易错点
- 用自然语言「隐式」定义参数,忘了 Schema 约束
- 字段描述写得太抽象,模型选错工具
- 把业务枚举值开放为自由字符串,幻觉参数
- 多厂商适配层没做,换一个模型就重写所有工具
记忆技巧
- 三要素:name、description、input_schema
- MCP 类比:AI 领域的 LSP
- 防幻觉口诀:能枚举就不开放,能约束就不描述