前言:在前面的系列文章中,我们分别介绍了 [SubAgent(专家团队)] 和 [Skills(技能包)]。但在实际落地时,很多小伙伴问我:“MCP、SubAgent 和 Skill 到底有什么区别?”、“我想实现一个功能,到底该写成 Skill 还是配成 SubAgent?”。今天,我们就来一场核心概念的“拆解大会”,彻底理清这三者的关系。
🧭 一、核心摘要
本文将通过“软件公司”的生动比喻,深度解析 Claude Code 架构的三大支柱:MCP(工具箱)、SubAgent(专家角色)和 Skill(标准流程)。我们将提供一份“实战选型决策树”和“配置路径速查表”,帮助你在开发时迅速做出正确的技术选择,构建清晰高效的 AI 工作流。
🏢 二、通俗理解:一家软件公司的运作模式
为了彻底搞懂这三个概念,我们把 Claude Code 想象成一家软件开发公司。
1️⃣ MCP (Model Context Protocol) —— “外包工具商”
关键词:能力、连接、数据源
MCP 是什么?
MCP 就像是公司签约的外部供应商或专业设备提供商。他们不参与公司决策,只负责提供特定的能力或数据。
场景举例:
你需要查数据库?👉 调用
PostgreSQL MCP(数据供应商)。你需要操作 GitHub?👉 调用
GitHub MCP(代码仓库服务商)。你需要看天气?👉 调用
Weather MCP(气象数据商)。
核心特征:被动调用。它不会自己思考“我要不要查数据库”,它只会在你(或 Agent)下令时执行操作。
2️⃣ SubAgent (子代理) —— “部门经理”
关键词:角色、独立上下文、复杂任务
SubAgent 是什么?
SubAgent 是公司内部的专职部门经理。他们有自己的独立办公室(独立的上下文窗口),专注于解决特定领域的复杂问题,避免打扰总经理(主 Agent)。
场景举例:
主要任务太杂了,把代码审查交给张经理(Code Reviewer SubAgent)。
要写一堆测试用例,交给李经理(Test Generator SubAgent)。
核心特征:主动思考。SubAgent 拿到任务后,会自己拆解步骤、调用工具(MCP)、检查结果,最后向你汇报。
3️⃣ Skill (技能包) —— “SOP 操作手册”
关键词:流程、规范、标准化
Skill 是什么?
Skill 是写在员工手册里的标准作业程序(SOP)。它规定了做某件事的最佳姿势,不管是总经理还是部门经理,干活时都要遵守这个规范。
场景举例:
《Git 提交规范手册》:规定了提交信息必须是
feat: ...格式(git-commit-messageSkill)。《Java 代码检查清单》:规定了命名必须驼峰、缩进必须 4 空格(
java-checkerSkill)。
核心特征:知识固化。它把团队的经验变成了可执行的指令。
2.4 三者关系可视化
下图直观地展示了它们在系统中的位置:开发者向主 Agent 下达指令,主 Agent 既可以直接调用 MCP 工具,也可以查阅 Skill 手册,或者将复杂任务委托给 SubAgent 团队处理。
📊 三、配置路径与核心差异对比
很多开发者搞不清楚配置文件该放在哪里,这里有一份详细的速查表。
| 特性 | MCP (工具) | SubAgent (专家) | Skill (SOP) |
| 核心定义 | 连接器:连接外部系统和数据 | 代理人:拥有独立思考能力的专家 | 说明书:标准化的操作步骤 |
| 项目级路径🥇 | claude_mcp_config.json | .claude/agents/*.md | .claude/skills/*.md |
| 全局级路径🥈 | ~/.config/claude/config.json | ~/.claude/agents/*.md | ~/.claude/skills/*.md |
| 文件格式 | JSON | Markdown (带 YAML 头) | Markdown (带 YAML 头) |
| 是否独立上下文 | ❌ 无 (依附于调用者) | ✅有 (独立上下文窗口) | ❌ 无 (依附于当前对话) |
| 主要用途 | 读写文件、查库、调 API | 代码审查、重构、写测试 | 规范代码风格、提交信息模板 |
💡 提示:
项目级路径:仅对当前项目生效,适合团队共享(建议加入
.gitignore或按需提交)。全局级路径:对本机所有项目生效,适合存放你个人的常用工具。
⚔️ 四、灵魂拷问:实战中我该用哪个?
这是大家最关心的问题。当你想扩展 Claude 的能力时,请查阅这份决策矩阵。
4.1 选型决策树
Q1: 你需要连接外部系统吗(如数据库、API、浏览器)?
✅ 是 👉你需要配置 [MCP]。
❌ 否 👉 进入 Q2。
Q2: 这是一个复杂的、多步骤的、需要独立思考的任务吗?
✅ 是(例如:重构整个模块、审查整个项目)👉你需要定义一个 [SubAgent]。
❌ 否(只是个简单的单步操作)👉 进入 Q3。
Q3: 你需要固定的输出格式或遵循特定的团队规范吗?
✅ 是(例如:生成特定格式的文档、提交信息)👉你需要编写一个 [Skill]。
❌ 否 👉 你可能只需要写个好点的 Prompt 及其它。
4.2 常见场景对照表
| 需求场景 | 最佳方案 | 理由 |
| 让 Claude 能读取 MySQL 数据 | MCP | 这是连接外部能力,不是逻辑处理。 |
| 每次写代码前,先自动跑一遍安全检查 | SubAgent | 安全检查需要复杂的分析逻辑和独立上下文。 |
| 生成的代码注释必须符合 Javadoc 标准 | Skill | 这是一个规范/格式要求,属于 SOP。 |
让 Claude 能直接在这个项目里跑npm test | MCP(Filesystem/Bash) | 这是执行命令的能力。 |
| 分析测试失败的原因并修复代码 | SubAgent | 需要分析、推理、修改的复杂闭环。 |
🔄 五、终极形态:三者如何协同工作?
Claude Code 的强大之处在于这三者的组合拳。让我们看一个真实的**“自动化代码修复”**流程:
任务:“帮我修复 UserLogin.java 里的 Bug,并提交代码。”
主 Agent(总经理)接到需求,判断任务复杂,指派给Fixer SubAgent(修复专家)。
Fixer SubAgent(专家)接手任务:
打开Debugger Skill(操作手册),查看“Bug 排查标准流程”。
根据手册,调用Filesystem MCP(工具)读取代码。
发现问题后,调用Bash MCP(工具)运行测试验证。
Fixer SubAgent修复代码后,汇报给主 Agent。
主 Agent准备提交:
激活Git Commit Skill(操作手册)生成规范的提交信息。
调用GitHub MCP(工具)推送代码。
一句话总结关系:
SubAgent(人)拿着Skill(手册),操作MCP(工具)来完成工作。
📝 六、结语
MCP给了 Claude“手和脚”,让它能触达外部世界。
SubAgent给了 Claude“分身术”,让它能并行处理专业任务。
Skill给了 Claude“记忆力”,让它永远不忘团队规范。
掌握了这三者的组合,你构建的就不只是一个聊天机器人,而是一个真正的AI 研发效能平台。
👉下一步:建议检查你的.claude目录,看看哪些 Prompt 可以转化为 Skill,哪些复杂的 System Prompt 应该升级为 SubAgent。
本文是《ClaudeCode 实战指南》系列的第七篇,关注 晨启AI,带你玩转 AI 编程。