3.2KB 的 ponytail 规则实测:AI 编程少写的不只是代码

GitHub 上已有 17 万星的 ponytail 项目,用一个 3.2KB 的 Markdown 规则文件约束 AI 编码行为。一次低成本对照实验显示,这类规则减少的不只是代码行数,也包括模型替开发者做决定的倾向。

AI 编程工具的问题正在从“会不会写”变成“会不会写太多”。GitHub 上已有 17 万星的 ponytail 项目,单日新增接近两千颗星,其核心只是一个 3.2KB 的 Markdown 规则文件,试图让 Claude Code、Cursor 等工具在生成代码前先做减法。掘金一篇测试文章用不到 2 毛钱成本,让同一模型分别在不带规则和带规则的情况下完成 3 个任务,观察代码行数、token 消耗、自检和安全校验差异。结果显示,这类规则减少的不只是代码,也包括模型替开发者做决定的倾向。

一段规则文件,约束 AI 的“过度工程”

ponytail 没有运行时,也不执行代码,本体是一个 3.2KB 的 Markdown 文件,采用 MIT 协议。放入 Claude Code 或 Cursor 后,它相当于给模型加入几百个 token 的指令。项目 README 的说法是:让 AI agent 像房间里最懒的资深开发一样思考——“你从没写过的代码,就是最好的代码”。

其核心是一套“决策阶梯”:模型写代码前先判断功能是否需要存在,代码库是否已有实现,能否用标准库、平台原生特性或已安装依赖解决,最后才考虑新写“能跑通的最小代码”。规则同时列出“never cut”清单:信任边界的输入校验、防止数据丢失的错误处理、安全、无障碍以及用户点名要的内容,不许被砍。非平凡逻辑要保留一个小测试,回复结尾要说明跳过了什么、有什么风险。

官方基准显示:同一 agent 分不带规则、v4.13.0、最新 Ponytail 5 三组,跑 39 个任务,每组 5 次,共 585 个真实 Claude Code 会话。结果是代码量降 53%,成本降 26%,耗时降 41%。6 个安全任务的 30 次运行全部通过,带测试的风险逻辑占比 98%,不带规则只有 68%。这些会话全部运行在 Opus 5.5 上。

低成本对照:三个任务看行为差异

为了验证规则在低价模型上的效果,上述文章作者改用 deepseek-flash 做对照:3 个任务,每个任务同一模型跑两遍,一组不带规则,一组将 ponytail 规则全文放入系统提示;温度 0.7,其他参数一致。每个任务只跑一次,属于冒烟测试。

三个任务分别是加缓存、中文日期解析、外部 CSV 导入 SQLite。

  • 加缓存:不带规则组写出 40 行双检锁实现;带规则组为 41 行,行数未降,但把 8 行辅助函数换成一行 setdefault,并补充 8 线程并发自检,验证上游接口只被调用一次、第二次调用走缓存。回复末尾还列出跳过项:不做缓存淘汰、不做负缓存、不跨进程共享,并提示 requests.Session 的线程安全原本存疑。
  • 中文日期解析:不带规则组写了 46 行,并自行决定如果“本周五”已经过去,则顺延到下一个周五;带规则组压缩到 20 行,按自然周返回周五,同时用注释标记语义可能需要调整,并在结尾说明“要不要顺延你定”。
  • CSV 导入 SQLite:不带规则组耗时 92 秒,思考 token 1.7 万,最终 141 行;带规则组为 49 行,并保留 6 个坏样本的断言自检。两组都包含参数化 SQL、Decimal 拒收 NaN 和负数、表头校验、文件大小限制和事务回滚。差异在于带规则版本去掉了 35 行限流读取类、20 行流类型探测、手工 SAVEPOINT 管理和 500 行分批插入等未被要求的扩展。

实验还出现了一个插曲:CSV 任务的不带规则版本第一次把思考预算撑到顶格,没有输出正文,作者调大输出上限后重跑。因此账单按 7 次调用计算,而不是 6 次。两次实验总成本不到 2 毛钱。

对 rules 写作的启发:不是压缩字数,而是约束边界

这次测试样本有限:3 个任务、每组 1 次、单一模型,不能与官方 585 个会话直接比较,也不能把 deepseek-flash 的结果简单外推到 GPT 系或 Gemini。但它呈现的变化较一致:带规则后,模型会说明跳过了什么,为非平凡逻辑补充测试,在安全校验上不缩水,同时减少未经确认的业务决策。

这对 Copilot、Cursor、Claude Code 等工具的 rules 写作有参考意义。规则不应只写“代码要简洁”,而应明确边界:

  • 先判断是否不写:优先复用已有代码、标准库、平台能力和已安装依赖。
  • 列出不允许删减的底线:输入校验、错误处理、安全、无障碍和用户明确要求。
  • 要求模型交代取舍:说明暂不支持哪些场景、哪些风险仍在。
  • 把有歧义的业务语义交回开发者:可以标注问题,但不要静默替用户选择。
  • 为关键逻辑保留最小测试:用少量断言验证核心行为。

文章作者的使用建议是:新项目、原型期或个人小工具,可以直接启用完整规则;接手旧项目或团队有严格规范时,可用 lite 档,让模型只提示“有更省的写法”,不直接改动;ultra 档会质疑需求本身,不适合常规场景。安装方式为:Claude Code 中执行 /plugin marketplace add DietrichGebert/ponytail 和 /plugin install ponytail@ponytail;其他 agent 可通过 npx skills add DietrichGebert/ponytail@ponytail 添加,删除目录即可移除。

ponytail 的价值不在于复杂算法,而在于它把一个开发习惯转成模型可执行的边界。AI 编码工具的规则文件正在成为新的工程接口:模型能写多少代码只是表层问题,更重要的是它是否知道何时停下,并把最终决定权留给开发者。

原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/3-2kb-de-ponytail-gui-ze-shi-ce-ai-bian-cheng-shao-xie-de

Like (0)
点点的头像点点
Previous 6小时前
Next 2024年11月8日

相关推荐