4.1 任务隔离执行——避免上下文污染
引言
小王让 AI 探索代码库的架构。AI 读了 50 个文件,洋洋洒洒写了一份详细报告。
然后小王想继续讨论一个具体的 bug——但他发现 AI 的表现变差了。对话上下文已经被那 50 个文件的内容填满,AI 开始"遗忘"之前的约定。
这是上下文污染——研究性任务的大量中间结果挤占了核心上下文空间。
通用概念:任务隔离执行
任务隔离执行是指在独立的上下文中运行子任务,完成后只返回摘要,避免污染主对话。
各工具的隔离实现
| 工具 | 实现方式 | 效果 | 适用场景 |
|---|---|---|---|
| Claude Code | context: fork | 子代理隔离,只返回摘要 | 大量文件扫描、深度探索 |
| Cursor | Agent Mode | 后台线程执行,主编辑不受影响 | 复杂重构、多文件操作 |
| Windsurf | Cascade Flow | 流式分析,结果整合 | 持续代码改进、问题发现 |
| 通用理解 | 概念迁移 | 大任务完成后清理中间状态 | 所有 AI 编程工具 |
⚠️ Claude Code 特有语法
context: fork + agent: Explore 是 Claude Code 的具体实现。其他工具的隔离机制是内置的(如 Windsurf Cascade),无需手动配置。
如果你使用其他工具,可以跳过后续的语法细节,但建议理解"上下文污染"的概念——这是所有 AI 工具的共同问题。
问题本质(通用理解)
上下文窗口(上下文污染状态)
系统提示 (~500 token)
项目指令文件 (~1000 token)
50 个文件内容 (~80,000 token) ← 污染!
对话历史 (~2000 token)
剩余空间: 极少
解决方案:让研究任务在隔离的子代理中运行,只返回摘要。
Claude Code fork 语法(详细示例)
📋 其他工具用户注意
以下语法是 Claude Code 特有的。其他工具的隔离机制通常是自动的:
- Windsurf:Cascade 自动在独立流程中分析
- Cursor:Agent Mode 在后台执行,无需配置
yaml
---
name: explore-codebase
description: 深度探索代码库架构
context: fork
agent: Explore
argument-hint: "[topic]"
arguments:
- topic
---
请深入研究代码库中与 "$topic" 相关的内容:
1. 定位相关文件和目录
2. 识别核心抽象和接口
3. 追踪关键执行路径
4. 总结发现,包括具体文件引用fork vs inline 对比
| 特性 | inline(默认) | fork |
|---|---|---|
| 运行位置 | 当前对话 | 隔离子代理 |
| 上下文访问 | 可访问对话历史 | 无对话历史 |
| 结果 | 直接在对话中 | 子代理完成后返回 |
| 上下文污染 | 可能 | 不会 |
| 适合 | 简单指令、需要上下文 | 研究、探索、长任务 |
⚠️ fork 的子代理没有对话历史
子代理是全新启动的——它不知道你之前聊了什么。如果你的技能包需要依赖之前的对话内容,不要用 fork。
agent 字段
agent 决定子代理的"性格"和工具集:
| 代理 | 特点 | 适合 |
|---|---|---|
Explore | 只读搜索,速度快 | 代码探索、架构分析 |
Plan | 规划方案,不执行 | 方案设计、技术调研 |
general-purpose | 全功能 | 需要读写操作的复杂任务 |
也可以用 .claude/agents/ 中的自定义代理。
什么时候需要任务隔离?
通用判断标准(所有工具适用):
需要隔离 ✅ 不需要隔离 ❌
───────────── ─────────────
探索代码库架构 简单的变更总结
多文件调研 代码审查清单
长时间搜索任务 快速修复流程
产生大量中间结果 只需简单操作关键判断:任务是否会产生大量中间结果,而你只需要最终摘要?如果是 → 需要隔离。
本节小结
📌 本节核心要点
- 上下文污染(通用概念):研究性任务的大量中间结果挤占核心上下文
- 任务隔离执行(通用概念):在独立上下文运行子任务,只返回摘要
- Claude Code 实现:
context: fork+agent: Explore隔离子代理 - 其他工具:Windsurf Cascade、Cursor Agent Mode 有内置隔离机制
- 判断标准通用:是否只需最终摘要?是 → 需要隔离
思考题
- 代码审查技能包应该用隔离执行还是 inline?为什么?
- 如果一个隔离执行的技能包需要知道之前对话的内容,你会怎么解决?
- (其他工具用户)你使用的工具如何处理"大量中间结果挤占上下文"的问题?是自动的还是需要手动控制?
下一节预告
任务隔离解决了"在哪里运行"的问题,接下来解决"什么时候运行"和"运行时能用什么工具"——触发控制与权限边界。