Claude Code 做短任务很顺,但长任务很容易出现两个问题:上下文越来越大,判断越来越飘。你让它连续写三篇文章、改十几个文件、读一堆日志,最后它可能还在努力回答,但已经开始忘记最初目标、重复读取材料,或者把旧结论当成新事实。

这不是 Claude Code “不行”,而是长任务需要上下文管理。真正稳定的做法不是把所有资料都塞进会话,而是把任务拆成可恢复、可验证、可摘要的阶段。

如果你刚开始用 Claude Code,可以先看 Claude Code 怎么用;如果任务涉及多文件修改,先用 Plan Mode 做边界确认。

为什么长任务会拖崩

长任务最常见的失败不是模型突然不会做,而是上下文失控。

失控表现具体问题
重复读取同一个文件、Brief、日志反复展开
目标漂移后半段开始解决另一个问题
旧信息污染已经修正的结论仍被当成当前事实
验证不足只记得写了很多,但忘记跑检查
输出膨胀每一步都贴大量日志、diff、全文

Claude Code 的优势是能读项目、改文件、跑命令。但这些能力如果没有节制使用,长任务会变成“上下文垃圾堆”。

第一原则:不要把资料当上下文长期保存

很多人会把完整需求、完整日志、完整文章、完整搜索结果都贴进会话。短期看方便,长期看会污染判断。

更好的方式:

  1. 长材料写到文件里;
  2. 会话里只保留索引和摘要;
  3. 当前步骤需要哪一段,再读取哪一段;
  4. 做完就记录结论,不重复展开全文。

比如写内容时,不要一次打开 10 个 Brief。先做 Brief index,再只读当前文章小节。改代码时,不要整读整个目录,先定位入口文件、调用方和受影响范围。

第二原则:任务队列比脑内记忆可靠

长任务一定要有任务队列。不是为了形式,而是为了防止 Claude Code 在第 4 步忘记第 1 步。

一个可用队列应该包含:

1
2
3
4
待做:当前还没开始的任务
进行中:现在只处理这一项
已完成:有明确产物和验证结果
阻塞:需要用户确认或外部动作

不要同时让 Claude Code “写三篇文章、改两个组件、顺便修 SEO”。它会尝试都做,但质量会下降。更稳的方式是:一次只让它推进一个进行中的任务,完成后再切下一个。

第三原则:每一阶段都要有可验证产物

长任务不能只靠“我已经做了”。每一阶段都应该留下可检查的东西。

阶段产物
调研摘要文件、候选表、关键证据
计划明确步骤、风险、受影响文件
实现具体文件路径、修改范围
内容生产文章路径、Brief 小节、内链清单
验证命令、结果摘要、失败项

如果没有产物,就很难恢复。会话中断后,下一次只能靠记忆猜发生了什么。

第四原则:搜索用索引,写作用小节

Claude Code 长任务里最容易浪费上下文的是“找资料”。

推荐做法:

1
先索引 → 再定位 → 再读取当前小节 → 产出摘要 → 执行任务

内容站尤其明显。比如一个文件里有三篇 Content Brief,不要整读全文;先列出标题,再按当前主题读取小节。代码库也一样:先找 symbol、路由、入口,再读目标文件,不要从根目录随机展开。

如果项目有 CodeGraph,就用它处理结构问题;如果只是查某个字符串,再用 grep。工具选错,会把上下文消耗在低价值搜索上。

第五原则:主会话负责决策,Agent 负责局部任务

长任务可以用 Agent,但不要让 Agent 决定最终方向。

适合 Agent 的是:

  • 搜索某个子系统;
  • 审查某个维度;
  • 总结某批资料;
  • 找测试缺口;
  • 验证一个具体 claim。

不适合 Agent 的是:

  • 决定最终文章口径;
  • 批量改高风险文件;
  • 用户意图还没明确时自行扩展任务;
  • 需要连续 UI 微调的任务。

可以配合阅读 Claude Code Subagents 实战,把 Agent 当作局部视角,而不是总指挥。

第六原则:每轮结束都写“下一步”

长任务最怕中途断掉。每轮结束时至少记录三件事:

  1. 已完成什么;
  2. 产物在哪里;
  3. 下一步是什么。

好的状态记录像这样:

1
2
3
已完成:AICostNest 中文文章初稿 + content-qc,无错误。
产物:src/content/posts/zh/ai-api-cost-budget-spreadsheet.md
下一步:补英文版,再处理 OppMint 插图。

差的状态记录像这样:

1
继续优化内容。

第二种记录等于没有记录。下一次恢复时,Claude Code 仍然要重新探索。

第七原则:聊天里少贴全文,多给路径和摘要

长任务中,聊天窗口不是文档库。能写文件就写文件,能给路径就给路径。

推荐输出:

1
2
3
4
已生成:C:\...\article.md
检查:content-qc 88/100,0 errors
剩余:代码块语言警告
下一步:补英文版

不推荐输出:

1
2
3
下面是完整文章全文……
下面是完整构建日志……
下面是完整 diff……

除非用户明确要求全文,否则长输出会把后续上下文压得更紧。

一个长任务模板

下次你可以这样要求 Claude Code:

1
2
3
4
5
6
7
8
这是一个长任务。请按阶段推进:

1. 先列任务队列,不要直接开写。
2. 每次只处理一个进行中的任务。
3. 长文件先做索引,只读取当前小节。
4. 每个阶段必须留下产物路径和验证结果。
5. 不要在聊天里贴全文,除非我要求。
6. 每轮结束输出:已完成、产物、检查结果、下一步。

这个模板看起来普通,但能显著减少重复读取、目标漂移和“做了很多但不知道是否完成”的情况。

常见误区

误区 1:上下文越多越好

不是。无关上下文会增加误判。越长的任务越要精选上下文。

误区 2:让 Claude Code 自己记住所有状态

不要依赖记忆。状态要写到文件、任务列表或明确的下一步里。

误区 3:一次性并行所有事情

并行适合独立任务,不适合需要统一口径的最终产物。文章、架构方案、发布决策都要回到主会话整合。

误区 4:验证留到最后

长任务最后再验证,通常会发现前面错了很多。应该每完成一个小产物就跑最小检查。

总结

Claude Code 长任务的关键不是让模型“记住更多”,而是让任务结构更可恢复。把长资料变成索引,把任务变成队列,把阶段变成可验证产物,把下一步写清楚,Claude Code 才能稳定完成复杂工作。

上下文管理做得好,Claude Code 像一个可靠的项目协作者;上下文管理失控,它就会变成一个很努力但越来越迷路的助手。