我开发了一个 Ralph CLI

github.com/qiaolei1973...

Talos 是一个基于 Ralph 概念实现的一款 CLI,它目前支持了在 Claude Code、Cursor CLI 下运行。它支持并行 的在多个仓库 下,同时执行多个 Ralph Loop 任务。

背景

在我日常使用 claude code、cursor 等 coding agent 做 vibe coding 的时候,我发现他们他们并不能完全解决我的问题:

  1. 上下文限制:虽然现在的大模型提供了比较长的上下文,但是我在日常的 vibe coding 过程会发现,随着上下文内容的增加,大概占用到 50% 左右时,它的对话质量就开始下降,经常会遗忘一些细节。
  2. 长任务支持:现在 claude code、cursor 等工具支持的 plan mode,本质还是在一次上下文窗口中先规划任务,然后在一个新的上下文窗口中去执行任务。但是如果任务本身很大,它的总体执行效果并不会好,尤其是到任务的后期,会出现很多的敷衍的情况。一般碰到这种情况,我的习惯是用多次 plan 来最终完成我的任务。
  3. 多任务并行:对于一些粒度比较大的功能需求,当我们开发 plan 生成后,到代码执行完的期间,一般是无所事事的看着执行过程直到结束,这段时间也没有被很好的利用。

社区上是有一些解决方案的,如:

最近很火的 Ralph Loop(Ralph Wiggum as a "software engineer": ghuntley.com/ralph/ )就是用来解决上下文限制的问题,简单来说,ralph 的作用是将一个庞大的 plan,拆解为一个一个具体可被执行和验证的 user story,然后每一个上下文窗口只用来生成和验证每一个具体的 user story。

这样每一个上下文都会用来解决一个聚焦的问题,并验证它符合预期后再结束。

社区上已经有很多基于 Ralph Loop 的实现了,比如:github.com/snarktank/r...

我一开始也在用这个方案,它的效果比使用 claude code 提供的 plan mode 要好了很多。不过它也不是没有代价,它的执行时间比 coding agent 默认提供的方案要长非常多,一个 20 user story 的中型任务,跑 30min 是常有的事。

随着使用 Ralph Loop 后等待时间变得更长,我对于"多任务并行"的诉求也变得更强烈了。

社区也是有一些解决方案的,比如 boris 提到在 anthropic 内部会使用 git worktree 来解决多任务并行的问题
x.com/bcherny/sta...

我认为通过 worktree + Ralph Loop 可以比较好的解决我日常开发中的一些问题了,但是一遍遍的切换文件目录去执行指令,查看进度让我认为这是一个很繁琐的工作,如果有一个集中式的操作入口,这样我的效率会更高。

于是我做了一个这样的工具。

Talos

Talos(github.com/qiaolei1973...是我上面提到的问题的一个解决方案,先看一下效果图:

Talos 可以通过 cli 指令,快速的完成:prd 创建、ralph user story 拆分、任务执行、查看进度的全过程。并且它也允许你通过 claude code、cursor cli(可能未来还会支持更多的 coding agent)来执行任务。

可以通过一段我的使用过程来了解它:

1.生成 prd

复制代码
talos prd

它会呼出一个 claude code 进程,你可以与它反复讨论,以完成你的 prd(需求文档),对于它不明确的内容,它会和你进一步确认直到需求清晰。

2.转为 ralph 格式

css 复制代码
talos ralph --prd <prd-name>

命令执行完成后,生成了一份拆分清晰的 user story,包含了更细致的功能描述和验收标准

3.执行 ralph task

sql 复制代码
talos task start

此时你就可以看到,已经自动创建出来了一个 worktree,并且 claude code 在 worktree 下开始静默执行,并自动生成代码,当每一个 user story 生成完成并验证通过后,它会自动的为这个 user story 提交一个 commit。这样即使后面代码有问题,大模型也可以方便的回溯到每一个功能的变更内容和意图。

4.查看监控/观察进度

复制代码
talos task monitor

此时,你可以看到任务的执行进展和实时输出的日志(也支持通过方向键切换任务查看执行日志),以判断它的执行过程是否符合预期。

当然,更多时候,我不会关注这些,当前一个需求的 prd 创建完成并开始执行后,我就开始我的第二个 prd 的创建了

  1. 进入任务的工作目录调试
arduino 复制代码
talos task attach  [-f] 

当一个任务执行完成后,vibe coding 不可能 100% 的满足你的要求,你可以通过 attach 命令进入工作目录,在工作目录去进一步验证和优化,直到生成的代码符合你的预期。

总结

Talos 很好的解决了我之前的痛点,通过它,我可以更高效 vibe coding,并且我发现,我的工作思路发生成了一些变化:我开始更关注需求描述本身,而非代码实现,我在尝试一个一个的更精确的去描述需求,我更像是一个内容工作者而非代码开发者

相关推荐
进击的尘埃1 小时前
Module Federation 2.0 共享策略翻车实录:版本协商、热更新与依赖冲突的排查工具链
javascript
码路飞2 小时前
不会 Rust 也能玩 WebAssembly:3 个 npm install 就能用的 WASM 神器
前端·javascript·webassembly
Sylus_sui2 小时前
鸿蒙Class实战:从零构建联系人列表
javascript
sudo_jin2 小时前
从“输入网址”到“帧级控制”:我对事件循环与主线程管理的终极认知
前端·javascript
Irene19912 小时前
JavaScript中内置对象分类总结
javascript·内置对象
霍理迪2 小时前
Vue—条件渲染与循环渲染
前端·javascript·vue.js
zhen_hong2 小时前
ReactAgent原理
android·java·javascript
小J听不清2 小时前
CSS 内边距(padding)全解析:取值规则 + 表格实战
前端·javascript·css·html·css3