代码这两年被 AI 写得越来越多,不是越来越少。agent 接到任务,默认就是装依赖、起项目、写 wrapper、加样式、讨论边界——听起来勤奋,实际大多数是过度工程。最近 GitHub Trending 上蹿出一个叫 Ponytail 的工具,做的事很反直觉:它不教 AI 多写代码,它教 AI 少写代码。

01 这个工具到底在解决什么问题
先说个场景。你让 AI agent 做个日期选择器,大多数 agent 的反应是:
装 flatpickr → 写一个 React 包装组件 → 加一份 CSS 样式 → 写一堆 onChange 回调 → 顺便讨论一下时区处理 → 最后给你 200 行代码。
这个"勤奋"的过程,正是过度工程的典型表现。
Ponytail 的核心思路就一句话:"不写的代码,就是最好的代码"(The best code is the code you never wrote)。它把"少写代码"这件事从一句口号,做成了 agent 的硬规则。
在 benchmark 里跑 5 个日常任务(邮箱验证、防抖、CSV 求和、倒计时、限流器),跨 Haiku / Sonnet / Opus 三个 Claude 模型对比:
• 代码量减少 80-94% • 成本降低 42-75% • 延迟快 3-6 倍
数字是 Ponytail 团队自己测的,benchmark 开源可复现(npx promptfoo eval -c benchmarks/promptfooconfig.yaml)。注意 benchmark 是单次单任务的,真实多轮 agent 会话的省量不一定这么夸张。

02 它怎么让 agent 学会"偷懒"
Ponytail 不是让 agent 写更短的代码,它是让 agent 在动笔之前先过一道"必要性阶梯":
1. 这事需要存在吗? → 不需要:跳过 (YAGNI)2. 标准库能干? → 用标准库3. 平台原生功能? → 用平台原生4. 已装的依赖? → 用已装依赖5. 一行能搞定? → 写一行6. 这才: 写最小可工作的版本它不砍掉所有东西,它砍掉的是"重复造轮子"的那一层。README 里专门强调:
"Lazy, not negligent": 边界校验、数据丢失处理、安全、无障碍——这些永远不上砍刀。
也就是说,Ponytail 砍掉的是"装个 flatpickr 再包一层"这种过度包装,保留的是输入校验、空指针检查、安全检查。
这套思路的源码是实打实的:在 Claude API 上跑 benchmark,代码块上每条"省下来"的捷径都标 ponytail: 注释,告诉你以后要不要补回去。
03 实测一周,装起来到底麻不麻烦
先说结论:就一条命令。
支持的 agent 多到离谱——README 自称 "works with 13 agents":
• Claude Code / Codex / OpenCode: 走 plugin marketplace • Gemini CLI / Antigravity CLI: 走 extension install • GitHub Copilot CLI: 走 plugin install • Pi agent harness: pi install • Cursor / Windsurf / Cline / Aider / Kiro: 复制仓库里的规则文件到对应目录 • OpenClaw: clawhub install ponytail(顺带支持,不开源仓另算)
Claude Code 一行命令:
/plugin marketplace add DietrichGebert/ponytail/plugin install ponytail@ponytail装完会注入 always-on 的 ruleset,每轮都过那道"必要性阶梯"。还顺手送了 4 个命令:
• /ponytail [lite|full|ultra|off]—— 切强度,默认 full• /ponytail-review—— review 当前 diff 里的过度工程• /ponytail-audit—— 审计整个 repo 的过度工程• /ponytail-debt—— 把标记为 ponytail: 的延迟项收集成清单,防"以后"变"永不"
默认强度是 full,你嫌 agent 写得不够,可以加 ultra;觉得限制太多,切 lite 或 off。配置走 ~/.config/ponytail/config.json 或环境变量 PONYTAIL_DEFAULT_MODE。
注意一个坑:Claude Code / Codex 的 plugin 走两个 Node.js lifecycle hooks,你的 node 必须在 PATH 里(Nix / nvm 用户尤其注意),否则 skill 还能用,只是 always-on 的激活会静默失败不报错。
04 谁适合用,谁不太适合
适合:
• 日常用 Claude Code / Codex / Cursor 写代码,被 agent 的"过度包装"烦到的人 • 团队 code review 流水线里,review 完发现"这一版里 80% 是没必要包装"的人 • 关心 token 成本,想从 agent 的"勤奋输出"里抠出真实价值的 • 愿意在 always-on 规则下写代码,能接受"agent 不再主动加依赖"工作流的人
不太适合:
• 正在做新项目脚手架,需要"先堆起来再优化"的人——Ponytail 默认会拒绝这一步 • 教学 / 演示场景,你想让 agent 把所有可能性都写出来对比——Ponytail 会砍掉太多选项 • 用极小模型(GPT-5.5 这类 terse reasoning 模型)——作者明确说,这类模型 Ponytail 反而更贵,因为"阶梯"是个 deliberation 步骤,thinking token 消耗盖过了代码省量
实操观察:Claude 系列模型表现稳,作者测出来 80-94% 少代码;OpenAI GPT-5.5 反而可能更贵;terse reasoning 模型(很多国产推理模型)效果不保证。选 Ponytail 之前,先看你常用的是哪个模型。
我的判断
这件事比大多数 AI 编程工具的发版都更值得讲讲。
它不是又一个"AI 帮你写更多代码"的工具。它回答的是一个非常具体的问题:当 agent 默认"勤奋"成了过度工程的代名词,怎么用硬规则把它拉回"必要性"?
Ponytail 的答案是:6 阶必要性阶梯 + always-on ruleset + 4 个精细化命令。这套组合不是新概念,但把它做成跨 13 个 agent 的标准化产品,是少数真落地的实现。
但方向是清晰的:AI 编程工具的下一阶段竞争,不在"多写",在"少写"。谁能更好地把"必要性"做成硬约束,谁就能在 token 成本和代码可维护性两条线上同时跑赢。
你怎么看"少写代码"这个反直觉的 agent 设计思路?你在用哪个 AI agent,被"过度包装"烦到过几次?
GitHub工具 地址: https://github.com/DietrichGebert/ponytail
有兴趣的可以装上试,接上自己常用的 agent(Claude Code / Codex / Cursor 都行),跑个 date picker 任务对比——代码行数的差异,5 分钟就能看出来。注意 benchmark 是单次单任务的,真实多轮会话的省量不一定这么夸张,作者自己也在 README 里强调过。
夜雨聆风