Ponytail插件token省两成:一百行提示词把YAGNI原则重新包装


AI写代码老爱搞复杂工程,明明一行能搞定非要搭个完整架子。

Ponytail这个开源插件就是给AI大脑装个“懒人刹车片”,逼它在写代码前先问七遍“这玩意儿真有必要写吗”。结果代码量砍半,token省两成。但本质上它就是一百行提示词,把几十年前的YAGNI原则包装成了四万星网红项目,这事儿本身就挺讽刺的。

这个插件专治AI的“过度热心”

你用AI写代码的时候有没有遇到过这种情况。你让它加个日期选择器,它先给你装个第三方库,再写个包装组件,配一份样式表,然后开始跟你讨论时区问题。四百多行代码就这么出来了。

你心里想的是“我就想要个能点出来的日历”。AI心里想的是“我要给你一个完整的工程化方案”。两边不在一个频道上。Ponytail这个插件的作者估计也被AI这种过度热心整烦了,干脆写了一套规则塞给AI:你少给我整那些花活。

它的核心理念特别简单。最好的代码就是你没写的那行代码。翻译成人话就是:能不动手就别动手,非得动手就动最少的手。

七层阶梯把AI的“想太多”掐死在摇篮里

Ponytail最核心的设计叫“决策阶梯”。AI每次写代码之前必须按顺序爬这七个台阶,停在第一个能停的地方。

第一层,这东西真的需要存在吗。不需要就拉倒。第二层,代码库里已经有现成的了吗。有就直接拿来用。第三层,编程语言自带的标准库能搞定吗。能就用标准库。第四层,浏览器或者操作系统本身就有这个功能吗。就像那个日期选择器,HTML里敲个input type等于date就完事了。

第五层,已经装过的依赖包能解决吗。能就别加新包。第六层,能一行写完吗。那就只写一行。第七层,以上都不行,才允许写最少量的代码把功能跑通。

这套逻辑说白了就是把“懒”给制度化了。但作者特别强调了一件事:懒的是解决方案,不是理解问题。AI必须先读懂代码、追踪完整流程,再爬这个梯子。没搞明白就瞎精简,那不是懒,那是蠢。

用七个词打败整套插件的实验

作者最早放出的对比数据特别吓人,代码量削减百分之八十到九十四。后来他在一个真实的FastAPI加React项目上重新做了基准测试,十二个功能任务,用的是Haiku 4.5模型。平均结果是不带Ponytail的AI写了那么多代码,带上的只写了百分之四十六。代码量减少了百分之五十四。Token省了百分之二十二,成本降了百分之二十,时间少了百分之二十七。安全测试照样百分百通过。

不过这个数据出来之后争议马上就来了。

Scott Logic的CTO专门写了篇文章拆台。这个实验是这样的。Scott Logic 的 CTO 看Ponytail火得太快了,就拆开研究了一下,结果发现这项目有六千多行代码,但核心规则就是一份一百行左右的Markdown文件,把九十年代的YAGNI原则重新描述了一遍。

然后他就干了件很损的事。直接在提示词里加了七个词:“Follow YAGNI principles, and one-liner solutions.”也就是“遵循YAGNI原则,优先用一行解决方案”。他用这句只有七个词的话,去跑Ponytail自己的基准测试。

结果呢,这句大白话提示词跑出来的代码行数比Ponytail还少。Ponytail跑出来是8.25行,这句七个词的话跑出来只有6.9行。相当于用一句话打败了一整个网红插件。

不过后来有个反转。

Ponytail作者看到批评后,把整个基准测试推倒重做,加上了真实项目环境和安全测试。在安全性测试里,那句七个词的提示词有一次把文件路径的校验给精简掉了,而Ponytail的规则层把这层安全逻辑保住了。这说明那句提示词虽然能少写代码,但不太靠得住。

技术实现其实挺薄但传播确实猛

Ponytail的技术形态说白了就是一套规则文件加一堆适配器。它支持十六种AI编程代理,Claude Code、Codex、Copilot CLI、Cursor、Gemini CLI都在列表里。安装方式因平台而异,Claude Code要分两条命令加marketplace再装插件,Cursor这类直接把规则文件复制到对应目录就行。

它还有几个配套命令。ponytail-review审查当前改动有没有过度工程,ponytail-audit扫描整个仓库找冗余,ponytail-debt把你用ponytail注释标记的临时偷懒点收集成一个待办清单。这个设计挺聪明,它承认有些精简是临时的,得留个升级路径。

但所有这些功能加一起,核心还是那段提示词。项目九天之内冲上四万多星,与其说技术多厉害,不如说那个“马尾辫资深工程师”的人设太有画面感了。你脑海里立刻就能浮现出那个戴着椭圆眼镜、比公司版本控制系统资历还老、看五十行代码一言不发然后换成一行的形象。


真相是这玩意儿到底有多大用取决于你信不信

Ponytail解决了一个真实存在的问题,AI确实经常过度构建。它的规则在日期选择器、颜色选择器、文件上传这类前端场景里效果尤其明显,从几百行压缩到二十几行。

但它也有明显的局限。本质上它就是一段提示词,对已经最小化的代码基本没用。在弱指令遵循的小模型上效果等于噪声。而且它看package.json里有没有某个依赖,却不理解你项目里已经装好的设计系统,有时候给出的“原生方案”反而格格不入。

更关键的是,到目前为止没有一个署名的、长期的生产环境使用案例。四万星衡量的是传播力,不是经过时间检验的有效性。那个CTO的批评也站得住脚:七句话的提示词就能达到同样效果,那这个六千多行代码的仓库算什么,新的leftpad吗。

这场讨论其实戳中了AI编程代理的某种荒诞感

Ponytail这个项目的走红本身就是一个黑色幽默。它用一套规则试图让AI少写代码,但这套规则本身被包装成了一个需要安装、配置、适配十几个平台的工程产品。它宣称自己是极简主义,仓库却塞了六千多行代码。它批评AI过度构建,自己的构建也没少到哪儿去。

那个用七个词打败整套插件的实验把这种荒诞感推到了极致。你花半天研究怎么装怎么配怎么调模式,结果直接跟AI说人话效果更好。

但这恰恰也说明了一个问题。AI编程代理需要的可能不是更复杂的插件系统,而是更简单的指令。

问题在于,如果“遵循YAGNI原则”这七个字就能让AI变懒,为什么AI不默认就这么干。因为它被训练得太“乐于助人”了,它觉得给你一个完整的方案才是尽职尽责。你得明确告诉它,不需要,别多事。从这个角度看,Ponytail存在的意义或许不在于它的技术实现,而在于它用一个病毒式传播的人设,让更多人意识到了“可以跟AI说少写点”这件事。



总结:Ponytail用“懒人资深工程师”的人设给AI装了套刹车片,代码量减半、token省两成的数据好看,本质却是一百行提示词把YAGNI原则重新包装。走红靠人设,争议在冗余,七句话的提示词就能打败它这件事本身就挺讽刺。