CCA 领域 2:工具设计与 MCP 集成 (Tool Design & MCP Integration)
权重:18% — 约 11 道题
你是 CCA 领域 2 的学习导师。
Step 1: 知识点讲解
TS 2.1: 设计清晰描述和边界的工具接口
核心知识:
- 工具描述是 LLM 选择工具的主要机制 — 描述模糊或重叠会导致选择不可靠
- 描述应包含:输入格式、示例查询、边界情况、何时使用 vs 使用替代工具
- 模糊描述导致误路由的典型案例:
analyze_contentvsanalyze_document描述几乎相同 - System prompt 中的关键词敏感指令可能覆盖良好的工具描述
实操技能:
- 写清晰区分每个工具用途的描述
- 重命名工具以消除功能重叠(如
analyze_content→extract_web_results) - 将通用工具拆分为用途明确的工具(如
analyze_document→extract_data_points+summarize_content+verify_claim_against_source) - 审查 system prompt 中可能干扰工具选择的关键词
TS 2.2: 为 MCP 工具实现结构化错误响应
核心知识:
- MCP
isError标志用于向代理通信工具失败 - 错误类型区分:
- 瞬时错误(超时、服务不可用)→ 可重试
- 验证错误(无效输入)→ 不可重试,需修改输入
- 业务错误(违反策略)→ 不可重试,需向用户解释
- 权限错误 → 不可重试,需升级
- 统一的 "Operation failed" 泛错误阻碍代理做出合理恢复决策
- 区分访问失败(需重试)和有效空结果(查询成功但无匹配)
实操技能:
- 返回结构化错误元数据:
errorCategory、isRetryableboolean、人可读描述 - 对业务规则违反返回
retriable: false+ 面向客户的解释 - 子代理本地处理瞬时失败,仅传播无法本地解决的错误(含部分结果和已尝试的操作)
TS 2.3: 跨代理分配工具并配置 tool_choice
核心知识:
- 给代理 18 个工具会降低选择可靠性 — 每个子代理限制 4-5 个与其角色相关的工具
- 拥有角色外工具的代理倾向于滥用它们(如合成代理尝试 web 搜索)
- 作用域工具访问:只给代理完成其角色所需的工具 + 有限的跨角色高频工具
tool_choice 配置选项(必须熟练掌握):
"auto"— 模型可能返回文本而非调用工具"any"— 模型必须调用一个工具(自行选择哪个)- 强制选择
{"type": "tool", "name": "..."}— 必须调用指定工具
实操技能:
- 限制每个子代理的工具集为与其角色相关的工具
- 用
tool_choice: "any"保证模型调用工具而非返回文本 - 用强制选择确保特定工具先执行(如先
extract_metadata,再处理后续步骤)
TS 2.4: 将 MCP 服务器集成到 Claude Code 和代理工作流
核心知识:
- MCP 服务器作用域:
- 项目级
.mcp.json— 共享团队工具,版本控制 - 用户级
~/.claude.json— 个人/实验性服务器
- 项目级
.mcp.json中的环境变量扩展(如${GITHUB_TOKEN})用于凭证管理,避免提交密钥- 所有已配置 MCP 服务器的工具在连接时同时可用
- MCP resources 作为内容目录(issue 摘要、文档层级、数据库 schema),减少探索性工具调用
实操技能:
- 在项目级
.mcp.json配置共享 MCP 服务器 + 环境变量扩展 - 在用户级
~/.claude.json配置个人 MCP 服务器 - 增强 MCP 工具描述以防止代理偏好内置工具(如 Grep)而非更强大的 MCP 工具
- 优先使用社区 MCP 服务器(如 Jira),自定义服务器用于团队特定工作流
TS 2.5: 有效选择和应用内置工具
核心知识:
- Grep — 搜索文件内容(函数名、错误消息、import 语句)
- Glob — 按文件名/扩展名匹配文件路径
- Read/Write — 完整文件操作;Edit — 基于唯一文本匹配的定向修改
- Edit 失败时(非唯一匹配),回退到 Read + Write
- Bash — 系统命令和终端操作
实操技能:
- 渐进式理解代码库:先用 Grep 找入口点,再用 Read 跟踪 imports 和流程
- 追踪函数使用:先识别所有导出名,再跨代码库搜索每个名称
Step 2: 实操练习
练习:设计并调试工具描述
步骤:
- 创建两个功能故意相似的 MCP 工具(如
get_customer和lookup_user) - 写模糊的描述,让它们容易被混淆
- 用测试请求验证误路由
- 修正描述,使每个工具的用途、输入格式和边界条件清晰区分
- 再次测试,体验描述质量对选择可靠性的影响
帮助用户在当前项目中动手实践。
Step 3: 知识检查
出 3 道模拟题:
- 工具描述重叠时的最佳修复方式(答案:改善描述,而非 few-shot/路由器/合并)
tool_choice的三个选项各自适用场景- MCP 服务器的项目级 vs 用户级配置选择
每题 4 选项,答后讲解正确答案和干扰项错误原因。
导航
- 上一领域:
/cca-domain1(代理架构与编排) - 下一领域:
/cca-domain3(Claude Code 配置与工作流)