跳转至

6.7 长任务治理、恢复和交接

阅读完本节后,你应该能把超过半天的 coding agent 任务拆成可恢复、可验证、可交接的工作流。

长任务失败通常不是模型能力不够,而是任务治理不够。

什么算长任务

满足任意一条就按长任务处理:

  • 预计超过 2 小时。
  • 涉及 5 个以上文件。
  • 涉及 3 个以上模块。
  • 需要迁移数据或公共接口。
  • 需要多轮调试。
  • 需要跨会话继续。
  • 需要多个 Agent 并行。

长任务的主要风险

风险 表现
上下文漂移 Agent 忘记原目标
改动过大 review 不动,无法定位问题
验证滞后 写完才发现基础假设错了
状态丢失 新会话不知道完成了什么
文件冲突 多 Agent 改同一块
人类失控 你不知道 Agent 为什么这么改

拆分原则

不要按“代码层”机械拆分,要按“可验证成果”拆分。

差的拆分:

1. 改 types
2. 改 backend
3. 改 frontend
4. 改 tests

好的拆分:

1. 建立最小数据模型和测试。
2. 打通后端 API,并用集成测试验证。
3. 接入前端读取路径,不做写入。
4. 接入写入和错误处理。
5. 补端到端验证和文档。

每一步都应该能单独 review。

任务目录模板

tasks/2026-04-28-import-csv/
├── prd.md
├── plan.md
├── steps.md
├── journal.md
├── decisions.md
└── validation.md
文件 作用
prd.md 目标、需求、非目标、验收
plan.md 总体方案和风险
steps.md 可执行任务拆分
journal.md 会话进展
decisions.md 关键决策和原因
validation.md 跑过的验证和结果

checkpoint 机制

每完成一个子任务,要求 Agent 停下。

完成当前 step 后停止,不要继续下一个 step。
请输出:
- 修改了哪些文件。
- 满足了哪个验收条件。
- 跑了哪些验证。
- 当前风险。
- 下一步建议。

不要让 Agent 在你没 review 的情况下连续推进多个阶段。

会话恢复摘要

长任务每次收尾都生成恢复摘要。

# Resume Summary

## Original Goal

[原始目标]

## Current Step

[正在做哪个 step]

## Completed

- [x] Step 1
- [x] Step 2

## Current Diff

[主要改动摘要]

## Validation

- `pnpm test`: passed
- `pnpm typecheck`: failing because ...

## Open Issues

- Issue 1

## Next Action

[下一步只做一件事]

新会话只需要读取任务目录和这份摘要,不必重新粘整段聊天。

多 Agent 并行

并行只适合边界清楚的工作。

适合并行:

  • 一个 Agent 写测试,另一个读实现方案。
  • 一个 Agent 做前端样式,另一个做后端接口。
  • 一个 Agent 做 review,另一个继续非重叠实现。
  • 一个 Agent 查文档,另一个整理本地代码模式。

不适合并行:

  • 多个 Agent 改同一文件。
  • 需求还没定。
  • 架构边界不清。
  • 需要频繁共享中间状态。

并行前必须写清楚:

Agent A owns files: ...
Agent B owns files: ...
Do not edit files outside your ownership without asking.

worktree 的价值

worktree 解决的是文件冲突和 review 隔离。

main repo
  稳定主工作区

worktree A
  Agent A 做 feature

worktree B
  Agent B 做 test/review/refactor

不要把 worktree 当魔法。它只隔离文件,不替你做任务拆分。

长任务完成标准

  • [ ] 每个 step 都有独立验证。
  • [ ] 每次中断都有 journal。
  • [ ] 决策记录能解释为什么这么做。
  • [ ] 当前 diff 可以 review。
  • [ ] 没有跨 Agent 文件冲突。
  • [ ] 最终文档和测试同步。
  • [ ] 任务结束后沉淀了可复用规则。