尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ponytail 基准实验中的 caveman 技能文件:一份把 Agent 通信 Token 压缩约 75% 的提示词工程设计解析

ponytail 基准实验中的 caveman 技能文件:一份把 Agent 通信 Token 压缩约 75% 的提示词工程设计解析 ponytail 基准实验中的 caveman 技能文件一份把 Agent 通信 Token 压缩约 75% 的提示词工程设计解析【免费下载链接】ponytailMakes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.项目地址: https://gitcode.com/GitHub_Trending/po/ponytail本文围绕 benchmarks/arms/caveman-SKILL.md 展开——这是一个被领养vendored进 ponytail 仓库的第三方提示词技能文件它让 AI Agent 以原始人式极简口吻回复在保留完整技术信息量的同时把 token 消耗压低。读完本文你既能完整掌握这份技能文件的规则结构、六级强度体系与自动回退清晰模式安全阀的设计也能看懂 ponytail 仓库如何把它作为基准实验对照组之一caveman arm驱动以及实测数据揭示了压缩散文与压缩代码两条优化路线各自的边界。1. caveman 是什么一份可复用的压缩通信提示词caveman-SKILL.md 是 JuliusBrussee/caveman 项目MIT 许可的 SKILL.md 文件被原样存放于本仓库benchmarks/arms/目录下作为 ponytail 基准实验中与 baseline、ponytail 并列的第三组arm提示词来源见 benchmarks/promptfooconfig.yaml 第 8 行注释。它的文件头是标准的技能元数据YAML front matter定义了技能的身份、定位与触发方式name: caveman description: Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says caveman mode, talk like caveman, use caveman, less tokens, be brief, or invokes /caveman. Also auto-triggers when token efficiency is requested.注意两点Cuts token usage ~75%是技能自身描述中的预期目标对散文类回答而言而非基准实验的通用结论——实测数字见第 5 节触发方式覆盖自然语言less tokens、be brief、斜杠命令/caveman和意图触发用户要求 token 效率时这说明一份技能文件的 description 本身就是路由提示词Agent 依据它决定何时加载该技能。一句话概括其定位caveman 压缩的是说不是写。ponytail 的 skills/ponytail/SKILL.md 在 Boundaries 一节明确两者分工Ponytail governs what you build, not how you talk (pair with Caveman for terse prose)仓库根 README 的 FAQ 也总结为 Caveman shrinks what the agent says; ponytail shrinks what it builds。2. 核心规则一Persistence——跨轮次不衰减且有明确的关闭开关文件正文第一条指令是Respond terse like smart caveman. All technical substance stay. Only fluff die.紧接着是 Persistence持久化小节ACTIVE EVERY RESPONSE. No revert after many turns. No filler drift. Still active if unsure. Off only: stop caveman / normal mode.Default:full. Switch:/caveman lite|full|ultra.这里的设计值得提示词工程师注意对抗风格漂移。多轮对话中系统提示词的约束力会随轮次稀释Agent 容易漂回正常措辞。No revert after many turns. No filler drift 直接点名这个失败模式Still active if unsure 则把默认行为从不确定时回退反转为不确定时保持——这是廉价的健壮性设计。显式且唯一的退出路径。只有 stop caveman 或 normal mode 能关闭模式避免模糊措辞导致的状态混乱。默认值显式声明默认full强度切换命令为/caveman lite|full|ultra。3. 核心规则二Rules——精确的删什么 / 留什么清单压缩类提示词最常见的失败是过度压缩把技术细节一起压没了。caveman 的做法是把规则写成白名单与黑名单Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not implement a solution for). Technical terms exact. Code blocks unchanged. Errors quoted exact.逐条拆解删除项示例保留项原因冠词a / an / the技术术语原样术语是接口动它会损失精确性填充词just / really / basically / actually / simply代码块逐字节不变代码不是通信对象客套话sure / certainly / of course / happy to报错信息原样引用报错是用户排查的锚点含糊措辞hedgingmight / probably 类短句替代长表达big 替代 extensivefix 替代 implement a solution for并给出统一的句法模板Pattern:[thing] [action] [reason]. [next step].用一个具体对照示范删与留的分界Not: Sure! Id be happy to help you with that. The issue youre experiencing is likely caused by... Yes: Bug in auth middleware. Token expiry check usenot. Fix:注意 Yes 版本里与的区别被原样保留——压缩散文绝不压缩语义。这正是第 6 节基准实验里caveman 在代码行数上介于 baseline 与 ponytail 之间的根源它的 Rules 明确写了 Code blocks unchanged。4. 核心规则三Intensity——六级压缩强度体系文件用一张表定义了六档强度覆盖现代英语压缩与文言文压缩两条路线LevelWhat changeliteNo filler/hedging. Keep articles full sentences. Professional but tightfullDrop articles, fragments OK, short synonyms. Classic cavemanultraAbbreviate (DB/auth/config/req/res/fn/impl), strip conjunctions, arrows for causality (X → Y), one word when one word enoughwenyan-liteSemi-classical. Drop filler/hedging but keep grammar structure, classical registerwenyan-fullMaximum classical terseness. Fully 文言文. 80-90% character reduction. Classical sentence patterns, verbs precede objects, subjects often omitted, classical particles (之/乃/為/其)wenyan-ultraExtreme abbreviation while keeping classical Chinese feel. Maximum compression, ultra terse设计上有两个值得借鉴的点强度是正交参数。同一套删什么规则通过强度档位调节删多狠而默认档位full写在 Persistence 小节里使切换命令/caveman lite|full|ultra有明确语义为中文场景专门设计了 wenyan 系列。英文的 ultra 靠缩写DB/auth/fn压缩但中文再删虚词空间有限于是改用文言文这一天然高信息密度的语体并给出可操作的语言学约束动词前置于宾语、省略主语、使用之/乃/為/其等文言虚词甚至量化了预期压缩率80-90% 字符缩减。文件随后用两道真实技术题演示六档的梯度输出。例 1Why React component re-render?为什么 React 组件会重新渲染lite: Your component re-renders because you create a new object reference each render. Wrap it inuseMemo.full: New object ref each render. Inline object prop new ref re-render. Wrap inuseMemo.ultra: Inline obj prop → new ref → re-render.useMemo.wenyan-lite: 組件頻重繪以每繪新生對象參照故。以 useMemo 包之。wenyan-full: 物出新參照致重繪。useMemo .Wrap之。wenyan-ultra: 新參照→重繪。useMemo Wrap。例 2Explain database connection pooling.解释数据库连接池lite: Connection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead.full: Pool reuse open DB connections. No new connection per request. Skip handshake overhead.ultra: Pool reuse DB conn. Skip handshake → fast under load.wenyan-full: 池reuse open connection。不每req新開。skip handshake overhead。wenyan-ultra: 池reuse conn。skip handshake → fast。注意两个例子里技术实体useMemo、DB connection pooling 的机制在所有档位都完整存活变的只是包装。强度梯度不改变技术内容只改变信息密度——这是该技能区别于随意让它少说点的可靠之处。5. 核心规则四Auto-Clarity——在关键时刻自动回退到清晰模式极简口吻最大的风险是在安全警告、不可逆操作确认这类场景中碎片化表达可能引发误读。caveman 用 Auto-Clarity 小节为这个风险装了保险丝Drop caveman for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume caveman after clear part done.四类强制回退场景安全警告不可逆操作的确认步骤顺序被碎片化后可能误读的多步流程用户要求澄清或重复提问用户信号优先于风格指令。文件给了一个破坏性操作的示范输出Warning:This will permanently delete all rows in theuserstable and cannot be undone.DROP TABLE users;Caveman resume. Verify backup exist first.结构是清晰部分 → 明确宣告恢复模式Caveman resume→ 回到极简。可以推断这条规则在 ponytail 的基准实验中被刻意保留benchmarks/的 agentic 基准把安全性 100%列为独立考核维度见 benchmarks/results/2026-06-18-agentic.md一个会在危险操作上含糊其辞的提示词无法通过。最后 Boundaries 小节收束全文Code/commits/PRs: write normal. stop caveman or normal mode: revert. Level persist until changed or session end.代码、commit message、PR 描述一律正常书写——再次确认它只治理对话。6. 在 ponytail 仓库中的落地作为基准实验的 caveman arm理解完技能文件本身再看 ponytail 仓库如何用它说话。6.1 装载机制整份文件即系统提示词benchmarks/arms/caveman.js共 8 行是 promptfoo 的自定义 prompt 工厂// Caveman arm: caveman SKILL.md (full) as the system prompt. const fs require(fs); const path require(path); const system fs.readFileSync(path.join(__dirname, caveman-SKILL.md), utf8); module.exports ({ vars }) [ { role: system, content: system }, { role: user, content: vars.task }, ];要点它读取整个 caveman-SKILL.md 作为 system 消息含 front matteruser 消息只放任务文本。对照组同样简单直接——benchmarks/arms/baseline.js 是无技能、只有任务benchmarks/arms/ponytail.js 则是把本仓库自己的 skills/ponytail/SKILL.md 作为 system 提示词。三组臂在 benchmarks/promptfooconfig.yaml 中注册为三个 promptfile://arms/baseline.js、file://arms/caveman.js、file://arms/ponytail.js配合 3 个 Anthropic 模型Haiku 4.5 / Sonnet 4.6 / Opus 4.8与 5 个日常编码任务邮箱校验、JS debounce、CSV 求和、React 倒计时、FastAPI 限流每格 10 次重复、取中位数。度量侧由两个 JS 断言构成见 benchmarks/README.md 的 Metrics 表benchmarks/loc.js确定性代码行数指标统计围栏代码块中非空、非注释的行pass: true恒真只做测量不做门控benchmarks/correctness.js正确性门控对 email/debounce/CSV 任务实际执行生成的代码对 React/FastAPI 做结构性检查。6.2 实测定位caveman 赢散文、输代码恰好落在中间benchmarks/README.md 公布的单轮single-shot中位数结果10 次运行成本经 30 次复核代码行数5 任务合计armHaikuSonnetOpusbaseline (no skill)518693256caveman11612067ponytail394451成本USD5 任务armHaikuSonnetOpusbaseline (no skill)0.0300.1370.137caveman0.0140.0460.072ponytail0.0110.0350.079时延秒armHaikuSonnetOpusbaseline (no skill)37.7124.158.7caveman14.934.723.1ponytail9.920.118.0数据形状与技能设计完全吻合baseline 的 518~693 行里混着大量散文与多个备选方案caveman 靠 Code blocks unchanged prose 全删 把代码行数压到 baseline 的约 1/4~1/5而 ponytail 从不写代码层面再压 2~3 倍。benchmarks/README.md 的 Notes 对这一分工的表述最精确Caveman is a prose-compression skill (it leaves code normal), so it lands between baseline and ponytail on code size and wins mainly on prose tokens.6.3 逐任务对照caveman 在 agentic 会话中的另一面benchmarks/results/2026-06-12-caveman-vs-ponytail.md 记录了每个任务一个全新 subagent 的 5 任务 agentic 跑分agent 总 token含 thinking汇总BaselineCavemanPonytail v1总 token161,955138,410143,588总墙钟时间479s136s228s交付代码行数~293~117~53两个细节值得注意caveman 的 136s 比 baseline 的 479s 快 3.5 倍且总 token 比 ponytail v1 少约 4%——在总对话开销维度纯压缩通信技能甚至短暂胜过最小代码技能因为 ponytail v1 当时写了大量skipped on purpose的解释散文但 ponytail 的后续版本v2 输出上限、v3 压缩 SKILL.md 本身追平并反超最终 verdict 中 ponytail 在代码量、散文量、总 token 与时间上全部领先。这说明单靠caveman 式省话是必要不充分的代码侧的决策纪律ladder/YAGNI才是更大的杠杆。更严格的同模型三臂对照见 benchmarks/results/2026-06-12-v4-hardening-vs-caveman.md6 个生产规格任务 扩展阶段 对抗性安全探针全部 arm 同模型、每格新 subagent全基准6 构建 C/D 扩展Control2CavemanPonytail v4Build LOC3,6291,440490构建后扩展改动行数C, D378, 737156, 25741, 55Agent 总 token430,697290,546229,370安全探针8/8 6/68/8 6/68/8 6/6该文结论一针见血Caveman is a prose-compression skill that explicitly writes code normal — it loses on code size by design. 而 ponytail 加测试反射等加固规则后 token 仍比 caveman 少 21%229k vs 290k且安全探针零回归——即 Auto-Clarity 类边界规则在两个技能里都经受住了对抗测试。一个诚实的边界说明benchmarks/README.md Notes以上成本数字反映单轮调用不是真实多轮 agent 会话的会话成本在多轮会话中规则文件会被反复重注入、决策阶梯每轮都要过一遍单会话成本可能高于也可能低于这些数字。7. 从这份技能文件能提炼的提示词工程要点把 caveman-SKILL.md 从一份有趣的提示词抽离出来看它对任何想给 Agent 做输出压缩 / 风格约束的开发者都有可复用的结构front matter 即路由name 多触发语 description 默认强度声明让何时加载、默认多强无歧义持久化条款要双向写既写每轮都生效、不确定时保持又写唯一关闭词防止多轮漂移与状态失控压缩规则写成删/留双清单并显式声明保护区技术术语、代码块、报错原文把技术实质全部保留作为第一约束强度做成档位而非布尔lite/full/ultra 面向目标语种的专用档wenyan 系列档位间用同一组题目做梯度示例让 Agent 有可对齐的输出锚点为高风险场景保留自动回退Auto-Clarity并用清晰段 → 宣告恢复 → 回到极简的显式三段式示范让安全表达不被风格淹没明确治理边界code/commits/PRs 正常书写防止风格指令越界污染交付物。这份文件在 ponytail 仓库中的存在本身也是一次示范一个提示词技能不需要任何运行时支持fs.readFileSync读全文塞进 system 角色即可被完整复用为实验变量——benchmarks/arms/caveman.js 八行代码即完成技能 → 可控实验臂的转换配合 benchmarks/loc.js、benchmarks/correctness.js 两个度量断言构成了一套可复现的提示词 A/B 实验装置复现步骤见 benchmarks/README.md 的 Reproduce 一节要求 Node.js ≥ 22.22.0 与 Anthropic API key。【免费下载链接】ponytailMakes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.项目地址: https://gitcode.com/GitHub_Trending/po/ponytail创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表