ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何用 caveman-shrink 压缩大型工具清单并用恢复句柄还原原始文件?

如何用 caveman-shrink 压缩大型工具清单并用恢复句柄还原原始文件? 如何用 caveman-shrink 压缩大型工具清单并用恢复句柄还原原始文件【免费下载链接】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如果你的 MCP 或 OpenAI 风格工具清单tool catalog很长把完整 JSON 塞进上下文会消耗大量 token。caveman-shrink是 caveman 项目中专用于工具目录压缩的命令行工具它删掉注解类元数据examples、title、$comment、$schema等缩短长描述同时把工具名、参数名、类型、enum、required以及default、const、$ref目标逐字节保留。压缩成功后原始字节会先提交到本地恢复存储CCR命令行会输出一个恢复句柄之后你可以用这个句柄在任何进程中还原出与原文完全一致的字节。准备条件无需 Go 工具链也无需安装完整的 Caveman。npm 上的 MIT 启动器会在首次运行时下载匹配的 BSL-1.1 二进制、校验签名过的校验和清单与产物 SHA-256并缓存在~/.caveman/bin参见 shrink/README.mdnpx -y caveman-shrink --help输入要求一个工具清单 JSON 文件形状可以是 MCP 的{tools:[...]}、OpenAI 的function数组、{functions:[...]}或单个工具对象。仓库里就有一个可直接用的样例 shrink/testdata/catalog.json实际使用时换成你自己的tools.json。stdin 输入上限 32 MiB超过会报cave_input_too_large不会被无限制缓冲。先 lint不提交、只看压缩潜力lint只测量每个工具与整体的推断 token 降幅不写恢复存储、不产生句柄适合在正式压缩前评估是否值得做caveman-shrink lint tools.json输出是一张表格每个工具一行BEFORE/AFTER/RATIO最后一行是 TOTAL并标注统计口径basis。注意token 计数来自引擎的离线估算器所有数字都是inferred推断值不是计费口径的实测值。压缩清单并拿到恢复句柄压缩的默认入口是把清单从 stdin 读入、把压缩结果写到 stdout推断的比例报告JSON写到 stderrcat tools.json | caveman-shrink tools.min.json显式写法caveman-shrink shrink与无子命令的默认行为相同。执行后注意 stderr 上的 JSON 报告成功压缩时其中包含非空的recovery_handle字段取自 shrink/shrink.go 的Result结构tokens_before、tokens_after、ratio、basis、content_type、recovery_handle。字段名与结构如下面的文档示例数值仅作示意{tokens_before:1820,tokens_after:1130,ratio:0.379,basis:inferred,content_type:toolschema,recovery_handle:ccr_0123456789abcdef0123456789abcdef}这个句柄是后续还原的唯一凭据请保留 stderr 输出。如果 stderr 报告显示ratio:0且没有recovery_handle说明输入被原样透传了fail-open格式不合法或压缩后不会更小的输入会原样输出不会报错失败。用恢复句柄还原原始文件压缩时原始字节在返回句柄之前就已写入持久恢复存储默认是环境变量CAVEMAN_CCR_DB指定的路径未设置时是~/.caveman/ccr.dbdocs/technical/local-tools.md。因此还原可以在另一个进程、稍后任意时间执行caveman-shrink recover ccr_0123456789abcdef0123456789abcdef tools.original.json句柄格式以ccr_开头主体是 SHA-256 摘要前 16 字节的十六进制编码docs/technical/context-recovery.md。recover把精确的原始字节写到 stdout未知句柄直接报错ccr.ErrNotFound不会猜测返回近似内容。结果验证压缩是否生效看 stderr 报告中ratio是否大于 0、recovery_handle是否非空stdout 里的tools.min.json才是压缩产物。还原是否完整recover输出的是逐字节精确的原始内容文档承诺 exact original bytes可与压缩前的tools.json直接比对。结构面是否保住压缩后的清单暴露与原文完全相同的 name/params/enums/required但描述缩减是模型可见且有损的文档明确说明结构检查不能证明模型会选出同一个工具shrink/AGENTS.md。还原失败时的检查顺序docs/technical/context-recovery.md 给出的恢复失败排查清单确认recover用的本地运行时和存储与当初创建句柄的是同一个即同一个CAVEMAN_CCR_DB/~/.caveman/ccr.db确认数据库文件仍存在且可读确认句柄完整复制没有截断或换行丢失检查压缩当时的存储容量报错——恢复存储默认容量 512 MiB新记录超出容量时会被拒绝且不会驱逐旧句柄此时引擎保留原始输入也就是走透传、不出句柄WebAssembly 运行时用的是内存存储句柄随运行时销毁而消失原生 CLI 不受此影响。限制与注意事项句柄是标识符不是加密或授权机制本地存储不提供静态加密、访问控制或永久归档。不要在 agent 会话进行中删除或替换恢复数据库否则既有句柄将无法解析备份/删除~/.caveman下的数据库时要知道句柄和本地记忆会一起失效docs/technical/local-tools.md 的 Local storage 一节列出了相关路径。所有 token 数字均为inferred还原能力证明的是原始源仍然可用不证明压缩后的上下文质量等同也不把推断降幅变成已验证的省钱数字。【免费下载链接】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),仅供参考
返回列表