十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

caveman cavecrew 实战指南:用三个压缩输出子代理把主上下文撑到更长

caveman cavecrew 实战指南:用三个压缩输出子代理把主上下文撑到更长 caveman cavecrew 实战指南用三个压缩输出子代理把主上下文撑到更长【免费下载链接】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本文基于 caveman 仓库中的决策指南 skills/cavecrew/SKILL.md 撰写讲解如何把定位代码、外科手术式编辑、diff 审查三类任务委派给cavecrew-investigator、cavecrew-builder、cavecrew-reviewer三个子代理并覆盖完整决策矩阵、输出契约、链式调用模式和模型覆盖配置。读完后你应能判断什么任务该委派、该委派给谁以及如何解析它们返回的结构化压缩结果。cavecrew 是什么三个说穴居人话的子代理Cavecrew 是三个子代理subagent预设它们输出穴居人压缩体caveman output。它们与 Anthropic 的默认代理干同样的活——Explore探索、编辑型代理、审查代理——区别在于它们返回的工具结果tool-result经过压缩每次委派后注入主上下文的 token 更少主上下文因此撑得更久。三个子代理的定义文件位于插件目录前声明式地限定了各自可用的工具集与模型子代理职责可用工具frontmatter 声明默认模型cavecrew-investigator只读代码定位Read, Grep, Glob, Bashhaikucavecrew-builder外科手术式编辑1-2 个文件Read, Edit, Write, Grep, Glob未指定跟随 API 会话默认cavecrew-reviewerdiff/分支/文件审查Read, Grep, Bashhaiku对应定义文件cavecrew-investigator.mdcavecrew-builder.mdcavecrew-reviewer.md两个关键约束直接写死在代理定义里决定了后续所有调用姿势investigator 的职责只有一句话Locate. Report. Stop. Never edit, never propose fix.定位、汇报、停手永不编辑、永不提修复建议。builder 的 frontmatter 明确Hard refuses 3 file scope硬性拒绝 3 个及以上文件的范围且没有Bash工具——cannot shell out, cannot push, cannot delete。决策矩阵什么时候用 cavecrew什么时候不用这是 SKILL.md 的核心内容。完整的任务-代理对照表如下原文继承任务应使用X 定义在哪 / 谁调用了 Y / 列出 Z 的所有用法cavecrew-investigator同上但你还要建议/架构评论Explore原生 vanilla外科手术式编辑≤2 个文件范围明确cavecrew-builder新功能 / 3 文件 / 跨切面重构主线程或feature-dev:code-architect审查 diff、分支或文件的 bugcavecrew-reviewer需要理由替代方案的深度代码评审Code Reviewer原生 vanilla你心里已有答案的一句话问题主线程不用子代理经验法则原文如果你希望子代理的输出只有 1/3 的 token选 cavecrew如果你希望得到散文式长文选 vanilla原生代理。补充边界来自 cavecrew 的 README这个 skill 是一个决策指南而非斜杠命令——它没有显式的调用入口而是在对话中谈到委派如 delegate to subagent、use cavecrew、spawn investigator、save context时被激活。同时 README 特意声明紧凑返回契约可以减少结果回到主上下文时的重复散文但实际效果取决于任务、代理和委派次数不公布任何普适的压缩率数字。为什么这样设计子代理结果是原样注入主上下文的SKILL.md 用一句话点明了设计动机Subagent tool results get injected into main context verbatim.子代理的返回会逐字注入主上下文。一次原生Explore若返回 2k token 的散文每次委派就消耗主上下文 2k token 预算同一个发现由cavecrew-investigator返回约 700 token。原文给出的账是在单次会话里委派 20 次这决定了你是上下文耗尽还是顺利做完任务。这也是为什么三个代理的输出都不是自然语言段落而是可被grep、可被主线程逐行解析的结构化行——压缩发生在返回给主线程的那一段上而不是发生在子代理自己的探索过程中。输出契约主线程可以依赖什么主线程对每个代理的返回值有确定性的解析预期这比它能回答什么问题更重要。以下契约完整继承自 SKILL.md并结合各代理定义文件中的细则展开。cavecrew-investigatorfile:line 优先的定位表基本格式Header: - path:line — symbol — short note totals: counts.或者No match.。规则要点来自 investigator 定义永远文件路径优先、行号随行、符号用反引号包裹主线程可以直接用path:\d正则 grep 它。单条命中 → 一行无 header零命中 →No match.3 行及以上时用一个词 header 分组Defs:/Refs:/Callers:/Tests:/Imports:/Sites:最后一行给总数如2 defs, 5 refs.0 或 1 时省略工具分工符号/字符串用Grep路径用GlobRead只读特定行范围更快的场景git log -S、git grep、find才走Bash被要求修复 → 拒绝Read-only. Spawn cavecrew-builder.被要求设计 →Read-only. Spawn cavecrew-builder or use main thread.定义文件中自带的真实示例问题where symlink-safe flag write?Defs: - hooks/caveman-config.js:81 — safeWriteFlag — atomic write w/ O_NOFOLLOW - hooks/caveman-config.js:160 — readFlag — paired reader Callers: - hooks/caveman-mode-tracker.js:33,87 - hooks/caveman-activate.js:40 Tests: - tests/test_symlink_flag.js — 12 cases 2 defs, 3 callers, 1 test file.cavecrew-builder带回读验证的编辑回执基本格式回执receiptpath:line-range — change ≤10 words. verified: re-read OK | mismatch path:line.或者以四个终止性首词之一开头terminal first tokentoo-big.—— 3 文件附split: n one-line tasks.拆单建议needs-confirm.—— 需要破坏性操作附op: command.ambiguous.—— 规格含糊附ask: one question.只问一个问题regressed.—— 编辑后测试失败且无法在范围内修复附revert path:line. cause: fragment.工作流四步builder 定义Read目标文件Never edit blind→Edit最小可用 diff → 重新Read回读验证 → 返回回执。定义文件原话Diff is the artifact. Receipt is the proof. No exploration story.diff 是工件回执是证据没有探索故事。范围纪律同样写死1 个文件理想、2 个可接受、3 拒绝只改现有文件除非用户要新文件不引入新抽象、不顺手重构、不加注释。cavecrew-reviewer带严重度标签的单行发现基本格式path:line: emoji severity: problem. fix. totals: N N N N❓或者No issues.发现项按 文件 → 行号升序排列。严重度表完整继承自 reviewer 定义Emoji级别用于bug错误输出、崩溃、安全漏洞、数据丢失risk边界情况、竞态、泄漏、性能悬崖、缺失守卫nit风格、命名、微性能——仅当用户要求 thorough 时输出❓question需要作者意图才能判断定义文件中的示例path/to/file.ts:42: bug: token expiry uses not . Off-by-one allows expired tokens 1 tick. path/to/file.ts:118: risk: pool not closed on error path. Add try/finally. src/utils.ts:7: ❓ question: why duplicate .trim() here? totals: 1 1 1❓边界纪律只审眼前的 diffNo while were here、不提大重构方案、缺上下文时追加(see Ln in file)而不是猜、纯格式瑕疵跳过除非改变语义Bash仅允许git diff/git log -p/git show禁止任何变更类命令。它也不说looks good、不给架构意见——那是原生Code Reviewer的活。链式调用模式SKILL.md 给出三种标准链条1. 定位 → 修复 → 验证Locate → fix → verify最常见cavecrew-investigator返回站点列表path:line 符号 注记。主线程挑 1-2 个站点把路径交给cavecrew-builder。cavecrew-reviewer审查产生的 diff。2. 并行侦察Parallel scout调查面很宽时在同一条消息里 spawn 2-3 个cavecrew-investigator各查一个角度defs vs callers vs tests回主线程聚合。3. 单发编辑Single-shot edit站点已知时跳过 investigator直接把精确的path:line交给cavecrew-builder。明确不要做的事原文列出的四条反模式每一条都对应一次可预见的失败模式不知道文件就别用cavecrew-builder先 spawn investigator否则主线程要白白花 token 把上下文喂给 builder。别把 5 文件重构走investigator → builder链builder 会直接返回too-big.浪费一个 turn。别问cavecrew-reviewer整体评价它只回发现项没有架构意见那种需求用原生Code Reviewer。别期待散文cavecrew 输出是结构化的有时短到近乎晦涩。如果人类要直接读主线程应转述。Auto-clarity压缩的例外出口三个代理共享一条继承规则SKILL.md 末节遇到安全警告、不可逆操作确认、或碎片化表达可能被误读的输出时子代理会暂时从 caveman 体切换回正常英语说清楚后再切回压缩体。各定义文件也各自落实了这一点例如 reviewer 要求安全类发现第一句用平实英语陈述风险再跟 caveman 修复行builder 要求安全或破坏性路径 → 写正常英语警告然后恢复 caveman。模型覆盖环境变量如何落到代理文件cavecrew 的 README 说明cavecrew-reviewer和cavecrew-investigator的 frontmatter 默认钉住model: haikucavecrew-builder无model:行跟随会话默认。可以在启动 Claude Code 前用环境变量按代理覆盖环境变量作用于CAVECREW_REVIEWER_MODELcavecrew-reviewerCAVECREW_BUILDER_MODELcavecrew-builderCAVECREW_INVESTIGATOR_MODELcavecrew-investigator示例reviewer 换到 sonnet其余保持默认export CAVECREW_REVIEWER_MODELsonnet取值使用 Claude Code 代理 frontmatter 的模型名字符串如haiku、sonnet、opus。这一机制的实现证据在 cavecrew-model-overrides.js它由caveman-activate.js在 SessionStart 早期调用遍历上表的环境变量 → agents/ 下代理文件映射只修补 frontmatter 的model:行已有则原位替换没有则插入到tools:行之后或闭合---之前提示词正文保持原样以便继续接收上游更新。该实现还有两个值得注意的防护含换行或控制字符\x00-\x1f\x7f的环境变量值被静默忽略空值不做事。insideGitWorkTree()检测若插件根目录位于某个 git 工作树内即这是源码 checkout 而非已安装插件直接跳过所有修补——源码注释解释了这个 guard 的由来否则只要打开该仓库每次 SessionStart 就会重写受版本控制的agents/*.md弄脏工作区而已安装插件位于$CLAUDE_CONFIG_DIR下、上方没有.git覆盖仍然生效。此外 README 提示覆盖补丁只改已安装代理文件的model:行插件更新或重装后会被覆盖回去。小结cavecrew 的价值不在更聪明的子代理而在于收紧了子代理返回主上下文的那一段investigator 返回path:line定位表、builder 返回带回读验证的编辑回执、reviewer 返回带严重度 emoji 的单行发现主线程因此可以按确定契约逐行解析而不是每次委派吞下一大段散文。配套纪律builder 硬拒 3 文件、investigator 只读、reviewer 只报发现保证了链条不会跑偏。实践路径就是三句话任务能用 1/3 token 说完就用 cavecrew想要散文就用原生代理一句话能答的留在主线程。【免费下载链接】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),仅供参考
返回列表