资讯动态

caveman caveman-learn skill:把 `caveman learn` 的 token 审计报告变成逐条确认的降成本编辑工作流

发布时间:2026/9/7 9:25:09 来源:尧图企业网站定制
caveman caveman-learn skill把caveman learn的 token 审计报告变成逐条确认的降成本编辑工作流【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman本文围绕 skills/caveman-learn/SKILL.md 展开它是 caveman 项目中 测量—编辑 闭环的编辑半环负责读取caveman learn生成的 token 消耗审计计划按 sink 类别逐条征求用户同意后执行修复并用净 token 为负的门控net-token-negative gate保证每一处修改都真实降低了 tokens/turn。读完本文你将掌握 Cave Score 与 ranked token sinks 的读法、四类 sinkREDUCIBLE / RECURRING_CONTEXT / SKILL_DISTILLATION / LOAD_BEARING各自的同意循环与验证门以及caveman memcavemem卸载上下文的定位符校验、召回成本核算和回滚路径。一、定位caveman learn的测量端与编辑端分工SKILL.md 开宗明义caveman learn 命令负责测量agent 的 token 花在了哪里而 caveman-learn 这个 skill 是带同意门consent-gated的编辑半环把测量结果转化为真实文件修改——且用户要逐条批准。它同时立下两条纪律绝不宣称自己没测量过的节省you never claim a saving you have not measured也绝不把 agent 变笨you never make the agent dumber。这个分工在 skills/caveman-learn/CLAUDE.md 中被进一步明确为绑定边界binding boundaryskill 借助 agent 自身的文件工具是唯一会修改用户配置的东西caveman learn apply保持只读——它只是实体化候选方案materializes candidates并不真正动文件caveman mem *系列是纯粹的机械存储操作。从 skills/caveman-learn/README.md 看安装方式也体现了它是给 agent 加载的行为规范而非独立程序caveman skills install caveman-learn # 装入当前仓库的 .claude/skills caveman skills install caveman-learn --user # 装入所有仓库~/.claude/skills caveman skills install caveman-learn --agent codexCLAUDE.md 还说明了分发的工程细节CLIpackages/cli/src/index.ts内嵌了一份字节级相同的副本CAVEMAN_LEARN_SKILL_MD因为发布的 CLI 不带旁路资源文件packages/cli/tests/skills.runtime.mjs断言内嵌副本与规范文件一致drift guard因此修改 SKILL.md 必须同步修改该常量。二、读懂新 token sinks先弄清每类钱坑在说什么SKILL.md 的前半部分是一份新 sink 词典教 agent 如何正确理解报告中会出现的、容易误读的新指标。这些语义细节是正确解读报告的前提Sink含义解读纪律cache_efficiency一百万输入 token 在缓存复用后的实际成本它是一个费率rate不是流量volume是其他 sink 的计价基准绝不能把它加进任何总量tool_output_portfolio主导上下文的工具调用形态按权重排名按排名查看即可session_outcomes扫描窗口内没有 commit的会话占 token 的比例相关性数据。只能作为观察呈现并朗读其 caveat——没有 commit 的会话不等于浪费的会话subagent_spend上下文在子 agent 中消耗的比例仅可见性visibility only。不得把它转化为少开子 agent的建议procedure_repeat:*蒸馏候选distillation candidate走 SKILL_DISTILLATION 流程见第五节其中关于行为类 sink 的表述约束值得注意它们是观察observations数字按事实呈现建议用弱化语气present their numbers as fact and their suggestion softly绝不能把行为发现变成命令式措辞。这一点不是风格建议而是被测试固化的skills/caveman-learn/tests/skill-file.test.mjs 有一个测试遍历禁用词表you dont need、you over-use、you overuse 以及$符号断言 SKILL.md 中不存在任何命令式指责或美元符号。三、第一步读取计划read the plan编辑循环的起点固定为一条命令caveman learn report --json要求解析caveman.learn.v1JSON展示三样东西Cave Score 及其四个分量、排名后的 token sinks以及每个 sink 的类别class与依据basis。3.1spend块的呈现规则如果计划里携带spend块必须把它放在最前面讲扫描窗口花了多少以及缓存复用后的有效输入费率effective_input_multiplier。原文档给出了五条讲钱时不可违背的规则Spend 是窗口花掉的成本绝不是某个修复能收回的钱必须说明它覆盖的窗口永远不要把窗口金额乘算成月、年或 run rate若unpriced非空要说明总额只是下限floor并点名被排除在外的模型必须加上订阅说明在 Max/Plus/Advanced 计划上边际成本为零这个数字是 token 的 API 等价价值不是花掉的钱任何一项都不得称为 verified已验证。3.2 提案前的模拟caveman learn simulate在提出修复提案之前可以运行caveman learn simulate sink_id原文档对其定位非常克制它只能作为扫描历史之上的规模感scale over scanned history展示——对扫描历史求和从不向前投影。tests/skill-file.test.mjs 同样用sums over scanned history and never projects forward的正则固化了这一承诺。四、REDUCIBLE对可缩减内容执行带门控的裁剪适用于重载的 CLAUDE.md、从未被调用的 skill 等减掉就赚的场景。原文档给出的完整操作流程是# 1. 实体化候选不编辑任何东西 caveman learn apply sink_id --dry-run随后依次提出具体 diff并展示修改前后的 tokens/turnbefore - after询问用户 yes 或 no。用户确认后由 agent 用自己的文件工具执行编辑重跑caveman learn report --json或对触碰的文件重新计数以确认缩减。这就是净 token 为负的门net-token-negative gate如果 after 没有低于 before回滚并报告。任何不降低 tokens/turn 的编辑都不得保留。README 还补充了这条路径的闭环一次编辑在应用 复测门通过之后skill 会调用caveman learn applied sink_id把 sink、修复类别、应用时间与 before 值记入 caveman 自己的结果存储outcome store后续扫描会对比修复后会话报告improved、unchanged、regressed、insufficient_data四种纵向判决。这份账本本身不编辑用户或仓库配置。五、RECURRING_CONTEXT 与cavemem_offload把反复重建的上下文卸载到 cavemem针对每个会话都重新建立一遍的重块fix kind 为cavemem_offload目标是把它移入 cavemem使其按需紧凑召回而不是每轮重贴。这是原文档中最长、约束最密的一段核心是定位符locator机制候选只携带定位符绝不携带块本体。完整流程每条都有对应命令1. 生成候选并只取定位符caveman learn apply sink_id命令把候选 JSON 写到~/.caveman/candidates/。agent 只取三样东西定位符locator、数字、建议的指针文本proposed pointer text。原文档明确警告Do not trust any body from the candidate; there is none.2. 本地自行重读真实块并校验哈希打开定位符中的rel_path跳到jsonl_line用同样的方式对该 turn 重新分段按空行切分、保持顺序取block_index然后验证原始块的 sha256 等于定位符中的content_sha256。若不匹配说明文件自扫描以来已变化——放弃这一项abort this item。3. 存入 cavememcaveman mem remember -- the real block注意--的作用它终止选项解析因此以---规则开头的块会被逐字存储而不是被当作 flag 解析。记下返回的 id。从源码侧印证cavemem CLI 的子命令面与 skill 使用的完全对应。mem/cmd/cavemem/main.go 中的用法字符串为cavemem [mcp] | remember text|--stdin | recall query [limit] [token_budget] | supersede id text | history id | forget id | recover handle其中recover handle正是 skill 里指针文本所承诺的字节级精确原文恢复路径MCP 侧对应工具为cavemem_remember/cavemem_recall/cavemem_forget/cavemem_recover等见同文件的工具定义与描述Remember 幂等相同文本记两次只存一份、recall 命中附带 recovery_handle。4. 诚实测量门before 该块的 tokens/turn它每轮都加载after 指针的 tokens/turn 召回成本召回成本必须实测运行caveman mem recall topic读命中结果上的tokens_added若 after 不低于 before运行caveman mem forget id源文件保持原样停止。5. 修剪源文件、写入指针把块从它的 CLAUDE.md / AGENTS.md 章节中移除若是用户手动粘贴的内容则告诉用户别再粘贴什么在原位置写入候选建议的指针文本。指针必须命名召回路径caveman mem recall topic取紧凑形式caveman mem recover handle取字节级精确原文。6. 绝不让 agent 变笨的守护the dumber-guard收尾前必须确认两件事都成立caveman mem recall topic返回命中且指针已就位。若召回无果或指针未写回滚——caveman mem forget id并恢复源文件。原文档把这条守护抬到了原则高度移除上下文却没有可用的召回路径是这条守护要阻断的那一种失败。随后重新测量报告确认的缩减量与召回路径。六、SKILL_DISTILLATION为procedure_repeat写 skill但必须用 holdout 实验结算procedure_repeatsink 指向用户在多个会话中重复的同一串工具步骤。把它写成 skill 可能阻止 agent 反复重新推导它——但 skill 会每个会话都加载进前缀而只有命中该模式的会话才产生回报。原文档指出这与报告所惩罚的dead_loadsink 同构因此用不同的方式结算不允许走捷径绝不把它过净 token 为负门。那个门只重数文件看不见成本与收益落在不同地方这件事先展示候选那些步骤、它在多少个会话中复现、这些 span 消耗了多少 token并直言回报未获证明payback is unproven若用户想要写 skill 的同口气就启动 holdout 实验caveman learn experiment start label --sink sink_id --fix-kind skill_distillation并向用户说明机制开着它跑一段然后执行caveman learn experiment arm label off在无它的情况下跑一段可比的时长。每个 arm 至少需要 5 个会话在此之前不存在任何判决用caveman learn experiment report label读结果insufficient_data判决意味着继续跑——绝不能包装成小胜regressed判决意味着删掉 skill并且直接说出来实验框架比较的是每会话中位数 token。若它标记 on-arm 每轮工具错误更多必须把这个放在最前面讲一个更便宜但更容易失败的会话不是节省。七、LOAD_BEARING 与 savings 账本证据分级LOAD_BEARING类别只有一条规则永不触碰。它出现在报告中只是为了让分数保持诚实。当需要呈现已实现修复的回报时caveman learn savings账本按如何测量分组。原文档强调分组不是装饰它是论断的强度——证据层级含义deterministic_remeasure被编辑的文件被重新计数。本地最强档controlled_holdout在同一台机器上开着 vs 关着测得counterfactual_replay真实历史在应用变更后重跑interrupted_time_series修复前会话 vs 修复后会话无对照臂三条绑定规则永远不跨档求和永远不呈现单一混合的节省头条——重数过的文件和前后中位数不是同一种证据呈现某行为赢时必须朗读该行的confounders——它们是常设告诫而非小字注释恰恰是为好消息场景而设朗读attribution.provenanceintext表示文件仍带着我们提议的编辑changed_since表示有人在它之上改过delta 的一部分不属于我们——必须说明target_missing表示 delta 根本无法挂到该修复上。changed_since或target_missing的行绝不能作为 caveman 成果呈现。还有一条设计性约束回归regression按设计不携带美元数字。呈现它时带着判决并给出回滚路径不软化也不省略。八、绑定规则Binding rules与测试固化SKILL.md 末尾的绑定规则是整个 skill 的宪法逐条对应测试断言逐编辑同意Consent per edit。不存在隐藏单条 diff 的 apply all编辑应用且复测门通过之后运行caveman learn applied sink_id后续 learn 运行据此报告纵向判决improved / unchanged / regressed / insufficient_dataregressed要如实呈现并给出该编辑的精确回滚路径每个编辑都可逆准确报告改了什么。卸载offload的回滚 caveman mem forget id 恢复被修剪的源inferred only绝不把本地数字称为 verified货币currency只在报告自身携带它的位置spend块、已定价的 savings 行允许出现且必须完整保留该块自身的框定——窗口限定、绝不投影、绝不称 verified分析器caveman learn是只读的。skill 是唯一的写入者而且只在 yes 之后。这些规则不是空话skills/caveman-learn/tests/skill-file.test.mjs 对规范文件本身做了五组断言——frontmatter 合法name: caveman-learn description四条关键措辞net-token-negative gate、never make the agent dumber、consent per edit、reversible、inferred only全部在场cavemem_offload机制三要素content_sha256校验、caveman mem recover恢复路径齐备纵向闭环caveman learn applied sink_id、四种判决名、Present regressed honestly and offer the exact revert path、simulate 的历史求和承诺逐一核对外加禁用命令式措辞与占位符TODO/XXX 等扫描。可以说这份测试就是 skill 的诚实性 lint。九、CLI 侧实现印证从源码结构看caveman learn的本地命令面由 TypeScript CLI 转发给 Go 分析器proxy执行。packages/cli/src/index.ts 中help()对learn子命令有专门的 usage 分发在 learn 命令的 porcelain 实现处同文件约 L13787–L13884 区域可以看到learn scan --write-report与learn report --json经proxyExecLearn代理执行、scan/report走proxyPassthrough的模式印证了 SKILL.md 中caveman learn report --json返回结构化 JSON、apply只产出候选文件这两条陈述。分析器本体的 Go 实现位于 proxy/internal/store/learn.go、learn_digest.go、learn_types.go、learn_simulate.go等对应报告、摘要、类型定义与模拟求和cavemem 存储端则在 mem/BM25 召回、store.go与caveman mem recall命中上读tokens_added的用法相衔接。十、小结caveman-learn skill 的价值不在省了多少而在一套可审计的方法论测量与编辑严格分离——分析器只读skill 是唯一写入者且每写一处都要先拿到 yes每类 sink 有各自的门——REDUCIBLE 过净 token 为负的重数门RECURRING_CONTEXT 过 sha256 定位符校验 实测召回成本 召回可用守护SKILL_DISTILLATION 过 holdout 对照而非文件重数证据分级呈现——savings 按测量方式分四档不跨档求和provenance 与 confounders 必须随结论一起朗读一切可逆——每个编辑都携带精确的回滚路径卸载失败则forget 恢复源。配合 skills/caveman-learn/README.md 的安装命令与 docs/technical/cli-reference.md 中的 CLI 参考开发者可以先跑caveman learn report --json看懂自己的 token 流向再安装本 skill让 agent 在逐条同意下把报告里最贵的 sink 变成可验证的缩减。【免费下载链接】caveman why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman项目地址: https://gitcode.com/GitHub_Trending/caveman1/caveman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价