Skip to content

考点2:工具设计与MCP集成(18%)

2.1 设计具有清晰描述的工具接口

关键知识:

  • 工具描述是LLM选择工具的主要机制;最简描述会导致选择不可靠
  • 包含输入格式、示例查询、边缘情况和适用边界的重要性
  • 模糊或重叠的描述会导致路由错误
  • 系统提示词的措辞可能与工具产生意外关联

关键技能:

  • 编写能清楚区分每个工具与类似替代品的描述
  • 重命名工具以消除功能重叠(例如,analyze_content -> extract_web_results
  • 将通用工具拆分为具有清晰输入/输出合约的专用工具

2.2 为MCP工具实现结构化错误响应

关键知识:

  • MCP工具响应中的 isError 标志
  • 瞬时错误(超时)、验证错误(错误输入)、业务错误(策略违规)和访问/权限错误之间的区别
  • 通用错误("操作失败")阻止正确的恢复决策
  • 可重试和不可重试错误之间的区别

关键技能:

  • 返回结构化元数据,如 errorCategory(瞬时/验证/权限)、isRetryable 和人类可读的消息
  • 对业务规则违规使用 retryable: false,并提供清晰的面向用户的解释
  • 在子智能体内对瞬时失败进行本地恢复;仅传播无法解决的错误
  • 区分访问失败(重试决策)和有效的空结果(无匹配)

2.3 跨智能体分配工具并配置 tool_choice

关键知识:

  • 每个智能体工具过多(例如18个而非4-5个)会降低工具选择的可靠性
  • 拥有超出其专业范围工具的智能体往往会误用这些工具
  • 作用域工具访问:仅角色相关工具加上有限的跨角色实用工具集
  • tool_choice"auto""any" 和强制工具选择({"type": "tool", "name": "..."}

关键技能:

  • 将每个子智能体的工具集限制在其角色相关的范围内
  • 用受约束的替代品替换通用工具(例如,fetch_url -> load_document
  • 使用 tool_choice: "any" 保证工具调用而非文本回答
  • 强制特定工具以确保执行顺序

2.4 将MCP服务器集成到Claude Code和智能体工作流中

关键知识:

  • MCP服务器作用域:项目(.mcp.json)用于团队 vs 用户(~/.claude.json)用于实验
  • .mcp.json 中的环境变量替换(例如,${GITHUB_TOKEN})用于密钥管理
  • 所有连接的MCP服务器的工具在连接时被发现,同时可用
  • MCP资源作为"内容目录"(任务摘要、数据库模式)以减少探索性工具调用

关键技能:

  • 在项目 .mcp.json 中使用基于环境变量的令牌配置共享MCP服务器
  • ~/.claude.json 中保存个人/实验性服务器
  • 对标准集成优先使用社区MCP服务器而非自定义服务器

2.5 选择和应用内置工具(Read、Write、Edit、Bash、Grep、Glob)

关键知识:

  • Grep:在文件内容中搜索(函数名、错误消息、导入)
  • Glob:按名称/扩展名模式查找文件
  • Read/Write:全文件操作;Edit:通过唯一文本匹配进行精确修改
  • 如果Edit因非唯一匹配而失败,则退回到Read + Write

关键技能:

  • 使用Grep进行内容搜索,使用Glob按模式进行文件发现
  • 渐进式建立理解:Grep入口点,然后Read追踪流程
  • 通过包装模块追踪函数用法