Rabi最早接触AI编程的时候用的是Cursor的自动补全。且不说正确与否,一边写着一边光标后面一直在浮现额外的文字,Rabi感觉注意力一直被分散,手感一团糟,于是浅尝之后就再也没有使用过了。
有一天Rabi看到了亚马逊云的博客文章,说是推出了一个叫Kiro的IDE,还要先排队才能试用。本来Rabi应该没什么兴趣的,但是它叫Kiro诶(个中缘由按下不表)。于是就点了申请,过了大概一个星期收到了激活码,然后就安装试用。
这一试倒是真有点新鲜,最显眼的就是对话窗口里和Vibe并排的Spec模式了。Rabi扫了一眼描述,便感觉到似乎靠谱,于是试着用Spec模式将之前写的一组Shell运维脚本迁移成Go语言的单个可执行程序,这样就不需要使用前安装依赖的Shell命令了。
结果非常的顺利,Rabi得到了一个上传就可以用的运维工具,并且Rabi觉得需求·设计·任务的三步骤很好地平衡了推进开发的效率和Agent行动的准确性。然而随着更加深入的使用,Kiro也开始暴露出各种奇奇怪怪的毛病,比如执行完任务后没给对应的任务打勾,或者无视全局指示硬要在Bash终端里跑Powershell命令然后疯狂重试。Rabi也很难忍住不吐槽,明明模型选了Claude Sonnet 4.5,怎么笨成这个样子?喝假酒了?
反观Agent CLI,写代码的正确性非常亮眼,瓶颈反而在有时候没能把需求表达得足够清晰就开始执行,导致Agent假设出一些不准确的细节,力气用错地方,最后还要回滚重来。
于是Rabi有了一个想法:能不能在别的Agent CLI上使用规范驱动开发呢?
Rabi知道有一个相对开放的标准是AGENTS.md,很多Agent CLI在工作之前都会先读一遍。那只要让Kiro把spec的流程写进AGENTS.md里面,然后就可以换成别的Agent CLI,再参考着.kiro/spec里的现成例子继续完善下去了。听起来有戏。
开发历程
于是Rabi打开了Kiro IDE,还从官网上找来spec的说明文档,让Kiro根据它来写一份AGENTS.md,为了区分让别的Agent把使用的路径从.kiro/specs换成.agent/specs,结果开幕雷击:
好家伙,才创建完Kiro立马就自己拿来读一遍,还有这种赛博鬼打墙的。文档还是没完成的状态,照这样下去用不了几个来回,Kiro自身的操作肯定要变形了。
Rabi首先想到的办法是在AGENTS.md的开头手工添加一段类似于“如果你是Kiro IDE,就忽略下面的全部内容……”的指示,然后还专门新开了一个对话问Kiro是否读到这段话了,得到了肯定的答复,于是Rabi接着在Kiro里创建spec来做剩余的工作。难绷的是Kiro嘴上说看到了看到了,身体却很诚实地把spec给弄到了.agent/specs里面去。
这怎么办?稍加思索,Rabi有了新的主意:虽然看上去有些多此一举,但是可以把文档挪到src/AGENTS.src.md去,再写一个Makefile,“编译”的时候再复制到AGENTS.md,这样开发过程中就不会受到文档内容的干扰了。于是调好布局,再重新创建spec,果然这次就正常使用了.kiro/specs,核对完需求·设计·任务,接着就开始推进执行(Kiro的执行全部任务功能就没有靠谱过,每次都会到某个地方莫名停下,需要人工继续,Rabi也习惯了)。
本来到这里就应该Happy Ending了,结果还有高手。Kiro不知道觉醒了哪里的文豪基因,竟然洋洋洒洒地写了14万字,把Rabi这个星期的50免费积分都用光了,甚至还没有写完。Rabi没有办法,只能开通订阅才全部写完,最终来到了将近17万字。
这么大的篇幅Rabi没法读完一遍,但Rabi也不虚。直接新建文件夹把AGENTS.md拖进去,然后打开codex描述了一个玩具需求:做一个能闪白终端3秒钟的程序。神奇的事情发生了,codex真的按照spec的流程创建了.agent/specs/flashbang-effect,简单弄好需求·设计·任务之后就让codex开始执行,不多时就写出了一版能用的程序。
这下Rabi来劲了,于是又换成opencode+GLM5.1试了一遍,流程也没问题,虽然多修了一轮bug,但最终也达到了效果。
到这里Rabi就感觉达到最初预想的效果了,于是顺手公开到GitHub上,准备立刻就拿来做新项目。虽然目前篇幅过大会浪费一些token,不过回头会再优化。最简单的使用方法是在项目文件夹里运行:
当前已更新了一个小版本,改为使用更为通用的.agents目录
wget https://github.com/rabi-UoxoU/Spec4Agents/releases/download/v0.2.0/AGENTS.md
然后正常启动Agent CLI就行了。
后记
5月12日,Kiro又发布了一篇博客文章,主旨是通过支持并行运行任务和在目的足够明确时一次性生成需求·设计·任务而不是分三步执行来提高Spec模式的效率。有趣的是,基于Rabi移植的Spec4Agents的Codex CLI实际上已经具备了这些能力,Rabi最近开发新项目的时候都观察到了。
Rabi半夜里被做局了。写完之后先是网址里面的/no在QQ空间被解析成了表情☝️导致网页链接坏掉了,于是Rabi就在手机上编辑文章的链接,过程中大概是误触了编辑器的清空按钮(讲真哪个正常人会在编辑器里放一键清空内容的按钮啊?),再加上手机版的布局问题,直到点了保存都没有发现内容被干掉了。发现异常之后又打开电脑来找WordPress的文章修订历史,竟然一个版本也没有,最后找浏览器缓存也没有找回来。
进一步调查之后发现,是Kratos主题设置在作怪:
这个开关的实际行为是启用时禁用文章自动保存和修订版本功能,写出这种反人类逻辑就算了,连描述都写不明白,于是Rabi在Kratos4Radio里覆盖掉了这部分文本。还有那个清空按钮,早晚也要把它拿掉。
然而死掉的文章是找不回来了,所以这篇文章其实是第二次重新写出来的。








文章评论