为什么你的 Claude Code 越用越慢?揭秘 Skill、SubAgent、MCP 的记忆管理秘密
本文探讨了AI Agent面临的"上下文污染"问题及其解决方案。随着AI能力的提升,上下文管理成为关键瓶颈,表现为信息过载、注意力分散和推理混乱。Claude Code提出三种设计理念:Skill采用懒加载策略按需调用功能;SubAgent通过上下文隔离处理复杂任务;MCP则一次性加载所有工具说明。三者各具优势:Skill适合轻量级任务快速切换,SubAgent处理复杂子任务,
前言:当 AI 的桌子越来越乱
你有没有遇到过这种情况:
和 Claude Code 聊了半小时,它突然开始"失忆",忘记了之前讨论的关键信息。或者,你让它完成一个简单任务,它却调用了一堆不相关的工具,最后把自己绕晕了。
这不是 AI 变笨了,而是它的"工作桌"太乱了。
想象一下,你的办公桌上堆满了文件、便签、工具手册、参考资料。一开始还能找到需要的东西,但随着东西越堆越多,你开始翻来翻去,效率直线下降,甚至把重要文件压在了最底下。
AI 的上下文(Context)就是这张工作桌。
桌子大小是固定的(上下文窗口有限),你放的东西越多,AI 就越难找到关键信息。这就是所谓的"上下文污染"(Context Pollution)问题。
2026 年,随着 AI Agent 能力的爆炸式增长,如何优雅地管理这张"工作桌",成了决定 Agent 性能的关键。而 Claude Code 给出的答案,就是 Skill、SubAgent、MCP 这三大设计理念。
今天,我们就来深入聊聊这三者的设计哲学,以及它们如何解决 AI Agent 的记忆管理难题。
一、三者的本质:都是 Prompt,但组织方式不同
首先要明确一点:Skill、SubAgent、MCP,本质上都是用 Prompt 来组织的。
它们就像工具的说明书,告诉 AI:
- 这个工具是干什么的
- 什么时候该用它
- 怎么用它
但关键区别在于:这些说明书是怎么加载到 AI 的"工作桌"上的。

1.1 MCP:一次性全加载
MCP(Model Context Protocol) 是 Anthropic 推出的标准化扩展协议,用于连接外部工具和数据源。
加载方式:
启动 Claude Code
↓
一次性加载所有 MCP 工具的完整说明
↓
所有工具说明都占用上下文
问题:
MCP 太臃肿了。比如 Chrome DevTools 的 MCP,功能很强大,但工具说明非常详细。即使你只是想截个图,所有关于网络监控、性能分析、DOM 操作的说明也都加载进来了。
这就像你只是想用螺丝刀,却把整个工具箱的说明书都摊在桌上。
1.2 Skill:渐进式懒加载
Skill 是 Claude Code 内置的专业化任务模板。
加载方式:
启动 Claude Code
↓
只加载 Skill 的名字和简介(轻量级)
↓
用户触发某个 Skill
↓
才加载该 Skill 的完整说明
优势:
Skill 采用了"懒加载"(Lazy Loading)策略。一开始只告诉 AI:“我有这些能力”,等真正需要时才加载详细说明。
这就像你的工具箱上贴了标签:“螺丝刀、扳手、锤子”。需要螺丝刀时,才拿出螺丝刀的说明书。
实际效果:
根据最新研究,懒加载的 Prompt 工程已经成为 2026 年的标准模式,Claude、ChatGPT、Gemini 都在采用这种策略。
1.3 SubAgent:上下文隔离
SubAgent 是通过 Task 工具调用的专业化子代理。
工作方式:
主 Agent 接收任务
↓
把子任务委托给 SubAgent
↓
SubAgent 在独立的上下文中工作
↓
只把最终结果返回给主 Agent
核心价值:
SubAgent 解决的是上下文污染和过载问题。子任务的中间结果不会污染主 Agent 的上下文。
这就像你把一个复杂任务外包给专业团队,他们在自己的办公室里干活,最后只给你一份简洁的汇报。你的桌子保持干净。
二、上下文管理:AI 的记忆瓶颈
要理解三者的设计差异,必须先理解上下文管理这个核心问题。
2.1 什么是上下文污染?
上下文污染(Context Pollution) 是指:上下文中存在太多无关、冗余或冲突的信息,导致 AI 推理能力下降。
典型症状:
- 信息过载:工具说明太多,AI 找不到关键信息
- 注意力分散:中间结果太多,AI 忘记了原始任务
- 推理混乱:新旧信息冲突,AI 开始"胡言乱语"
根据 2026 年的研究,上下文污染已经成为限制 AI Agent 性能的主要瓶颈。
2.2 三种管理策略
| 策略 | 代表 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 全加载 | MCP | 信息完整,推理连贯 | 占用大量上下文 | 工具数量少、说明简洁 |
| 懒加载 | Skill | 按需加载,节省空间 | 需要设计加载时机 | 工具数量多、使用频率低 |
| 上下文隔离 | SubAgent | 彻底隔离,避免污染 | 信息传递需要设计 | 子任务复杂、中间结果多 |
三、实战场景:什么时候用什么?
3.1 Skill:轻量级能力扩展
适用场景:
✅ 标准化任务
- 提交代码:
/commit - 代码审查:
/review-pr - 创建 PR:直接说"创建 PR"
✅ 任务复合度不高
- 单个 Skill 能独立完成
- 不需要多个 Skill 协作
✅ 需要快速切换场景
- 进入 YouTube 总结模式
- 进入写报告模式
- 进入前端设计模式
使用技巧:
# 直接调用
/commit
# 自然语言触发
"帮我提交代码" → 自动调用 /commit
# 场景切换
"进入前端设计模式" → 加载 frontend-design Skill
注意事项:
如果同时加载多个 Skill,会出现性能下降问题。因为每个 Skill 的完整说明都会占用上下文。
3.2 SubAgent:复杂任务外包
适用场景:
✅ 子任务很重、很耗时
- 浏览器调试(Chrome DevTools)
- 大规模代码搜索
- 复杂的架构分析
✅ 中间过程很啰嗦
- 截图、DOM 树、网络请求细节
- 多轮搜索的中间结果
- 调试日志和错误信息
✅ 需要保持主 Agent 上下文干净
- 主 Agent 负责整体规划
- SubAgent 负责具体执行
实战案例:
# 场景:分析网页性能问题
主 Agent:
"这个网页加载很慢,帮我分析一下原因"
内部流程:
1. 启动 Playwright SubAgent
2. SubAgent 打开浏览器
3. SubAgent 截图、查看网络请求、分析性能指标
4. SubAgent 生成分析报告
5. 只把报告返回给主 Agent
主 Agent 收到:
"发现 3 个性能瓶颈:
1. 首屏加载了 50 张未压缩的图片
2. 有 10 个阻塞渲染的 JS 文件
3. 字体文件加载超时"
中间的截图、DOM 树、网络请求细节,
全都留在 SubAgent 那边,不污染主 Agent。
3.3 MCP:基础能力层
适用场景:
✅ 工具数量少、说明简洁
- 文件系统操作
- 简单的 API 调用
- 轻量级数据查询
✅ 需要频繁调用
- 代码符号搜索(Serena MCP)
- 文档查询(Context7 MCP)
✅ 需要实时数据
- 连接数据库
- 访问外部 API
使用建议:
根据项目 CLAUDE.md 中的 MCP 调用规则:
核心原则:
- 审慎单选:每轮最多调用 1 个 MCP 服务
- 序贯调用:多服务需求时必须串行
- 最小范围:精确限定查询参数
优先级顺序:
- Serena(本地代码分析)
- Context7(官方文档)
- DuckDuckGo(外部信息)
四、进阶玩法:组合使用
4.1 先展开再压缩
这是从 @yan5xu 那里学来的技巧。
场景:
你需要某个 Skill 的能力,但又不想让它的中间过程污染上下文。
做法:
1. 加载 Skill,执行任务
2. 拿到结果后,把整个过程"折叠"
3. 只保留最终结论
类比:
就像开了一个两小时的头脑风暴会,白板上写满了草稿、争论、被否决的方案。但最后写进会议纪要的只有三条结论。
那些中间过程对得出结论很重要,但对后续执行的人来说是噪音。
4.2 文件系统做中转站
场景:
主 Agent 和 SubAgent 之间需要传递大量信息。
做法:
主 Agent:
"需求文档在这个文件,去看"
SubAgent:
完成任务,把结果写入文件
"代码在这个文件,部署文档在这里"
主 Agent:
根据情况决定要不要点进去看细节
优势:
双方的上下文都保持精简,只传递文件路径,不传递完整内容。
4.3 Claude Code 的 Rewind 技巧
场景:
上下文快见底了,但任务还没完成。
做法:
1. 让 Claude 把当前工作总结成文档
2. 用 rewind 功能回滚到任务开始前
3. 告诉它:"这件事我已经做完了,记录在这个文件里"
效果:
相当于你跑了一场马拉松,快到终点时发现体力不支。于是你把已经跑过的路线画成地图存档,然后"瞬移"回起点,精力充沛地说"我知道怎么走了,地图在这"。
上下文被清空了,但成果保留了下来。
五、设计哲学:软件架构的映射
说到底,Agent 架构设计和软件架构设计有很多相通之处。
5.1 单体 vs 微服务
MCP 全加载 = 单体应用
- 所有功能都在一个进程里
- 信息共享方便,但容易臃肿
SubAgent 隔离 = 微服务架构
- 每个服务独立运行
- 状态隔离,但需要设计通信
5.2 全局变量 vs 模块化
上下文共享 = 全局变量
- 图省事,但容易出 bug
- 信息冲突难以排查
上下文隔离 = 模块化设计
- 严格隔离状态
- 保持干净,但需要设计接口
5.3 巨型函数 vs 函数拆分
所有逻辑在主 Agent = 巨型函数
- 一个函数几千行
- 难以维护和测试
委托给 SubAgent = 函数拆分
- 每个函数职责单一
- 易于理解和复用
六、2026 年的趋势:上下文工程
根据最新研究,上下文工程(Context Engineering) 正在成为 2026 年 AI 领域的核心竞争力。
6.1 什么是上下文工程?
上下文工程是指:结构化、验证、同步和治理 AI Agent 依赖的信息,确保它们在正确的时间获得正确的上下文。
6.2 核心原则
- 最小化原则:只加载必要的信息
- 隔离原则:子任务的中间结果不污染主上下文
- 复用原则:设计可复用的上下文片段
- 治理原则:建立上下文的版本管理和质量控制
6.3 实践建议
对于开发者:
- 优先使用 Skill 的懒加载特性
- 复杂任务委托给 SubAgent
- 谨慎使用 MCP,控制工具数量
对于 Skill 开发者:
- 设计简洁的工具说明
- 提供清晰的使用场景描述
- 支持渐进式加载
对于 MCP 开发者:
- 拆分大型 MCP 为多个小型 MCP
- 提供轻量级的工具列表
- 支持按需加载详细说明
七、总结:记忆管理的艺术
AI Agent 要变强,有两条完全不同的路:
一条是 Skill:给自己装技能,把新能力直接塞进脑子里。
另一条是 SubAgent:像派小弟去干活,自己只看汇报。
而 MCP 则是基础能力层,提供标准化的工具接口。
三者的关系:
┌─────────────────────────────────────┐
│ Claude Code 核心 │
├─────────────────────────────────────┤
│ Skill 层(渐进式加载) │
│ - 懒加载:先加载名字,需要时加载详情 │
│ - 适合:标准化任务、场景切换 │
├─────────────────────────────────────┤
│ SubAgent 层(上下文隔离) │
│ - 独立上下文:中间结果不污染主 Agent│
│ - 适合:复杂任务、啰嗦的中间过程 │
├─────────────────────────────────────┤
│ MCP 层(基础能力) │
│ - 全加载:所有工具说明都在上下文 │
│ - 适合:轻量级工具、频繁调用 │
└─────────────────────────────────────┘
记住这个口诀:
- Skill 是插件:按需加载,轻量高效
- SubAgent 是外包:独立执行,结果汇报
- MCP 是工具箱:基础能力,标准接口
最后的建议:
很多人追逐最新的 Agent 框架、最花哨的能力扩展,却忽略了最基础的问题:AI 的工作记忆是有限的,你怎么组织它,决定了它能做多复杂的事。
Skill、SubAgent、MCP 不是非此即彼的选择,而是三种工具,用对场景才能发挥价值。
2026 年,Agent 的竞争正在从"能调用多少工具"转向"怎么优雅地管理这些工具"。
掌握上下文管理的艺术,你的 AI Agent 才能真正变强。
参考资料
本文参考了以下资料:
核心灵感来源:
- Linux.do 社区讨论:Skill、SubAgent、MCP 三者设计理念
https://linux.do/t/topic/1357260 - 推特宝玉老师 @dotey 关于 AI Agent 架构的深度分析
上下文管理相关:
- Context Pollution — When More Data Makes AI Less Reliable
https://www.elixirdata.co/blog/context-pollution - Context Engineering for AI Agents
https://www.philschmid.de/context-engineering-part-2 - AI Agent 中的上下文工程 (Context Engineering)
https://www.breezedeus.com/article/ai-agent-context-engineering - Context Engineering Is the Real AI Advantage in 2026
https://www.penn.ai/blog/context-engineering-is-the-real-ai-advantage-in-2026
Skill、SubAgent、MCP 设计:
- Skills, Subagents, Hooks, MCP
https://code-smarter.com/claude-code-made-me-ridiculously-productive-skills-subagents-hooks-and-mcp - Understanding Skills, Agents, Subagents, and MCP in Claude Code
https://www.colinmcnamara.com/blog/understanding-skills-agents-and-mcp-in-claude-code - Claude Skills, Prompts, Projects, Subagents, and MCP: A Complete Guide
http://smartscope.blog/en/ai-development/claude-mechanisms-explained/
懒加载 Prompt 工程:
- How Lazy-Loaded Prompt Engineering is becoming the standard pattern
https://sderosiaux.substack.com/p/how-lazy-loaded-prompt-engineering
欢迎关注公众号 FishTech Notes,一块交流使用心得!
更多推荐


所有评论(0)