上周 Claude Code 团队更新了他们的任务清单系统,我觉得还蛮重要的,特地来讲一讲。
更新公告
简单理解:任务系统,从「记事本」变成了「项目管理系统」。
为什么要升级?
得益于模型能力增强,我们的需求从简单任务变成了复杂任务。
需求变化
现在模型增强后,TodoWrite 变得有点鸡肋了:
-
小任务?模型自己能记住,不需要 TodoWrite
-
大任务?TodoWrite 又实现不了
为了追求更快、更复杂的任务处理,他们会用到这几个东西:
-
子 Agent 去执行任务
-
更长的上下文窗口,以及跨越上下文窗口
-
多个会话一起执行一个任务
简单解释:
通过这几个工具去满足复杂任务的需求。
这时候问题来了。
问题:任务有依赖关系,怎么协调?
什么是依赖关系?
任务 B 必须等任务 A 完成才能开始。
比如我要写一个商城系统,必须先把数据库、前端页面、后端功能准备好。商城系统就依赖于数据库和这些功能。
上下文隔离
但 TodoWrite 存在上下文里,不能共享,依赖关系没法协调。
解决方案:Task 系统
核心思路:从「记事本」升级成「项目管理系统」
对比图
怎么做?4 个关键点。
1.依赖关系管理
任务之间的依赖关系可以这样设计:
任务结构
blockedBy: ["3"] 意思是:任务 3 没完成,这个任务不能开始。
任务 3 完成后,系统自动解锁任务 4:
解锁流程
2.文件系统存储
任务不再存在上下文里,而是存在文件系统:
文件结构
这个文件系统有个比较周密的设计。
.lock 文件锁:
.lock 本身是个空文件,作用是"通行证"。
文件锁机制
操作系统有个规则:文件可以"独占模式"打开,同一时间只有一个程序能独占。
如果.lock被占了的话,就说明有人在操作。
.lock 利用这个规则实现排队,谁拿到通行证谁才能写。
3.多 Agent 协作(自动)
子 Agent 能够自动继承主 Claude 的 Task List ID。
多Agent协作
在单个会话里面,不用手动配置,它能够自动分发共享任务列表。
广播机制:
广播机制
4.多会话协作(手动)
如果是多会话协作,我们需要增加一个环境参数,配置任务列表 ID:
多会话配置
两个终端设置相同的 ID,就能共享同一个任务列表文件夹。
我实际测试过一遍,这些功能都是可行的。
Claude Code 向复杂任务进化
模型能力提升:不再需要 TodoWrite 记录简单任务
工程能力提升:Task 系统支持依赖管理、多 Agent 协作
通过这套系统,后续我们能用 Claude Code 做更复杂的项目。

