返回博客

给 AI 装个"最懒高工"人格:ponytail 实测少写一半代码

Claude CodeAI AgentponytailYAGNI工程实践

用 coding agent 的人都撞过同一堵墙:你要一个日期输入框,它还你一整个日期选择器组件——时区处理、国际化、键盘无障碍,一样不少。

每一行都对。合起来全是负债。

模型不是不会写代码,是太会写了。你要个门把手,它给你造一扇智能门,还附赠说明书。这两年我做 Agent 产品,看各家模型一代比一代强,这个毛病没跟着好转,反而更重——能力越强,越忍不住多写。

GitHub 上有个项目专治这个病,叫 ponytail。78k star,MIT 协议,一句话说完它干的事:给你的 AI agent 装一个"全公司最懒的高级工程师"人格。

就是那种老工程师——扎马尾,戴椭圆眼镜,比版本控制系统入职还早,什么过度设计的烂摊子都见过。他的哲学只有一条:最好的代码,是你从来没写的那些。

README 的原话更狠:"He says nothing. He writes one line. It works."

他什么都不说。他写一行。能跑。

两条命令,装上

Claude Code 里分两次发:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

Codex、Copilot CLI、Gemini CLI 各有对应的一条命令。Cursor、Windsurf、Cline 这类没有插件机制的,把仓库里现成的规则文件拷进项目就行。总共适配了 16 个 agent——基本等于"你在用的那个,它都管"。

装完不用配置,默认就是 full 档。想调,/ponytail lite/ponytail ultra/ponytail off 随时换。档位的差别就是管得多严:lite 客气,full 正常,ultra 最不留情面。

七连问,问完再动手

它的核心机制是一架"YAGNI 阶梯"。agent 每次动手写代码之前,强制先爬七级:

  1. 这功能需要存在吗?不需要,整个跳过。
  2. 代码库里已经有了?复用。
  3. 标准库里有?用标准库。
  4. 平台原生就支持?别造轮子。
  5. 已装的依赖里有?别加新包。
  6. 一行能写完?就写一行。
  7. 以上全不行——才写最小实现。

注意顺序。先把问题彻底读懂,再开始懒。它不是让模型少想,是让模型把力气花在"能不能不写"上。

还有一条底线我很认:安全、输入校验、错误处理、无障碍,永远不砍。懒的是代码量,不是质量。少写代码最怕的就是顺手把校验也懒掉——它在规则里把这条焊死了。

平均砍 54%,最狠一刀 94%

数据我去翻了它的 benchmark 说明,方法不糊弄:12 个真实功能任务,跑在 tiangolo 那个几万 star 的 FastAPI + React 模板仓库上,模型用 Haiku 4.5,每个任务跑 4 遍,按 git diff 打分。

结果:代码量平均少 54%,token 少 22%,账单少 20%,速度快 27%。

平均数后面的分布更有意思。本来就该极简的任务,降幅接近零——没肥肉可砍。"过度构建陷阱"型的任务,比如前面说的日期输入框,降幅冲到 94%。

它专砍你最该砍的地方。

安全评分是满分。同类方案有掉到 95% 的——别小看这 5 个点,放到生产环境里,就是有事故和没事故的差别。

日常就用三个命令

/ponytail-review,扫当前 diff 里的过度工程,直接给删除建议。提交前跑一遍,相当于先请懒高工过目。

/ponytail-audit,全仓库扫。这个杀伤力大——它不看你这次改了什么,它看你整个项目里堆了多少"以后可能用得上"的东西。

/ponytail-gain,看它到目前为止帮你省了多少。

偶尔用得上的还有 /ponytail-debt:代码里标过 ponytail: 记号的那些"以后再说",它统一收进一本欠账台账,免得散在注释里烂掉。

audit 我暂时没舍得在自己最老的仓库上跑。谁都知道会扫出什么——自己写的过度工程,比 AI 写的难承认多了。

什么时候别开它

三个场景,建议关掉,或者至少降到 lite 档。

原型期要发散的时候。你自己都还不知道要什么,agent 多铺一点反而是帮你探路。这时候开 ultra,等于拉一个只会说"不用做"的人来陪你头脑风暴。

代码库本来就极简的时候。benchmark 里降幅接近零的那批任务就是证据——鞭子再紧,抽在骨头上也没肉掉。

还有一种最隐蔽:把它当能力增强器。它不是。弱模型装完还是弱模型,它改的是品味,不是智商。指望一个插件让小模型写出大模型的架构判断,方向从头就错了。

装还是不装

"代码是负债,不是资产"——这话行业里讲了二十年,全靠工程师自觉,从来没真正执行成过。人管不住自己,评审也管不住。

现在它变成了一个装进 agent 的强制检查点。每写一行之前先过七个问题,过不了就不许写。二十年的工程格言,头一回有了执行器。

这种"往 agent 里装人格"的路子能走多远,我不好说。品味到底能不能靠一份规则文件注入,我也存疑。

但账单少两成,是当月就能看见的数字。

先装上。别的以后再说。