ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Pilot Shell tool_token_saver深度解析:Bash输出透明压缩进上下文的机制

Pilot Shell tool_token_saver深度解析:Bash输出透明压缩进上下文的机制 Pilot Shell tool_token_saver深度解析Bash输出透明压缩进上下文的机制【免费下载链接】pilot-shellProfessional context and harness engineering for Claude Code and OpenAI Codex. Build production-grade software with spec-driven development, TDD, persistent memory, quality gates, code intelligence, human oversight, and end-to-end verification.项目地址: https://gitcode.com/GitHub_Trending/cl/pilot-shellPilot Shell 是一款面向 Claude Code 与 OpenAI Codex 的专业上下文工程Context Engineering工具。它的tool_token_saver钩子能在 AI 执行 Bash 命令的瞬间透明地把命令重写为 RTK 代理版本将工具输出压缩 60%–90%让更少 Token 进入模型上下文——而用户和 AI 全程无感。为什么上下文压缩对 AI 编程如此重要 AI 编程助手的每一次工具调用结果git status、ls、cargo build……都会被原样塞进对话上下文。一次普通的git status可能带回几十行冗余文本一个大型目录的ls -la更是动辄数百行。这些噪音 Token会带来两个直接问题上下文窗口被快速挤占触发频繁压缩Compaction打断工作流Token 成本持续上涨尤其是长会话和多 Agent 协作场景。Pilot Shell 的思路是不在事后清理输出而是在命令执行前把它改写成Token 友好版本。这背后是一个名为 RTKToken 优化型 CLI 代理的 MIT 开源组件其工具清单见 open-source-tools.md。透明压缩机制tool_token_saver 如何工作 核心实现只有 131 行 Python位于 tool_token_saver.py它作为PreToolUse钩子注册在 hooks.json 中matcher 精确匹配Bash工具command: ... run_if_licensed.py ... tool_token_saver.py matcher: Bash整个流程分 6 步全程对用户透明拦截AI 即将执行一条 Bash 命令时钩子从 stdin 读取 JSON 载荷取出tool_input.command平台识别通过CLAUDE_PROJECT_PLATFORM环境变量或 Codex 原生的turn_id、session_id证据判断当前宿主是 Claude Code 还是 Codex能力检查确认系统装有rtk且版本 ≥ 0.23.0低于版本静默跳过命令重写调用rtk rewrite 原命令5 秒超时例如git status→rtk git status。RTK 代理执行后返回的是精简过的输出回填命令钩子输出updatedInput把改写后的命令替换原命令AI 照常执行拿到的却是压缩版结果静默兜底rtk 不存在、版本过旧、重写失败、或平台无法识别时钩子直接输出空并退出——原始命令原样执行绝不破坏用户的权限流程。 一句话总结命令被改写输出被压缩但 Agent 和用户都不需要知道这件事发生过。权限契约Claude 与 Codex 的差异化处理 ⚖️这是该钩子设计上最精妙的部分——重写命令会改变将要执行的内容因此必须尊重各宿主的权限模型宿主钩子输出设计意图CodexupdatedInputpermissionDecision: allowCodex 要求显式 allow 才能应用 rewritten 命令这不绕过其原生沙箱/审批策略Claude Code仅updatedInput不带权限决策Claude 独立应用 rewritten 输入且保留用户正常的权限确认弹窗源码注释tool_token_saver.py写得很直白在 Claude 端加上allow会跳过用户原本的权限提示所以刻意省略。这一权限契约在测试中被参数化验证见下文。失败开放Fail-Open任何异常都不打扰你 ️上下文工程工具的第一原则是不能因为省 Token 而破坏开发流程。tool_token_saver在以下全部场景中静默返回、保持原命令不变系统未安装rtkshutil.which返回 Nonertk 版本低于 0.23.0rtk rewrite超时或抛出系统错误rtk 回显的命令与原命令相同无压缩收益直接放弃平台标识缺失的模糊宿主——源码注释强调模糊宿主必须保留原命令及其权限流程而不是收到一个猜测出来的响应。唯一需要留意的边界rtk 的rewrite子命令以退出码 3 表示成功钩子因此只信任 stdout 内容、不依赖退出码——这一反直觉的行为被专门写成了回归测试test_tool_token_saver.py。如何验证压缩收益rtk gain 安装 Pilot Shell 后你几乎不需要做任何事——钩子自动接管。若想查看累计节省了多少 Token直接运行rtk gain # 压缩收益分析 rtk gain --history # 按历史会话查看相关规则说明在 cli-tools.md 中还提醒了一个经典坑如果rtk gain报错多半是 PATH 里混入了另一个同名rtkRust Type Kit。相关源码与文档 文件说明pilot/hooks/tool_token_saver.py钩子主实现平台识别 RTK 重写 权限契约pilot/hooks/hooks.jsonClaude Code 端 PreToolUse 注册pilot/hooks/codex_hooks.jsonCodex 端注册携带 allow 决策pilot/hooks/run_if_licensed.py许可证门控包装器无有效许可时钩子直接空跑pilot/hooks/tests/test_tool_token_saver.py覆盖超时、缺 rtk、平台契约等 15 个边界场景docs/docusaurus/docs/features/hooks.md官方 Hooks Pipeline 文档pilot/hooks/hook-lifecycle.json两端钩子生命周期清单小结 tool_token_saver用不到 150 行代码解决了 AI 编程中最安静却最昂贵的问题工具输出的上下文膨胀。它的三个设计亮点值得借鉴——执行前拦截而非事后压缩从源头削减进入上下文的 Token权限契约差异化同一份重写逻辑在 Claude 与 Codex 上各自遵守宿主的审批语义全面失败开放任何异常都退化为什么都没发生绝不打断开发流。对于跑长会话、多 Agent、大量终端操作的工程师来说这套透明压缩机制是上下文工程里性价比最高的隐形优化之一。【免费下载链接】pilot-shellProfessional context and harness engineering for Claude Code and OpenAI Codex. Build production-grade software with spec-driven development, TDD, persistent memory, quality gates, code intelligence, human oversight, and end-to-end verification.项目地址: https://gitcode.com/GitHub_Trending/cl/pilot-shell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表