00:00:00Claude Code 团队最近将 to-do 升级为了任务(tasks),这可是个大新闻,因为
00:00:05这意味着每个任务都有专属的 JSON 文件,可以进行更新并提交到 GitHub。
00:00:11这些任务可以通过子代理并行运行,多个 Claude Code 会话还可以共享
00:00:16同一个任务列表。
00:00:17这对于任务繁多、需要开启大量会话的复杂项目来说简直完美。
00:00:22但这对超级流行的 Ralph Wiggum 循环意味着什么呢?
00:00:26它会让后者过时吗?
00:00:28倒也不至于。
00:00:29订阅频道,让我们深入探讨一下。
00:00:32Opus 4.5 从多方面改变了游戏规则。
00:00:35你可能不知道,它具备更强的自主运行能力,
00:00:39能比其他模型更好地跟踪自身状态。
00:00:44这意味着你以前在 Claude Code 中看到的传统待办事项列表,
00:00:48在处理小任务时基本已经不需要了。
00:00:50但对于长任务,它仍有 200k 的上下文窗口,这意味着它存在“聪明区”和
00:00:56“笨拙区”,一旦超过 80% 的限度,输出结果就会变差。
00:01:02去看看我关于 Ralph Wiggum 的视频,深入了解模型基于上下文的
00:01:07聪明区域和笨拙区域。
00:01:08在这种情况下,你可能会用到像 Beads 这样的工具,它将任务存储在 SQLite
00:01:14数据库中,并将其放入 JSONL 文件中进行版本控制提交。
00:01:19正是 Beads 工具极大地启发了 Claude Code 团队将 to-do 升级为
00:01:24这套全新的任务管理系统。它功能丰富,从存储任务到 JSON 文件
00:01:30到支持多会话运行等等。
00:01:34不过,尽管这次升级很酷,但它的工作方式与 Beads 和 Ralph Wiggum 略有不同。
00:01:39实际上,让我演示给你们看。
00:01:41这里有一个由 Claude Code 编写的计划文件,包含了我想添加到
00:01:46一个名为 XDL 工具中的三项主要改动,该工具可以通过 CLI 下载 X(推特)视频。
00:01:54要使用任务功能,你需要将 Claude Code 升级到 2.1.6 或更高版本,
00:02:00其中包含了这些任务管理相关的工具。
00:02:03现在,我要让 Claude 将计划文件转换成一组待完成的任务。
00:02:08你可以看到它已经创建了任务,并添加了一些依赖关系,即那些
00:02:13被其他任务阻塞的任务;它在这里用黄色高亮标出了
00:02:18阻塞特定任务的前置任务。
00:02:20如果我们进入机器根目录下的 .claud 目录,可以看到一个 tasks 文件夹,
00:02:26里面还有另一个对应我们项目的文件夹。
00:02:29打开它,就能看到所有创建的任务,包含 ID、主题、描述,
00:02:36以及哪些任务阻塞了该任务,或者该任务阻塞了哪些任务。
00:02:41现在我们要让 Claude 在子代理中运行每个任务,它已经
00:02:45开始执行了。
00:02:46任务 1 正在处理,任务 8、9、10 也是如此,因为它们没有被其他
00:02:52任务阻塞。
00:02:53我们还可以看到上面有不同的子代理在处理不同的任务。
00:02:57现在所有任务都完成了,我检查了一下上下文使用量,
00:03:01发现只用了 18%,因为所有任务都是在子代理中完成的。
00:03:06但这套新任务管理系统还有另一个骚操作。
00:03:09如果我想运行多个 Claude 会话(在这个例子中是不同的分屏,
00:03:14但你也可以在不同标签页或服务器上运行),并访问同一个任务列表,
00:03:19我可以运行这个环境变量:Claude code task list ID,并填入
00:03:26对应的任务列表目录 ID。
00:03:30这样一来,这个 Claude 就能访问该目录下的所有任务,我也能在
00:03:34另一个会话中执行同样的操作。
00:03:36所以我可以让一个会话执行任务,另一个会话负责验证
00:03:41任务是否已完成。
00:03:43如果我在左侧会话中运行,右侧会话应该能实时看到
00:03:48每个任务的进度。
00:03:49既然这边已经完成了,那边的会话就可以直接去验证
00:03:53任务是否达标。
00:03:55这真的很酷,因为你可以在一台机器上开始任务,停下来,
00:04:00将任务提交到 GitHub 或你喜欢的版本控制系统,然后在另一台
00:04:06机器上拉取这些任务,接着之前进度继续。
00:04:10如果你用过 Beads,会发现这和它的工作方式很像,
00:04:15但并不完全相同,因为 Beads 将任务存储在 SQLite 数据库中以便快速检索,
00:04:23并且它将数据库任务同步到单个 JSONL 文件,而不是多个 JSON 文件。
00:04:29所以你可以直接在项目中添加这一个文件并与团队成员共享。
00:04:33这与 Ralph Wiggum 循环在理念上也略有不同。
00:04:39在 Ralph 循环中,你有一个单一的提示词和一个任务列表,
00:04:43这些任务旨在帮助你实现该提示词的目标,你会反复将它们
00:04:48发送给模型。
00:04:49而在新的任务管理系统中,你拥有一个任务列表,并要求模型
00:04:54自行挑选下一个需要执行的任务。
00:04:57它会阅读所有任务来确定下一步该做什么。
00:05:02如果你让子代理处理单个任务,这种压力会减轻,但如果你
00:05:07想要一个可以无限运行的自主循环,让模型遵循
00:05:12prompt.md 文件中的“北极星”目标来持续改进项目(即使是你没添加的任务),
00:05:17那么这个新任务管理系统可能并不适合你。
00:05:22另外还有文档方面的问题,在录制视频时,
00:05:27关于此功能的所有信息都仅存在于一条推文中。
00:05:30而且与 Beads 相比,它还缺乏可视化工具或看板类
00:05:34工具来查看每个任务的进度,但我相信 Claude code 社区
00:05:40现在已经在着手解决了。
00:05:42随着这些新的工具管理系统不断产出新软件,你肯定需要
00:05:47一种方法来确保不会把错误推送给用户。
00:05:50这就是 Better Stack 大显身手的地方,它提供了后端和
00:05:56前端的错误追踪方案,使用 AI 原生错误追踪器,还提供状态页
00:06:02以便在网站宕机时通知用户,并拥有出色的事故管理系统。
00:06:08所以,今天就去试试 Better Stack 吧。