最近,Anthropic 为 Claude Code 带来了一项基础设施级的重要更新:全新的 Task 管理系统。它并不是对 Todos 的简单升级,而是一套面向复杂、多会话开发项目的成熟编排层。如果你一直在用 Claude Code,可能已经发现 Tasks 正在逐步替代原来的 Todos。
在 AI 编程里,Tasks 的核心思路是把复杂工作拆成一小块一小块的任务。这些任务可以保存下来、彼此关联,也能在不同会话之间继续使用。它们直接存在文件系统里,还支持依赖关系,所以多个会话或子智能体可以围绕同一件事协同工作。
这其实就是 AI 编程里的项目管理,而且已经内置在 Claude Code 中。下面我们看看它是怎么工作的。
什么是 Claude Code Tasks?

Todos 的局限性
Todos 只存在于当前会话的内存中,一旦会话结束就会丢失。在开发过程中启动的子智能体,也无法看到主会话正在跟踪的事项。
对于简单任务还能靠模型自己推理,但一旦涉及多会话、长流程的项目,就明显缺少系统性的任务管理能力。
Tasks 的三项核心改进
Tasks 采用基于文件的存储方式,任务以 JSON 文件的形式保存在 ~/.claude/tasks 目录中。这一设计带来了三点关键变化:
1. 持久化存储
任务不再依赖会话内存。即使退出会话,Tasks 依然存在,因为它们本质上是系统中的真实文件。
2. 依赖关系管理
Tasks 支持显式的依赖关系定义。例如,Task B 需要在 Task A 完成后才能开始,Task C 则依赖 A 和 B。这种结构更贴近真实项目,而不是简单的待办列表。
3. 多会话协作
通过设置 CLAUDE_CODE_TASK_LIST_ID=name,多个 Claude Code 会话可以共享同一组任务。当某个会话更新任务状态时,其他会话会同步看到变化。
为什么需要 Tasks
随着 Opus 4.5 可以运行更长时间的自主工作流,Anthropic 需要一种比会话内存中待办列表更可靠的任务管理方式。
下面用一个简单的例子看看 Tasks 是如何工作的。
Break down building a REST API with user authentication into tasks with dependencies
需求会被拆成一组有先后关系的任务。结果出来后,任务结构和依赖关系都很清楚,用来规划复杂项目特别直观,也很好用。

Tasks 工作原理
文件存储结构
Tasks 以文件形式存储在 ~/.claude/tasks 目录下:
~/.claude/tasks/
└── <uuid-folder>/
├── 1.json
├── 2.json
└── ...
每个任务都是一个独立的 JSON 文件,以 UUID 命名的文件夹作为容器。
任务 JSON 结构解析
每个任务文件包含清晰的元数据:
{
"id": "1",
"subject": "Initialize project and install dependencies",
"description": "Set up project structure, package.json, and install core dependencies (express, dotenv, cors, etc.)",
"activeForm": "Initializing project",
"status": "pending",
"blocks": ["2"],
"blockedBy": []
}
关键字段说明:
-
• id — 任务标识符 -
• subject — 任务标题 -
• description — 需要完成的内容 -
• activeForm — 执行中的显示文本 -
• status — pending(待处理)、in_progress(进行中)、completed(已完成) -
• blocks — 等待此任务完成的其他任务(Task 2 无法开始直到 Task 1 完成) -
• blockedBy — 此任务依赖的任务(空数组表示可以立即开始)
这套依赖关系是以真实文件的形式存储的,而不是保存在内存或会话中。你可以读取、解析这些文件,甚至基于它们开发自己的工具。相比之下,传统的 Todos 在关闭终端或会话时就会消失。
任务管理工具
Claude Code 提供了四个用于任务管理的工具,每个工具对应不同的编排需求。
TaskCreate:创建任务项
TaskCreate({
subject: "Implement JWT authentication middleware",
description: "Add JWT validation to API routes with refresh token support",
activeForm: "Setting up auth middleware..."
})
TaskGet:获取任务详情
TaskGet({ taskId: "2" })
// 返回:描述、状态、blockedBy、blocks、所有者、时间戳
TaskUpdate:更新任务状态与关系
// 认领任务
TaskUpdate({ taskId: "2", owner: "security-reviewer" })
// 开始工作
TaskUpdate({ taskId: "2", status: "in_progress" })
// 标记完成
TaskUpdate({ taskId: "2", status: "completed" })
// 设置依赖
TaskUpdate({ taskId: "3", addBlockedBy: ["1", "2"] })
TaskList:查看任务列表
#1 [completed] Analyze codebase structure
#2 [in_progress] Review authentication module (owner: security-reviewer)
#3 [pending] Generate summary report [blocked by #2]
Tasks vs Todos:核心差异
Tasks 解决了 Todos 在实际开发中长期存在的问题,使它们真正适用于复杂、长期的开发工作。
文件化存储
Tasks 存放在 ~/.claude/tasks 目录中。它们是系统上的真实文件,而不是临时的会话状态。即使关闭会话、重启终端,任务依然存在。由于只是普通文件,你也可以在此基础上构建自己的工具。
依赖关系管理
Todos 只是一个平面列表,任务之间没有结构。真实项目往往存在先后顺序:有的任务必须等前置任务完成后才能开始,有的则可以并行推进。Tasks 允许在任务元数据中定义这些依赖关系,更贴近实际的开发流程。
关键区别:Todos 是平面列表,Tasks 是依赖结构。
多会话协作机制
这是最关键的一点。当你同时运行多个 Claude Code 会话或子智能体时,它们可以共享同一个任务列表。任一会话对任务的更新,都会同步到使用该列表的其他会话中。
这样可以避免重复处理同一任务,也减少智能体之间的冲突。不同子智能体可以分别负责认证、数据库结构或测试,但都基于同一份任务状态协作。
实战使用指南
在开始使用 Tasks 之前,请确认 Claude Code 已升级到 2.1.17 或以上版本。
基础用法
直接让 Claude 拆任务即可:
Create tasks for building a user authentication system with JWT tokens
任务会自动按依赖关系组织,支持后续查看和更新。

跨会话共享
要让多个会话使用同一任务列表,需要设置环境变量:
CLAUDE_CODE_TASK_LIST_ID=my-project claude
所有使用相同 ID 启动的 Claude 会话都会看到并更新同一任务列表。任何更改都会自动同步。
这同样适用于 CLI 模式:
CLAUDE_CODE_TASK_LIST_ID=my-project claude -p "Complete the next pending task"
在 Agent SDK 中也可以使用相同的任务列表 ID,以便在 Claude Code 上构建自动化工作流。
推荐工作流程
-
1. 明确项目需求 -
2. 让 Claude 拆分任务并建立依赖关系 -
3. 启动子智能体分别处理任务树中的不同分支 -
4. 各子智能体在独立上下文中工作,但共享同一任务列表 -
5. 任务完成后,相关更新会同步到其他会话,解除对应阻塞
使用场景建议
Tasks 并非适合所有情况。下面是我在实践中的一些经验总结。
不适合使用 Tasks 的场景
-
• 快速修复 Bug -
• 单文件或小范围重构 -
• 简单问题或代码解释 -
• Claude 可以一次性处理的任务
适合使用 Tasks 的场景
-
• 跨多个组件的多文件功能开发 -
• 涉及代码库多个模块的大型重构 -
• 跨会话的项目或长期任务 -
• 需要协调多个子智能体协作的工作 -
• 需要中断后继续的任务
总结与展望
Claude Code 的 Tasks 让 AI 辅助开发不再局限于一次生成代码,而是可以管理整个项目的任务流。通过依赖跟踪、子智能体协作以及跨会话持久化,使工作流从个人效率工具扩展为团队协作平台。
这不仅是功能增强,更是一种设计理念的转变:从「会话内助手」升级为「项目级管理工具」。
在下一个多步骤项目中使用 Tasks,你会发现 AI 可以理解任务依赖、跨会话保持状态,并与其他智能体协调工作,从而释放更大的潜力。

