Skip to content

4.1 任务隔离执行——避免上下文污染

引言

小王让 AI 探索代码库的架构。AI 读了 50 个文件,洋洋洒洒写了一份详细报告。

然后小王想继续讨论一个具体的 bug——但他发现 AI 的表现变差了。对话上下文已经被那 50 个文件的内容填满,AI 开始"遗忘"之前的约定。

这是上下文污染——研究性任务的大量中间结果挤占了核心上下文空间。


通用概念:任务隔离执行

任务隔离执行是指在独立的上下文中运行子任务,完成后只返回摘要,避免污染主对话。

各工具的隔离实现

工具实现方式效果适用场景
Claude Codecontext: fork子代理隔离,只返回摘要大量文件扫描、深度探索
CursorAgent Mode后台线程执行,主编辑不受影响复杂重构、多文件操作
WindsurfCascade 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 有内置隔离机制
  • 判断标准通用:是否只需最终摘要?是 → 需要隔离

思考题

  1. 代码审查技能包应该用隔离执行还是 inline?为什么?
  2. 如果一个隔离执行的技能包需要知道之前对话的内容,你会怎么解决?
  3. (其他工具用户)你使用的工具如何处理"大量中间结果挤占上下文"的问题?是自动的还是需要手动控制?

下一节预告

任务隔离解决了"在哪里运行"的问题,接下来解决"什么时候运行"和"运行时能用什么工具"——触发控制与权限边界

下一节:精细控制——触发时机与权限边界