如何让 AI 代理写出最简代码,告别过度设计
还记得 IT 部门里那种人吗?戴着椭圆眼镜,脑后扎着马尾辫,在公司待的时间比版本控制系统还长。你给他们看五十行新代码,他们默默盯几秒钟,然后把所有代码擦掉,写出一行实现同样功能的代码。
现代自主 AI 模型(如 Claude Code、Codex 或 Cursor)则存在相反的问题。如果你让代理在表单中添加一个简单的日期选择器,他们会安装第三方包、创建包装组件、编写样式,并就时区问题展开讨论。代码不断增长,依赖关系不断扩展,Token 费用也在增加。
仓库 DietrichGebert/ponytail 正是为了解决这一问题。该项目用那位马尾辫开发者的逻辑取代了模型构建复杂架构的习惯:不要坐在额外的代码上,使用原生功能和标准库。

为什么 AI 代理需要资深开发者的"无所谓"态度
每增加一段代码都意味着潜在的 bug、额外的审查步骤,以及每次 LLM 调用的延迟。模型默认生成的内容超过实际需求,通过将简单操作包装在抽象层中来显得有用。
Ponytail 提供了一套面向 LLM 代理的规则和钩子,强制模型在写第一行代码前停下来。代理不再构建架构脚手架,而是遵循简短的决策阶梯:
- 这真的需要吗?如果不需要,任务就跳过(YAGNI)。
- 代码库中是否有合适的代码片段?直接复用。
- 标准库能否解决这个任务?
- 是否有原生的浏览器或平台特性?
- 能否用一行代码解决?
- 最后才——编写最少的可工作代码。
安全逻辑保持不变。模型不会削减输入验证、错误处理、权限检查或无障碍参数。设置只会削减架构上的冗余。
详细分解:
<!-- Обычно агент ставит тяжелый JS-календарь -->
<!-- С подключенным Ponytail: -->
<input type="date">
数据说明了什么
项目作者在实际项目中测试了这些规则的有效性。测试使用了 tiangolo 的 FastAPI + React 模板,让 Claude Code(Haiku 4.5 模型)完成 12 个功能编写任务。结果与没有额外指令的干净代理进行了对比。
测量总结:
- 创建的代码量(LOC):平均减少 54%(在某些单独任务中,如原生颜色选择器,节省达到 94%)。
- Token 成本:减少 22%。
- 总调用成本:下降 20%。
- 任务解决时间:缩短 27%。
- 对抗性安全测试通过率:100%。
其他技术也参与了基准测试。例如,caveman prompt 减少了聊天中代理的闲聊,但不会改变生成的代码本身。以"YAGNI + 一行代码"格式化的规则集将代码减少 33%,但往往会削减安全检查,使测试成功率降至 95%。Ponytail 是唯一在所有指标上节省资源且不损失可靠性的方案。
如何安装和配置
平台支持范围广泛。该插件适配了二十多种工具,从 CLI 工具到 IDE 插件。
对于 Claude Code,安装只需在内置聊天中执行两个命令:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
对于控制台中的 Codex:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
如果你使用 Cursor、Windsurf 或 Cline,只需将规则文件从仓库(.cursor/rules/、.windsurf/rules/ 或 AGENTS.md)复制到你的项目中。启动会话时会自动加载指令。
在控制台客户端中,可以使用特殊命令:
/ponytail— 查看或切换激进模式(lite、full、ultra、off)。/ponytail-review— 查看当前 git diff 并列出待删除的行。/ponytail-audit— 对整个仓库进行冗余抽象审计。/ponytail-debt— 将所有延迟的黑客和简化操作收集到单个列表中。
模式 ultra 适用于代码库纠缠得太复杂以至于拆除一半抽象层更容易的情况。
实际收益
这个工具对那些将日常重构、Jira 任务关闭或 CRUD 组件编写委托给 AI 代理的开发者很有用。没有严格的约束,代理会用重复的工具类、虚假的辅助函数和不必要的 npm 包淹没代码库。
Ponytail 作为模型肩旁的严格导师,节省 API 余额,加快响应生成,并消除代码审查时清理神经网络混乱的必要性。
如果你厌倦了"添加一个按钮"这样简单的请求却导致三个新文件和 package.json 的改动,这个项目绝对值得一试。
相关项目