Ralph Wiggum 循环已成过去!Claude Code Tasks 取代 While 循环

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

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 吧。

Key Takeaway

Claude Code 通过引入基于 JSON 文件的多代理并行任务管理系统,实现了复杂项目的跨会话协作与高效上下文利用,标志着 AI 辅助编程从简单的循环提示词迈向成熟的任务分发模式。

Highlights

Claude Code 2.1.6+ 将传统的待办事项(to-do)升级为任务(tasks)管理系统,支持 JSON 文件存储与 GitHub 提交。

新系统支持多会话、跨设备同步,可以通过环境变量 ID 实现不同终端间的任务实时共享与进度追踪。

Opus 4.5 模型的自主运行能力极大增强,在中短任务中已能较好地自我管理状态,无需过度依赖外部列表。

每个任务在独立的子代理中并行运行,这种机制显著降低了主会话的上下文使用量(仅占 18% 左右)。

对比 Beads 和 Ralph Wiggum 循环,新系统更侧重于离散任务管理,而非单一目标的无限改进循环。

新任务系统依然存在“聪明区”与“笨拙区”的上下文限制,且目前缺乏像看板一样的可视化进度工具。

Timeline

Claude Code 任务管理系统的重大升级

Claude Code 团队近期将原有的待办事项功能全面升级为任务(tasks)系统,这是一次功能上的飞跃。每个任务现在都有专属的 JSON 文件,这意味着开发者可以将任务进度像代码一样提交到 GitHub 进行版本控制。新系统支持子代理并行运行,多个 Claude 会话可以实时共享同一个任务列表,非常适合处理复杂的大型项目。此外,视频提到了 Opus 4.5 模型在自主性上的进步,使其能更好地跟踪自身状态。虽然新系统减少了对传统列表的依赖,但用户仍需注意 200k 上下文窗口中的“聪明区”限制,以防输出质量下降。

技术溯源:Beads 工具的启发与影响

视频深入探讨了此次升级的技术背景,指出 Claude Code 的新系统受到了 Beads 工具的极大启发。Beads 是一款将任务存储在 SQLite 数据库中并利用 JSONL 文件进行版本控制的工具,它的高效性为官方团队提供了参考。虽然两者都支持多会话运行和任务持久化,但在底层实现上略有不同。官方系统目前更倾向于生成多个独立的 JSON 文件,而不是 Beads 的单文件同步模式。这一节内容解释了为什么这种结构化的任务管理对于长程任务和团队协作至关重要。通过这种方式,AI 能够更好地理解任务之间的依赖关系。

实战演示:创建任务与并行执行

作者通过一个名为 XDL 的 CLI 工具开发案例,实操演示了如何将计划文件转换为具体任务。在 Claude Code 2.1.6 版本中,AI 能自动识别任务依赖并用黄色高亮标出阻塞(block)关系。在后台文件系统中,.claud 目录下会生成详细的 JSON 文件记录每个任务的 ID、主题和描述。当启动子代理时,多个互不干扰的任务可以同时开工,极大提升了开发效率。演示结果显示,由于使用了子代理模式,主会话的上下文占用率极低,仅消耗了约 18% 的容量。这种隔离机制解决了长文本输入导致模型“变笨”的痛点。

跨会话协作与环境变量同步

这一章节展示了新系统最“骚”的操作:通过设置环境变量 `CLAUDE_CODE_TASK_LIST_ID` 实现跨终端协作。作者演示了在两个不同的分屏会话中访问同一个任务列表,一个会话负责执行,另一个负责实时验证。这种模式打破了单机限制,开发者可以在一台机器上开始任务,提交到 GitHub 后在另一台机器上无缝继续。虽然这与 Beads 的工作原理相似,但 Beads 使用 SQLite 追求快速检索,而官方系统则侧重于文件系统的原生集成。对于团队成员来说,这种基于文件同步的任务管理降低了沟通成本。这也意味着 AI 代理之间的协作变得更加具象化和可追踪。

与 Ralph Wiggum 循环的差异及总结

视频最后对比了新系统与著名的 Ralph Wiggum 循环在理念上的本质区别。Ralph 循环依赖单一提示词和“北极星”目标进行无限迭代,而新系统更像是任务驱动的确定性执行。如果你需要一个能够基于 `prompt.md` 持续自我改进的自主循环,传统模式可能依然更具优势。此外,目前新系统在文档完善度和可视化工具(如看板)方面仍有欠缺。作者最后提醒,随着 AI 产出代码量的剧增,后端监控和错误追踪变得尤为重要。他推荐使用 Better Stack 等工具来确保 AI 生成的软件在生产环境中的稳定性。

Community Posts

View all posts