公司里总有那么一个资深工程师,来得比你早,看着你写的五十行代码,什么都不说,换成一行。
ponytail 想把这个人塞进你的 AI Agent。
痛点描述得很准
你让 Agent 做一个日期选择器,它会装 flatpickr、写一个包装组件、加一份样式表,然后开始和你讨论时区问题。
这种过度构建不是模型笨,是默认行为——生成代码的倾向天然偏向「多写点保险」。结果是代码库膨胀、审查变难、token 账单跟着涨。
测评方法值得学
作者用了一个很难挑刺的测法:无头 Claude Code 会话,改 tiangolo 的 full-stack-fastapi-template 这个真实仓库,按它留下的 git diff 打分。12 张功能票,同一个 Agent,带与不带这个技能各跑 4 轮,用 Haiku 4.5 模型。
| 对比无技能基线 | 代码行数 | token | 成本 | 耗时 | 安全项 |
|---|---|---|---|---|---|
| ponytail | -54% | -22% | -20% | -27% | 100% |
| caveman(精简文风对照组) | -20% | +7% | +3% | +2% | 100% |
| 「YAGNI + 一行流」提示词 | -33% | -14% | -21% | -30% | 95% |
三组里只有 ponytail 每一项都降,同时安全项满保。
作者主动推翻了自己之前的数字
这一点是我给它加分的主要原因。它早期的单轮基准报的是「代码量少 80-94%」,但社区 issue #126 指出,裸模型的基线会往回答里塞一堆散文和选项,这个差距有一部分是对话基线造成的假象。
作者认了,并把正确版本重测了一遍,明说「agentic 数字才是修正后可辩护的版本」,还附了逐任务表格和复现方法。
降代码量最大的是有过度构建陷阱的地方——日期选择器从 404 行降到 23 行,取色器从 287 行降到 23 行,因为它改用原生标签而不是组件。对已经足够精简的代码,降幅接近零。
边界写在明面上
规则从来不是「token 最少」,而是只写任务需要的,且绝不砍掉校验、错误处理、安全和无障碍支持。
这跟「让 Agent 写一行代码」那种粗暴提示词有本质区别:后者会顺手砍掉一个安全检查,测试里那 95% 就是这么丢的。
来源:GitHub