📌 项目地址DietrichGebert/ponytail | ⭐ 110,683 颗星 | 🔧 JavaScript | 📜 未标注

它是什么

一个注入给 AI 编程 agent(目前针对 Claude Code)的 skill。名字来自公司里那种工程师:扎马尾,戴椭圆眼镜,入职比版本控制还早。你给他看五十行代码,他一言不发,换成一行。

这个 skill 做的就是把这种行为模式塞进 agent。README 的 Before/After 例子:你让 agent 做一个日期选择器,默认它会装 flatpickr、写包装组件、加样式表、再和你讨论时区。装了 ponytail 之后,产出一个原生 <input type="date">。例子代码块在 README 里是空的——因为答案本身就短到近乎没有。更多例子在仓库的 examples/ 目录。

54% 这个数字怎么来的,为什么它可信

这个项目 11 万 star,但我认为最值钱的部分是它处理数据争议的方式。

早期宣传是”80-94% less code”。issue #126 指出这个基线不公平:裸模型会在回答里塞说明文字和备选方案,所以差距部分是对话基线造成的假象。作者没有删 issue,而是承认问题,重新做了一套 agentic 基准:

  • headless Claude Code 会话,编辑真实开源仓库(tiangolo 的 full-stack-fastapi-template,FastAPI + React)
  • 12 个功能任务,同一 agent 开/关 skill,每组 n=4,模型 Haiku 4.5
  • 以留下的 git diff 评分,而不是看回答写了多少字

修正后的结果:

方案 LOC tokens 成本 时间 安全护栏
ponytail -54% -22% -20% -27% 100%
caveman(简短文风对照) -20% +7% +3% +2% 100%
裸提示 “YAGNI + one-liners” -33% -14% -21% -30% 95%

三个关键点:

54% 是均值,不是承诺。 在 agent 容易过度构建的任务上降幅达 94%(日期选择器 404 行降到 23 行,颜色选择器 287 行降到 23 行,因为 ponytail 直接用原生 <input> 而不是组件库);在本来就精简的代码上降幅接近零。它砍的是多余部分,不是无差别压缩。

“让它写一行”这个朴素做法会丢护栏。 对照组里裸提示的安全率是 95%——少了一个安全检查。ponytail 在压缩代码的同时保留全部护栏,这是它和一句话提示词的实质区别,不是文风区别。

简短文风本身不够。 caveman 只让 agent 说话变短,LOC 只降 20%,成本反升 3%。压代码量需要的是明确的行为规则,不是让 agent 少啰嗦。

完整方法、逐任务表格和局限性在 benchmarks/results/2026-06-18-agentic.md。单次生成测试可用 npx promptfoo eval 复现(README 原文在命令处截断,完整参数见仓库)。安装步骤也以官方 README 为准,我不转述以免过时。

用之前要清楚的两件事

  1. 收益取决于你的 agent 有多能”写”。 如果它本来就克制,这个 skill 帮不了你多少。价值集中在 CRUD 页面、UI 组件这类 agent 惯性堆依赖的场景。
  2. 基准绑定 Claude Code + Haiku 4.5。 换 agent 或换模型,效果要自己验证,README 没给其他环境的数据。

我的看法

这个项目分两层看。skill 本身解决的是真实痛点——agent 过度构建是所有人都在碰的问题,54% 的代码量削减配上 100% 护栏保留,数据说得过去。

但更值得收藏的是它的基准修正过程:被指出 artifact → 承认旧数字有水分 → 重做更公平的 agentic 测试 → 把旧数据、issue 链接、局限性全留在 README 里。在一堆”我的 agent 提效十倍”的宣传里,”94% 是上限、54% 是均值、约零是下限”这种写法本身就是稀缺品。如果你要给自己的工具做基准测试,这篇 README 的方法论比工具本身更值得抄。

这篇文章对你有帮助吗?

发表回复