← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

DietrichGebert ponytail


DietrichGebert ponytail

Ponytail 他什么也不说。他只写一行。它能跑。~54% 更少代码(最高 94%)· ~20% 更便宜 · ~27% 更快 · 100% 安全 在真实的 Claude Code 会话中测量,编辑一个真实开源仓库(FastAPI + React),与没有 skill 的同一 agent 对比。~54% 是 12 个功能任务的平均值(Haiku 4.5,n=4);在 agent 过度构建的地方(一个日期选择器)达到 94%,在代码本已极简的地方接近零。ponytail 保留了所有安全防护,而一个裸的“写一行代码”提示会丢掉一个。(早期的单次基准报告将 80-94% 作为一个固定数字;对照公平的 agentic 基线,那是每个任务的上限,而非平均值。)完整说明 · 复现它。Español · 한국어

已经用 Ponytail 构建

你认识他。长马尾。椭圆眼镜。在公司待的时间比版本控制还长。你给他看五十行代码;他看了看,什么也没说,然后用一行替换掉。Ponytail 把他放进你的 AI agent 里。

之前 / 之后

你要一个日期选择器。你的 agent 安装 flatpickr,写一个包装组件,加一个样式表,然后开始讨论时区。

用 ponytail:


更多幸存者在 examples/ 中。

数字

诚实的测量是真实 agent 做真实工作:一个无头 Claude Code 会话编辑 tiangolo 的 full-stack-fastapi-template(一个真实的 FastAPI + React 仓库),根据它留下的 git diff 评分。十二个功能工单,同一 agent 有和没有 skill,n=4,Haiku 4.5。

| vs 无 skill 基线 | LOC | tokens | 成本 | 时间 | 安全 | |---|---|---|---|---|---| | ponytail | -54% | -22% | -20% | -27% | 100% | | caveman(简洁散文对照) | -20% | +7% | +3% | +2% | 100% | | “YAGNI + 一行代码”提示 | -33% | -14% | -21% | -30% | 95% |

ponytail 是唯一削减每一项指标的组,也是唯一在做到这一点的同时保持完全安全的组。削减在有真正过度构建陷阱的地方最大(日期选择器 404 行到 23 行,颜色选择器 287 到 23,因为它伸手去用原生 而不是组件),在已经极简的代码上接近零。

完整方法、每任务表格和局限性:benchmarks/results/2026-06-18-agentic.md。

较早的单次数字(孤立生成)

五个日常任务,三个模型,三个组(无 skill、caveman、ponytail),十次运行,报告中位数。一个提示,一次补全,计算答案的行数:这显示了 80-94% 更少的代码。#126 相当正确地指出,裸模型基线用散文和选项填充其答案,所以那个差距部分是对话基线的产物。上面的 agentic 数字是修正后的、可辩护的版本。用 npx promptfoo eval -c benchmarks/promptfooconfig.yaml 复现单次运行。

规则从来不是“最少 token”。而是:只写任务需要的东西,绝不削减验证、错误处理、安全或可访问性。代码最终很小是因为它是必要的,不是因为打高尔夫。更低的成本和延迟是在遵循阶梯的模型上的副作用;一个简洁的推理模型如果花思考 token 来斟酌阶梯,可能会走向反面(在 GPT-5.5 上确实如此)。

工作原理

在写代码之前,agent 停在第一个成立的阶梯上:

  1. 这需要存在吗?→ 不:跳过它(YAGNI)
  2. 已在此代码库中?→ 复用它,不要重写
  3. 标准库能做?→ 用它
  4. 原生平台功能?→ 用它
  5. 已安装的依赖?→ 用它
  6. 一行?→ 一行
  7. 只有到那时:能工作的最小方案

阶梯在它理解问题之后运行,而不是代替理解:它阅读变更触及的代码,并在选择阶梯之前追踪真实流程。对解决方案懒惰,对阅读从不懒惰。懒惰,而非疏忽:信任边界验证、数据丢失处理、安全和可访问性从不在砧板上。

安装

Ponytail 会向你要求的最多努力:

Claude Code 和 Codex 插件(以及 Cursor hooks)运行两个微小的 Node.js 生命周期钩子,所以 node 需要在你的 PATH 上(Nix/nvm 用户注意:它必须在非交互式 shell 的 PATH 上)。如果不在,skills 仍然工作,始终开启的激活只是保持安静,而不是在每个提示上出错。

Claude Code

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

(你必须发送两个单独的提示才能让安装工作)

在 Claude Code 桌面应用的 Code 标签页中同样的步骤:在上面的提示框中输入两个 /plugin 命令,或点击旁边的 + 按钮,选择 Plugins → Add plugin 来浏览你配置的 marketplace,并从侧边栏的 Customize 管理 marketplace。

Codex

codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail

运行 codex 并打开 /hooks,审查并信任它的两个生命周期钩子,然后开始一个新线程。同样的安装也覆盖 Codex 桌面应用:安装后重启应用,它会拾取插件。

GitHub Copilot CLI

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

在交互式 Copilot CLI 会话中,使用斜杠等价命令:

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

Copilot CLI 按插件名命名空间化插件命令。例如:

/ponytail:ponytail ultra
/ponytail:ponytail-review

Pi agent harness

pi install git:github.com/DietrichGebert/ponytail

OpenCode

添加到 opencode.json:

{
  "plugin": ["@dietrichgebert/ponytail"]
}

改为从 checkout 运行(插件复用 hooks/ 和 skills/):

{
  "plugin": ["./.opencode/plugins/ponytail.mjs"]
}

每轮在活动级别注入规则集;添加 /ponytail 命令(见 Commands)。OpenCode 还会自动加载此仓库的 AGENTS.md,所以即使没有插件规则也成立。插件添加 lite/full/ultra/off 级别。./ 路径相对于你项目的 opencode.json 解析;要在项目间共享一个 checkout,请将其指向 .mjs 的绝对路径(它相对于自己的文件找到其 hooks/ 和 skills/)。

Gemini CLI

gemini extensions install https://github.com/Diet
📖 阅读原文 →