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

相关推荐
小羊没烦恼!11 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
Highcharts.js12 小时前
AI图表开发工具Highcharts Assist|自然语言生成图表代码
javascript·人工智能·highcharts·开发神器
志尊宝12 小时前
Vue3 零基础每日笔记(087):Vue3 高频面试题(下)
前端·javascript·vue.js·笔记·ecmascript·#vue.js
const_qiu14 小时前
第二章 2.6:初始化 NestJS 服务端 —— TypeScript 后端框架体验
前端·javascript·typescript
miofly15 小时前
GitHub 今日推荐|sweety-handdraw-video:文章转手绘口播视频
javascript·开源·github
用户831348593069815 小时前
Vue3 事件:常用用法与开发高频坑点
前端·javascript·vue.js
漫步人生走在路上16 小时前
用小语种SEO突破外贸B2B天花板:法语、德语市场的实测数据
开发语言·前端·javascript·人工智能·搜索引擎·ecmascript
ydjs678899-bot17 小时前
您的Next.js中间件匹配器配置可能会跳过您认为它保护的路由
开发语言·javascript·中间件
Chengbei1117 小时前
JsOwl|AI 赋能 JS 敏感信息扫描器,AST + 正则、source‑map 源码还原、登录态爬虫输出交互式 HTML 报告
开发语言·javascript·网络·人工智能·爬虫·网络安全·自动化
ShineWinsu18 小时前
对于JavaScript:初识JavaScript以及输入输出
java·开发语言·前端·javascript·css·面试·html