我开发了一个 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,并且我发现,我的工作思路发生成了一些变化:我开始更关注需求描述本身,而非代码实现,我在尝试一个一个的更精确的去描述需求,我更像是一个内容工作者而非代码开发者

相关推荐
kyriewen1 小时前
写组件文档写到吐?我用AI自动生成Storybook,同事以后直接抄
前端·javascript·面试
五点六六六2 小时前
你敢信这是非Native页面写出来的渐变效果吗🌝(底层原理解析
前端·javascript·面试
吃西瓜的年年3 小时前
TypeScript
javascript·ubuntu·typescript
熊猫_豆豆5 小时前
一个模拟四轴飞行器在随机气流扰动下悬停飞行的交互式3D仿真网页,包含飞行器建模与PID控制算法
javascript·3d·html·四轴无人机模拟飞行
来恩10037 小时前
jQuery选择器
前端·javascript·jquery
前端繁华如梦7 小时前
树上挂苹果还是挂玻璃球?Three.js 程序化果实的完整实现指南
前端·javascript
CDwenhuohuo7 小时前
优惠券组件直接用 uview plus
前端·javascript·vue.js
川冰ICE8 小时前
TypeScript装饰器与元编程实战
前端·javascript·typescript
AI砖家8 小时前
Vue3组件传参大全,各种传参方式的对比
前端·javascript·vue.js
希望永不加班8 小时前
var局部变量类型推断的利弊
java·服务器·前端·javascript·html