考点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追踪流程
- 通过包装模块追踪函数用法