🧠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 的 oneOfenumpattern 在 LLM 调用场景里踩过哪些坑?
  • 工具太多时怎么做工具检索和分发?

原理展开

  • OpenAI tools:顶层 tools: [{type: 'function', function: {...}}],返回 tool_calls
  • Anthropic tools:顶层 tools: [{name, description, input_schema}],返回 tool_use block
  • MCP 协议:基于 JSON-RPC,通过 stdio / SSE 传输;Server 声明 capabilities
  • Schema 稳定性:字段名、类型、描述都会影响调用准确率
  • 工具路由:工具 > 20 个就考虑 embedding 检索或分组暴露

易错点

  • 用自然语言「隐式」定义参数,忘了 Schema 约束
  • 字段描述写得太抽象,模型选错工具
  • 把业务枚举值开放为自由字符串,幻觉参数
  • 多厂商适配层没做,换一个模型就重写所有工具

记忆技巧

  • 三要素:name、description、input_schema
  • MCP 类比:AI 领域的 LSP
  • 防幻觉口诀:能枚举就不开放,能约束就不描述