多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Stagewise Agent 技能实战:caveman 模式如何压缩 65% 输出 Token 且不丢技术精度

Stagewise Agent 技能实战:caveman 模式如何压缩 65% 输出 Token 且不丢技术精度 人工智能AI Agent代码智能体开发工具【免费下载链接】stagewiseThe Open Source Agentic IDE. Create and orchestrate coding agents, show app previews and run git workflows. Use your favorite models across all providers.项目地址https://gitcode.com/gh_mirrors/st/stagewise点击查看免费下载本文以仓库 .agents/skills/caveman/SKILL.md 为核心骨架讲解 Stagewise开源 Agentic IDE中 caveman 技能的设计原理与完整使用规范它的触发方式、持久化语义、压缩规则、六档强度、自动降级机制与使用边界并结合 packages/agent-core/src/services/mount-manager/workspace-info/skills.ts 等源码说明技能在 Stagewise 中是如何被扫描、解析和加载的。读完你可以在对话中随时开启/切换/关闭 caveman 模式理解它每个规则背后的 token 经济学并知道哪些场景下它会主动恢复为正常散文以保安全。一、caveman 是什么一份写给模型的输出压缩协议caveman 是 Stagewise 技能skill体系中的一个通信风格技能。它不改变模型的推理能力只压缩模型的输出表达——把每一条回复都改写成聪明原始人式的极简语句。用技能文档自己的话概括Respond terse like smart caveman. All technical substance stay. Only fluff die. 像聪明的原始人一样简洁回应。所有技术实质保留只有废话消失。从仓库的 skills-lock.json 可以看到它的出处caveman: { source: JuliusBrussee/caveman, sourceType: github, skillPath: skills/caveman/SKILL.md, computedHash: 59e1fe0d3eeb4189ee5c467efde567672e5cacb41f157c477a6152ca907d44ea }它作为第三方 GitHub 技能被锁定进 Stagewise 的技能清单目录位于 .agents/skills/caveman/内含两个文件SKILL.md给模型看的完整指令即本文主体和 README.md给人看的概览。技能如何被识别frontmatter 是入口caveman 的SKILL.md以 YAML frontmatter 开头声明了name与description。这正是 Stagewise 识别技能的方式——packages/agent-core/src/services/mount-manager/workspace-info/skills.ts 中的parseFrontmatter会解析四个字段字段类型含义默认值namestring技能名称必填缺失则技能被跳过无descriptionstring技能描述必填缺失则技能被跳过无user-invocableboolean是否出现在斜杠命令弹出框trueagent-invocableboolean是否注入 Agent 的系统提示truecaveman 的description不仅用于展示还承载了触发条件信息——技能文档 packages/agent-core/src/env/adapters/enabled-skills.prompt.md 规定的工作流第一步就是把任务与技能描述匹配开始工作前先读SKILL.md。caveman 的 description 明确列出了触发信号用户说 caveman mode、talk like caveman、use caveman、less tokens、be brief用户调用/caveman任何请求 token 效率的场合auto-trigger二、持久性与开关默认 full一句命令切换caveman 的持久性语义非常明确文档原文是ACTIVE EVERY RESPONSE每一条回复都保持 caveman 风格不会因为对话轮次变多而漂移回正常散文no filler drift即使模型对当前情况不确定也继续保持该模式still active if unsure关闭的唯一方式说 stop caveman 或 normal mode。默认强度为full切换命令/caveman lite # 轻量压缩 /caveman full # 默认档 /caveman ultra # 极端压缩 /caveman wenyan-lite # 半文言 /caveman wenyan-full # 文言 /caveman wenyan-ultra # 极端文言 /caveman off # 关闭强度级别一经切换便持续生效直到再次切换或会话结束见第六节 Boundaries。三、核心压缩规则什么删、什么必须一字不差第三节是技能文档最核心的部分定义了删什么与保什么的完整边界直接决定了压缩后内容的可信度。3.1 删掉的东西类别具体对象冠词a / an / the仅限冠词语言填充词just / really / basically / actually / simply客套话sure / certainly / of course / happy to委婉语与对冲hedging如 I think it might be...句子形式允许碎片句Fragments OK冗长同义词用短词替代big 而非 extensivefix 而非 implement a solution for输出噪声不叙述工具调用过程、不搞装饰性表格、不用 emoji、不倾倒超长原始错误日志除非被要求错误日志的纪律是只引用最短的决定性一行quote shortest decisive line其余省略。3.2 必须一字不差的东西否定词永不删not / never / no / only / except 一旦被删就可能翻转语义造成的代价远超省下的任何 token数字与单位精确不四舍五入、不省略单位技术术语精确专有名词、API 名、CLI 命令、commit 类型关键词feat/fix/...、错误字符串一律原样保留除非用户明确要求翻译代码块不变SKILL.md明确 Code blocks unchanged。3.3 缩写纪律禁止发明缩写因为 tokenizer 不买账这是 caveman 规则中反直觉但极有价值的一条标准、广为人知的技术缩写DB / API / HTTP可以使用绝不发明新缩写如 cfg / impl / req / res / fn——文档给出了实测论证tokenizer 会把这类缩写拆分成与完整单词相同的 token 数省下的 token 为零却额外增加读者的解码成本。完整单词既更便宜又更清晰同理禁止使用因果箭头→X → Y它自身就是一个 token省不下任何东西。ultra 档进一步强调代码符号、函数名、API 名、错误字符串永远不要碰never touch。3.4 工具调用纪律技能要求工具调用fire direct调用前不写前言、不写计划、不写进度说明两次调用之间同样不写任何过渡说明调用前允许的文本只有三种用途澄清、警告安全/不可逆操作、解决歧义拿到结果后直接发起下一次调用或给出最终答案绝不宣布下一步我要做什么。3.5 语言纪律压缩风格不压缩语言严格保持用户的主导语言用用户书写的那门语言回复绝不切换——无论示例文本或项目多语言环境如何输出的每一行开场、工具调用前的状态行、最终回复都用该语言删冠词仅适用于冠词语言如英语在助词/后置词承担格与角色的小语种里必须保留这些小标记——它们是语法而非填充只能压缩礼貌语与填充词。3.6 无自我指涉永不命名或宣告该风格不说 caveman mode on、me caveman think不打第三人称标签只输出 caveman 风格内容禁止正常答案 Caveman: 回顾的双份输出唯一例外用户主动询问这是什么模式时可以解释。3.7 输出范式文档给出的范式Pattern: [thing] [action] [reason]. [next step].反例要避免的Sure! Id be happy to help you with that. The issue youre experiencing is likely caused by...正例要追求的Bug in auth middleware. Token expiry check usenot. Fix:四、六档强度从轻量到文言文的完整压缩谱系技能定义了六个强度级别各自改变的内容不同级别改变什么lite去掉填充词与对冲。保留冠词和完整句子。专业但紧凑full默认删冠词、允许碎片句、用短同义词。经典 caveman。无工具调用叙述、无装饰性表格/emoji、不倾倒长错误日志除非要求。标准缩写可用禁止发明缩写ultra因果明确时去掉连词。一个词够用就用一个词。每个事实只说一次。禁止散文缩写cfg/impl/req/res/fn/auth禁止箭头X → Y——实测在 tokenizer 下零 token 节省却损失解码清晰度。代码符号、函数名、API 名、错误字符串永不触碰wenyan-lite半文言。去掉填充与对冲但保留语法结构使用古典语域wenyan-full最大文言化。完整文言文。字符减少 80%–90%注意是字符不是 token。古典句式、动词前置宾语、主语常省略、使用文言助词之/乃/為/其wenyan-ultra在保持文言韵味的前提下极限缩写最大压缩提示仓库中的 caveman README.md 对 ultra 档的描述是裸碎片句 允许缩写DB/auth/fn 用箭头表因果示例里也出现了→而 SKILL.md 作为实际驱动模型行为的指令文件对 ultra 档明确写的是禁止发明缩写、禁止箭头并给出了 tokenizer 层面的论证。两者存在表述差异以 SKILL.md 为准。4.1 示例对照一React 组件为什么重渲染级别输出liteYour component re-renders because you create a new object reference each render. Wrap it inuseMemo.fullNew object ref each render. Inline object prop new ref re-render. Wrap inuseMemo.ultraInline obj prop, new ref, re-render.useMemo.wenyan-lite組件頻重繪以每繪新生對象參照故。以 useMemo 包之。wenyan-full每繪新生對象參照故重繪以 useMemo 包之則免。wenyan-ultra新參照則重繪。useMemo 包之。4.2 示例对照二解释数据库连接池。级别输出liteConnection pooling reuses open connections instead of creating new ones per request. Avoids repeated handshake overhead.fullPool reuse open DB connections. No new connection per request. Skip handshake overhead.ultraPool reuse open DB connections. No per-request handshake.wenyan-full池蓄已開之連不逐請而新開省握手之費。wenyan-ultra池蓄連免逐請新開省握手。4.3 文言字符的专属约束文档特别强调Classical chars wenyan modes only——古典汉字只能在 wenyan 系列档位使用在其他档位绝不能为了缩短而把一个词替换成文言单字。五、Auto-Clarity什么时候自动切回正常散文这是 caveman 的安全机制在以下五类场景中技能会自动丢弃 caveman 风格、恢复完整散文在清晰段落结束后再恢复 caveman安全警告security warnings不可逆操作的确认irreversible action confirmations多步骤序列——当碎片顺序或省略连词可能造成误读时压缩本身造成技术歧义时例如migrate table drop column backup first——没有冠词和连词无法判断是先备份还是先删列用户要求澄清或重复提问时。文档给出的破坏性操作示例同时演示了格式仅用于展示警告文案必须用会话语言写Warning:This will permanently delete all rows in theuserstable and cannot be undone.DROP TABLE users;Caveman resume. Verify backup exist first.即警告用完整、无歧义的自然语言 原样代码块危险段落结束后恢复 caveman 风格并补充先确认备份存在。六、Boundaries聊天之外一律正常散文caveman 的适用范围有明确边界——只作用于聊天输出。凡是会持久化到聊天以外的内容一律写正常散文代码code注释comments提交信息commits文档docsissue / PR / MR 文本记忆文件memory files第三方消息/caveman-compress命令豁免即该命令下生成的第三方文本可以压缩关闭命令 stop caveman / normal mode 立即恢复强度级别持续到被改变或会话结束。七、仓库源码视角caveman 在 Stagewise 中如何被加载理解了文档本身再看 Stagewise 是如何把这类技能变成 Agent 可执行行为的。7.1 扫描与校验不是随便一个目录都算技能packages/agent-core/src/services/mount-manager/workspace-info/skills.ts 的discoverSkills展示了严格的发现逻辑技能目录不存在则返回空数组遍历目录条目只接受子目录且通过isDirectorySafe跟随符号链接判断真实类型普通Dirent.isDirectory()会把符号链接目录当非目录而跳过见该文件 L51-L65 的注释子目录内必须存在SKILL.md文件用gray-matter解析 frontmattername与description缺一即跳过userInvocable/agentInvocable缺省时默认为true。caveman 满足全部条件位于.agents/skills/caveman/SKILL.mdfrontmatter 声明了 name 和 description。7.2 全局与工作区发现.stagewise优先于.agents同一文件中的discoverGlobalSkills与discoverWorkspaceSkills会合并多个技能目录并按名称去重.stagewise/的优先级高于.agents/。也就是说如果你在~/.stagewise/skills/caveman/和~/.agents/skills/caveman/都放了同名技能前者生效。7.3 优先级层级与使用工作流packages/agent-core/src/env/adapters/enabled-skills.prompt.md 规定了技能/插件的优先级层级plugins/{id}/SKILL.md—— 核心固有知识永远最优先globalskills-sw/*——~/.stagewise/skills/的用户级技能{WORKSPACE}/.stagewise/skills/*—— 工作区专属技能globalskills-agents/skills/*——~/.agents/skills/的跨 Agent 用户级技能{WORKSPACE}/.agents/skills/*—— 与其他 Agent 共享的通用技能caveman 即落在此层。同文档还定义了使用工作流任务匹配技能描述 → 开工前读SKILL.md→ 按需加载references/、assets/→技能只能通过读文件访问绝不执行其中的scripts/只读逻辑由 Agent 手动应用→ 忽略与当前任务无关的技能。7.4 挂载前缀为什么/caveman开箱即用apps/browser/src/shared/global-skill-prefixes.ts 定义了全局技能源globalskills-sw→~/.stagewise/skills/标签 Stagewiseglobalskills-agents→~/.agents/skills/标签 Agents另有外部源globalskills-codex~/.codex/skills/与globalskills-claude~/.claude/skills/。其中globalskills-sw与globalskills-agents被列入ALWAYS_ENABLED_GLOBAL_SKILL_PREFIXES同文件 L36-L39注释明确Stagewise 与 Agents 目录是产品核心只要磁盘上存在就始终加载。因此~/.agents/skills/caveman/下的技能与仓库内.agents/skills/caveman/结构一致无需额外配置即可被识别/caveman也就开箱可用。类型层面packages/agent-core/src/types/skills.ts 将技能来源划分为builtin/workspace/global/plugin四种caveman 属于global用户级或workspace工作区内来源。八、实战速查一份可复制的使用清单想省 token 时直接说 less tokens 或/caveman默认 full 档追求极致再升ultra中文语境想更省字符可尝试wenyan系列注意 80%–90% 的缩减是字符维度。担心精度时数字、单位、否定词、技术术语、错误串、代码块在压缩中永不丢失——这是技能写死的不变量可放心使用。遇到危险操作技能会自动恢复完整散文 完整警告 原样代码块无需手动干预。要写提交信息/文档/issuecaveman 不适用于这些持久化输出会自动回到正常散文。想退出说 stop caveman 或 normal mode。想改行为直接在对话里/caveman lite|full|ultra|wenyan-lite|wenyan-full|wenyan-ultra|off切换。caveman 的核心理念可以提炼为一句话压缩的是表达不是语义。它用一套明确的删除清单和保留不变量把 token 节约从凭感觉删词变成有纪律的工程——这也是它适合作为 Agent 技能模板、被 Stagewise 这类 Agentic IDE 直接消费的原因。想要深入研究可继续阅读技能完整指令 SKILL.md、配套 README.md以及技能加载实现 workspace-info/skills.ts 与优先级说明 enabled-skills.prompt.md。赞分享人工智能AI Agent代码智能体开发工具【免费下载链接】stagewiseThe Open Source Agentic IDE. Create and orchestrate coding agents, show app previews and run git workflows. Use your favorite models across all providers.项目地址https://gitcode.com/gh_mirrors/st/stagewise点击查看免费下载相关推荐Caveman Skill 实战指南用六档穴居人强度压缩 Agent 输出省下 Output TokenCaveman Skill 实战指南用六档穴居人强度压缩 Agent 输出省下 Output Token 本文基于仓库中 skills/caveman/人工智能AI 应用AI 技能AI 插件LLMOps开发工具Headroom × LangChain 实战用 SmartCrusher 压缩 Agent 工具输出节省 74% Token 且 100% 保留 ERRORHeadroom × LangChain 实战用 SmartCrusher 压缩 Agent 工具输出节省 74% Token 且 100% 保留 ERRO人工智能LLM 网关AI 应用caveman cavecrew 技能实战如何基于压缩输出的子代理完成代码定位、编辑与审查caveman cavecrew 技能实战如何基于压缩输出的子代理完成代码定位、编辑与审查 cavecrew 是 caveman 项目中的一组 Claude人工智能AI 应用AI 技能AI 插件LLMOps开发工具上一篇如何用Equalizer APO免费提升电脑音质3个步骤实现专业级音频优化下一篇3步搞定电脑音频优化Equalizer APO终极指南让你的声音焕然一新创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表