晚上加班,让AI帮我补个排序逻辑,结果它洋洋洒洒给我生成了两百行代码,里面还附带了一个缓存方案、一个线程池配置,甚至顺手写了个日志模块。我盯着屏幕看了三秒,关掉了那个会话窗口,自己写了五行。
这种感觉你大概率不陌生:AI助手很努力,但总在你不想要的事情上用力过猛。说白了,它缺少一种能力——判断哪些代码根本不需要写。
直到我翻到了 GitHub 上这个项目,README 里第一句话就戳中了我:
“He says nothing. He writes one line. It works.”
项目名叫 Ponytail,翻译过来是“马尾辫”,但你看它的 logo——一个懒散靠在椅背上的程序员。这名字起的很妙:不是说程序员留马尾辫,而是在调侃那种“看起来懒、实际效率极高”的 senior dev。
它到底做什么?
一句话:让AI agent学会像最懒的高级开发一样思考。
Ponytail 本质上是一套精心设计的 prompt 规则,可以注入到 Claude、Cursor、Copilot 等 16 种常见 AI agent 里。它不写一行额外的代码,只是通过几条原则,把 AI 从“你让我写我就写满”的憨厚模式,切换到“你让我写我只写最必要”的精简模式。
核心思想其实就是软件工程里常说的 YAGNI(You Ain't Gonna Need It)——你现在用不上的功能,就别写,别猜。
我下载试了一下。导入规则后,让同一个模型写一个从 JSON 文件中提取指定字段的脚本。之前它给了我 60 行,带异常处理、日志和配置文件。这次只输出了 12 行,没有多余的结构,没有花哨的装饰,刚好能用。
“Its works.” 不是吹的。
为什么这件事值得你关注?
如果你只用 AI 写点小脚本,可能觉得无所谓——多几行少几行差别不大。但一旦你让它参与项目级的代码生成,问题就来了:
- AI 生成的代码经常包含大量你根本不需要的抽象层,后来的人看不懂,也不敢删
- 过度设计导致复杂度上升,代码评审变成阅读理解
- 维护成本直线飙升,而那些功能你压根没用上
Ponytail 的解法很直接:在 prompt 层面注入“懒人思维”。它告诉 AI:
- 别写你不需要的代码
- 别猜未来要加什么功能
- 能一行解决的问题,不要写三行
- 如果某个功能不是现在明确需要,就删掉
这听起来简单,但真能做到的 AI agent 不多。大部分模型的训练数据里包含大量“好代码”的示例,而“好代码”往往被定义为“结构清晰、易于扩展”。问题在于,“易于扩展”经常被误解成“预留了大量扩展点”,而这些点最终根本没用上。
怎么用?花五分钟就够了
Ponytail 的安装方式因 agent 而异。我主要用 Claude Code 和 Cursor,就只测了这两种:
- Claude Code:通过插件或直接在配置中添加 rules 文件
- Cursor:设置里加入 custom rules,把 Ponytail 的内容复制进去就行
官网上有详细的集成指南,支持 16 种 agent,包括 GitHub Copilot、Windsurf、Cline 等。整个流程不需要装额外工具,就是一段文本规则。
我是直接把这个项目塞进 Cursor 的 .cursorrules 文件里,然后重新启动会话。之后试了几个请求,明显感觉输出的代码思考路径变短了,注释也少了,但没有影响可读性。
一点个人判断
这种工具不会让你一夜变成大神,但它帮你省掉了一件很烦的事:替 AI 擦屁股。
过去我总得手动审核 AI 生成的代码,删掉那些“万一以后要用”的冗余部分。现在它自己先精简了,我只用确认逻辑对不对就行。
当然,它也有适用场景。如果你写的是需要高度健壮的生产代码,或者要遵循严格的项目规范,那 Ponytail 可能会过于激进,删掉本该写的边界检查。但如果你在快速原型、临时脚本、或者自己维护的小项目里,它会帮你保持干净。
另外,这种思路本身就值得借鉴。很多开发者在写代码时也容易陷入“过度设计”的陷阱——以为自己很专业,其实是在满足自己的掌控欲。Ponytail 提醒我们:真正高级的代码,是那些你思虑周全之后,选择不写的那部分。
如果你也在用 AI 写代码,可以试一试这个项目。它免费、开源、轻量,用不了一顿饭的时间就能装上。
最后留一个问题给你思考:你最近的代码里,有多少行是“为了以后”写的,而那个“以后”从来没来过?
希望 Ponytail 能让你少写一点“以后”的代码。
项目地址:https://github.com/DietrichGebert/ponytail
本期项目


评论区