news 2026/9/13 14:02:02

如何启用 9Router 的 Ponytail 模式(Lite/Full/Ultra)减少输出 token?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何启用 9Router 的 Ponytail 模式(Lite/Full/Ultra)减少输出 token?

如何启用 9Router 的 Ponytail 模式(Lite/Full/Ultra)减少输出 token?

【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40+ providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router

如果你在通过 9Router 让 Claude Code、Codex、Cursor 等客户端写代码时,发现模型总产出冗长代码、多余的抽象和"以防万一"的脚手架,可以用 9Router 内置的 Ponytail 功能:它在每次 chat 请求转发给 provider 之前,向请求体的 system message 注入一段 "lazy senior dev"(懒高级开发)提示词,把模型逼向最小化、YAGNI-first 的写法,从而减少输出 token。本文基于项目 README.md 与相关源码,说明如何启用 Ponytail、在 Lite/Full/Ultra 三个档位之间选择,以及如何确认注入确实生效。

先说两个默认值(见 settingsRepo.js):

  • ponytailEnabled默认false,即 Ponytail 默认关闭,需要你手动打开;
  • ponytailLevel默认"full",如果只打开开关不选档位,实际按 Full 档执行。

Ponytail 做了什么

注入的完整提示词在 ponytailPrompt.js 中,核心内容:

  • 人设:You are a lazy senior developer —— "懒"指高效而非草率,"最好的代码是不用写的代码";
  • YAGNI 阶梯:写代码前停在第一个成立的台阶——1) 这东西是否必须存在;2) 标准库能否解决;3) 平台原生能力能否覆盖;4) 已装依赖能否解决(不为几行代码新增依赖);5) 能否一行了事;6) 最后才写最少可运行的代码;
  • 规则:不写未要求的抽象(单实现的 interface、单产品的 factory、永不变值的配置一律不写)、删除优先于新增、最少的文件、最短的可工作 diff;
  • 输出格式:先给代码,随后最多三行说明"跳过了什么、什么时候补",固定模式为[code] → skipped: [X], add when [Y]
  • 底线:信任边界的输入校验、防数据丢失的错误处理、安全、无障碍、以及你明确要求的任何内容,绝不为简化而砍掉;非平凡逻辑会留下一个可运行的自检。

注入时机在 chatCore.js:格式翻译完成后、dispatch 到 provider executor 之前执行,且受总开关约束(见下文"单请求绕过")。

选择档位:Lite / Full / Ultra

三个档位对应同一套阶梯与规则,强度不同(README 与 dashboard 前端常量描述一致):

档位级别值行为
Litelite按要求实现,但额外用一行指出"更懒的替代方案",由你来决定是否采纳
Fullfull(默认)强制执行 YAGNI 阶梯:stdlib → 原生能力 → 现有依赖 → 一行代码 → 最少代码;最短 diff、最短解释
UltraultraYAGNI 极端派:删除优先于新增,直接给出一行解,并在同一回复里质疑需求中其余部分的必要性

档位值是小写字符串lite/full/ultra,UI 按钮和 API 字段都用这套值。

通过 Dashboard 启用(主路径)

  1. 打开 9Router Dashboard 的 Token Saver 页面(路由/dashboard/token-saver,README 中写作 Dashboard → Endpoint → Ponytail)。该页同时管理 RTK、Headroom、Caveman 等 token 节省项,Ponytail 是其中的独立一行;
  2. 找到Lazy senior dev (Ponytail)这一行,把右侧 Toggle 打开;
  3. 打开后,Toggle 左侧会出现Lite / Full / Ultra三个按钮,点击其中一个选择档位;
  4. 每个操作都会立即通过PATCH /api/settings持久化,刷新页面后仍保持。

替代路径:直接调用 settings API

如果你习惯用命令行管理(或 dashboard 不便访问),读写的是同一组字段:

# 查看当前设置(返回 JSON,检查 ponytailEnabled / ponytailLevel 字段) curl http://<9Router 服务地址>/api/settings # 启用 Ponytail 并设为 Lite 档;<9Router 服务地址> 替换为你实际访问 dashboard 的主机与端口 curl -X PATCH http://<9Router 服务地址>/api/settings \ -H "Content-Type: application/json" \ -d '{"ponytailEnabled": true, "ponytailLevel": "lite"}'

关闭时把ponytailEnabled置为false即可,档位值可以保留。

验证是否生效

  1. 设置持久化GET /api/settings的返回中应为ponytailEnabled: trueponytailLevel为你所选的档位;
  2. 响应形态:向任意走 9Router 的模型发一个编码请求。开启后回复会遵循 Ponytail 的输出格式——先给代码,随后至多三行说明,出现→ skipped: [X], add when [Y]这样的收尾,且不再附带设计说明式的长文;
  3. 运行日志:chatCore.js 对每个请求维护一条 token-saver 标记日志行,Ponytail 生效时会追加PONYTAIL:<level>(如PONYTAIL:lite),可在 9Router 的调试/请求日志中搜索该标记确认。

单请求绕过与组合使用

  • 单请求绕过:请求头加X-9Router-Token-Saver: off,该次 chat 请求会绕过所有 token 节省项(包括 Ponytail、Caveman、RTK、Headroom)。适合临时需要模型"正常发挥"的场景;
  • 组合:Ponytail 与 Caveman(输出简练化)、RTK(输入压缩)互不冲突,可叠加使用——Ponytail 约束"写什么代码",Caveman 约束"话怎么说",RTK 压缩"输入里的工具输出";
  • 边界:Ponytail 只改变模型的写作风格,文档未给出固定的 token 节省百分比,README 只说明收益是 "Fewer output tokens, less refactoring"。信任边界的输入校验、安全、防数据丢失的错误处理等内容按提示词约定不会被简化掉。

如果同一请求里你既想要 Ponytail 的极简代码、又想要 Caveman 的电报式回复,在同一个 Token Saver 页面同时打开两者开关即可,验证方式相同。

【免费下载链接】9routerUnlimited FREE AI coding. Connect Claude Code, Codex, Cursor, Cline, Copilot, Antigravity to FREE Claude/GPT/Gemini via 40+ providers. Auto-fallback, RTK -40% tokens, never hit limits.项目地址: https://gitcode.com/GitHub_Trending/9r/9router

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 13:59:34

动态线性化无模型自适应控制方法及Matlab实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 13:58:19

Research Question

Research Question 【免费下载链接】Agent-Skills-for-Context-Engineering A comprehensive collection of Agent Skills for context engineering, multi-agent architectures, and production agent systems. Use when building, optimizing, or debugging agent systems th…

作者头像 李华
网站建设 2026/9/13 13:55:12

ROS Service服务通信机制全解析:从一问一答到工程落地

ROS 通信机制 —— Service&#xff08;服务&#xff09;从“一问一答”到工程落地做ROS开发的人应该都有这种经历&#xff1a;刚开始接触话题&#xff08;Topic&#xff09;时觉得一切都能用Topic搞定&#xff0c;后来在项目里遇到“我需要一个结果”的场景时&#xff0c;才发…

作者头像 李华
网站建设 2026/9/13 13:53:20

爱因斯坦棋中的期望搜索算法原理与实现

简介&#xff1a;本资源是一款面向计算机博弈大赛参赛者、AI算法学习者及棋类编程爱好者的爱因斯坦棋智能对战软件&#xff0c;聚焦期望搜索算法在不确定博弈环境中的实践应用。项目基于Python实现&#xff0c;集成Pygame图形界面&#xff0c;提供智能策略分析、实时步法建议与…

作者头像 李华