rtk-awareness 解析:rtk 如何让 Claude Code 自动经 rtk 代理命令以压缩 Token 消耗

发布时间:2026/10/26 21:14:20

rtk-awareness 解析:rtk 如何让 Claude Code 自动经 rtk 代理命令以压缩 Token 消耗 rtk-awareness 解析rtk 如何让 Claude Code 自动经 rtk 代理命令以压缩 Token 消耗【免费下载链接】rtkCLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies项目地址: https://gitcode.com/GitHub_Trending/rtk4/rtkhooks/claude/rtk-awareness.md是 rtkRust Token Killer为 Claude Code 准备的一份“意识文件”它被rtk init嵌入到用户的 Claude 指令体系中告诉 AI Agent 哪些 rtk 元命令应直接调用、如何验证 rtk 安装正确以及其余命令为何无需关心——因为它们会被 Claude Code 的PreToolUsehook 透明改写成rtk cmd形式。读完本文你将掌握这份意识文件的完整用法、它在 rtk 安装流程中的生成与注入链路以及底层 hook 改写协议rtk rewrite退出码协议、版本守卫、审计日志的实现细节。rtk-awareness.md 的定位与内容全貌rtk-awareness.md 是一份刻意保持极短的指令文件hooks/claude/README.md 称之为 “slim instructions file”由rtk init安装时写入用户环境。它只有三块内容Meta Commands元命令——要求 Agent “始终直接使用 rtk”调用即不经过 hook 改写、由 Agent 主动发起的管理类命令rtk gain # Show token savings analytics rtk gain --history # Show command usage history with savings rtk discover # Analyze Claude Code history for missed opportunities rtk proxy cmd # Execute raw command without filtering (for debugging)Installation Verification安装验证——用于确认 PATH 里的是正确的 rtk 二进制rtk --version # Should show: rtk X.Y.Z rtk gain # Should work (not command not found) which rtk # Verify correct binaryHook-Based Usagehook 接管——明确告知 Agent其余所有命令都由 Claude Code hook 自动改写例如git status→rtk git status透明且 0 token 开销完整命令参考见 CLAUDE.md。这份文件的设计意图是把需要 Agent 主动知道的事情压到最少只有元命令查询节省量、审计历史、调试透传必须“直接执行”日常开发命令全部交给 hook 静默改写Agent 上下文里因此不需要维护一长串命令映射表。它从哪里来rtk init的注入链路从源码结构看这份文件并不是安装后手工拷贝的而是编译期打包进二进制的内嵌字符串。在 src/hooks/init.rs 中// Embedded slim RTK awareness instructions const RTK_SLIM: str include_str!(../../hooks/claude/rtk-awareness.md); const RTK_SLIM_CODEX: str include_str!(../../hooks/codex/rtk-awareness.md);rtk init的默认模式run_default_mode见 init.rs会将RTK_SLIM的完整内容原子写入~/.claude/RTK.md见 init.rs 中write_if_changed(rtk_md_path, RTK_SLIM, RTK_MD, ctx)并通过RTK.md引用挂接到用户的CLAUDE.md同时向~/.claude/settings.json的hooks.PreToolUse注入改写 hook常量见 src/hooks/constants.rshook 文件名为rtk-rewrite.sh当前安装形态的 hook 命令是rtk hook claude使用 tempfile rename 的atomic_write保证写入不损坏已有文件且写入是幂等的内容相同则跳过。值得注意的是同一个RTK_SLIM内容还被复用于其他 Agent 的指令文件Gemini 的GEMINI.mdinit.rs和 Vibe 的 prompt 文件init.rs也就是说这份“意识文件”是 rtk 多 Agent 支持中共享的最小知识单元卸载时rtk init --global的对应清理逻辑会移除RTK.md、CLAUDE.md中的引用块以及settings.json里的 hook 条目。元命令详解awareness 文件中的四条核心指令awareness 文件要求 Agent “always use rtk directly” 的四条命令分别对应 rtk 的分析与调试能力以下逐一结合源码说明其行为。rtk gain 与 rtk gain --history节省量分析rtk gain输出 token 节省统计--history追加展示每条命令的使用历史。实现位于 src/analytics/gain.rs入口函数签名即为run(..., history: bool, ...)见 gain.rshistory标志开启后在 gain.rs 处输出历史明细。节省数据的来源是 SQLite 跟踪库CLAUDE.md 说明“Token savings are tracked in SQLite viasrc/core/tracking.rs”且 RTK 不内置 tokenizertoken 数按bytes / 4估算——因此这些数字是“可靠的比例 近似的绝对值”。rtk discover发现被漏掉的节省机会rtk discover分析 Claude Code 的命令历史找出没有经过 RTK 过滤执行的命令并估算潜在损失支持rtk discover --all所有项目与rtk discover --all --since 7最近 7 天等参数。行为细节可参考 docs/guide/analytics/discover.md。如果安装后该报告仍持续列出“漏网”命令通常意味着 hook 对当前 Agent 未生效——这正是 awareness 文件与 hook 配置需要一起检查的信号。rtk proxy 无过滤透传调试用rtk proxy command [args...]绕过 RTK 过滤执行原生命令但依然记录用量在rtk gain --history中显示为 0% 削减输入 输出。CLAUDE.md 中给出三个典型用途与示例rtk proxy git log --oneline -20 # Full git log output (no truncation) rtk proxy npm install express # Raw npm output (no filtering) rtk proxy curl https://api.example.com/data # Any command works它同时扮演“过滤出 bug 时的逃生通道”与“保证任何命令都能跑”的兼容兜底——这也是 awareness 文件强调调试场景用rtk proxy而非直接裸命令的原因。安装验证与同名项目陷阱awareness 文件专门用一条警告强调命名冲突⚠️Name collision: Ifrtk gainfails, you may have reachingforthejack/rtk (Rust Type Kit) installed instead.CLAUDE.md 对此有完整阐述生态里存在两个名为 rtk 的项目——本项目 Rust Token Killer 与 reachingforthejack/rtkRust Type Kit生成 Rust 类型完全不同。因此验证序列是三条命令交叉确认rtk --version # 应显示 rtk 0.28.2或更新版本 rtk gain # 应显示节省统计而非 command not found which rtk # 确认二进制来源rtk gain是关键的判别探针Rust Type Kit 没有gain子命令一旦报 command not found 即可断定装错了包。Hook-Based Usage 的底层机制透明改写协议awareness 文件最后一段写道“All other commands are automatically rewritten by the Claude Code hook. Example:git status→rtk git status(transparent, 0 tokens overhead)”。这句话的完整实现链路由三部分组成。1. 薄 Bash hookrtk-rewrite.shrtk-rewrite.sh 是一个刻意保持“薄”的PreToolUsehook文件头注释明确所有改写逻辑都在rtk rewrite子命令中Rust 注册表是唯一事实来源shell 脚本只做守卫与委托。其执行流程依赖守卫jq缺失 → 打印警告并exit 0静默降级rtk缺失 → 同样静默退出见 rtk-rewrite.sh版本守卫rtk rewrite是 0.23.0 才引入的命令脚本解析rtk --version并缓存到$XDG_CACHE_HOME/rtk-hook-version-ok低于 0.23.0 则警告后退出见 rtk-rewrite.sh委托改写从 stdin 读入 Claude Code 的 JSON用jq提取.tool_input.command然后执行rtk rewrite $CMD按退出码分流见 rtk-rewrite.sh退出码含义hook 动作0 stdout找到改写且无 deny/ask 规则命中输出updatedInput并自动放行permissionDecision: allow1无 RTK 等价命令原样透传不做任何事2命中 deny 规则透传交给 Claude Code 原生 deny 处理3 stdout命中 ask 规则输出改写但不带permissionDecision由 Claude Code 弹确认框放行与请求确认两种分支的 JSON 输出分别见 rtk-rewrite.sh。hooks/claude/README.md 总结其失败哲学jq 缺失、rtk 缺失、版本过旧、无匹配——任何失败都静默exit 0绝不让 hook 打断 Agent 工作流。2. Rust 端决策rtk rewrite真正的判定逻辑在 src/hooks/rewrite_cmd.rs 的run()中其文档注释完整定义了退出码协议0/1/2/3 与上表一致。决策函数evaluate_with_verdictrewrite_cmd.rs按顺序做三件事权限裁决读取 Claude Code 的 settings 规则allow/ask/deny。Deny直接返回退出码 2不可证明结构检查crate::discover::lexer::contains_unattestable_construct(cmd)检测到反引号、$()命令替换、文件重定向等无法静态证明等价性的结构时一律透传不冒险改写注意 fd 复制21不算在内仍可改写——这与测试中cargo test 21→rtk cargo test 21的行为一致注册表改写registry::rewrite_command(cmd, excluded, transparent_prefixes)src/discover/registry.rs查找改写规则支持exclude_commands排除清单与transparent_prefixes两个用户配置项。一个安全关键点值得注意PermissionVerdict::Default无任何规则命中必须映射到退出码 3ask而非 0allow否则任何没有显式 allow 规则的命令都会被 hook 自动放行绕过 Claude Code 的最小权限默认值。该约束由 rewrite_cmd.rs 中专门的exit_code_protocol测试模块固化防止未来重构引入自动放行旁路。3. 回归验证60 断言的测试套件hooks/claude/test-rtk-rewrite.sh 通过向 hook 喂入 mock JSON 来验证改写行为可用HOOK/path/to/rtk-rewrite.sh覆盖测试目标见 hooks/claude/README.md。测试覆盖了 awareness 文件所依赖的全部关键行为基础改写git status→rtk git status、rg pattern src/→rtk grep pattern src/、cat package.json→rtk read package.json环境变量前缀保留GIT_PAGERcat git status→GIT_PAGERcat rtk git status不该改写的场景heredoc、echo、cd、mkdir、python3、node -e以及 rtk 未实现子命令的docker compose up -d、docker compose down对比docker compose logs/ps/build会被改写RTK_DISABLED 开关RTK_DISABLED1 git status不被改写重定向与边界cargo test 21、cargo test git status等不会被误判为重定向幂等性rtk git status输入即原样输出审计日志设置RTK_HOOK_AUDIT1与RTK_AUDIT_DIR后hook 会写hook-audit.log4 字段管道分隔action 取值如rewrite、skip:already_rtk、skip:heredoc、skip:no_match未设置时不产生日志。审计能力的配置说明见 docs/guide/getting-started/configuration.mdRTK_HOOK_AUDIT1一行实现见 src/hooks/hook_cmd.rs配套的聚合分析命令入口在 src/main.rs“Show hook rewrite audit metrics (requires RTK_HOOK_AUDIT1)”。小结一个“少即是多”的 Agent 指令设计rtk-awareness.md体现了 rtk 在 Claude Code 集成上的核心权衡用 hook 承担 99% 的透明改写工作规则集中在 Rust 注册表 src/discover/registry.rs 中单点维护只用一份十几行的意识文件教 Agent 三件事——四条元命令、安装自检、以及“其余的不用管”。对读者而言实践路径是先按 awareness 文件的验证序列确认装对了 rtk再用rtk init完成RTK.md/hook 注入最后用rtk gain、rtk discover与RTK_HOOK_AUDIT1审计日志持续观察节省效果与 hook 覆盖率。【免费下载链接】rtkCLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies项目地址: https://gitcode.com/GitHub_Trending/rtk4/rtk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/27 3:03:49

uniCloud云函数计费调整全解析:成本测算与优化实战

群里炸锅的时候我正在改一个 uniCloud 项目的上线配置,坦白讲,看到"阿里云服务空间云函数计费规则调整"这几个字,我第一反应也是血压升高。用了三年 uniCloud 阿里云服务空间,从免费额度时代一路走过来,太清…

2026/10/27 5:27:36

时间格式转换实战:数据清洗中的三大语言体系与时区处理

1. 内容整体设计与思路拆解1.1 一个看似简单却让实习生栽跟头的任务我到现在还清楚记得那天早晨,mentor把一份几十万行的埋点日志丢给我,说了句“把时间字段统一成YYYY-MM-DD HH:MM:SS,下午下班前给我”。我扫了一眼数据,第一反应…

2026/10/27 18:19:20

MySQL 使用 MyFlash 快速恢复误删除、误修改数据

一、MyFlash MyFlash 是由美团点评公司技术工程部开发并维护的一个开源工具,主要用于MySQL数据库的DML操作的回滚。这个工具通过解析binlog日志,帮助用户高效、方便地进行数据恢复。MyFlash的优势在于它提供了更多的过滤选项,使得回滚操作变…

2026/10/27 18:19:20

C语言:详解gcc驱动程序完成编译、汇编、链接的过程

相关阅读 C语言https://blog.csdn.net/weixin_45791458/category_12423166.html?spm1001.2014.3001.5482 gcc是一个命令,严格意义上说,它只是一个驱动程序,而不是一个编译器。gcc负责调用GNU工具链中的预处理器、编译器、汇编器、链接器等工…

2026/10/27 18:19:20

如何选择.NET架构?dotnet-claude-kit四架构顾问实战指南

【免费下载链接】dotnet-claude-kit Make Claude Code a .NET 10 Expert 项目地址: https://gitcode.com/gh_mirrors/do/dotnet-claude-kit 点击查看 免费下载 刚开始一个 .NET 项目时,最让人纠结的问题往往不是"用什么框架",而是…

2026/10/27 18:19:20

通信协议:常见的芯片间通信协议

相关阅读 通信协议https://blog.csdn.net/weixin_45791458/category_12452508.html?spm1001.2014.3001.5482 本文将简单介绍一些常见的芯片间通信协议,但不会涉及到协议的具体细节。首先说明,芯片间通信方式根据通信时钟的区别可以分为:异步…

2026/10/27 18:19:20

Linux:桌面系统中的文件后缀和类型

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Linux中的文件后缀与Windows系统有些不同,因为其似乎没有很重要,一个文件是否可执行对后缀没有要求。但是,后缀依然可以用于表示文件…

2026/10/27 18:14:19

深度学习语义分割技术演进与实战解析

1. 语义分割技术发展概述语义分割作为计算机视觉领域的核心任务之一,在过去十年间经历了从传统方法到深度学习范式的革命性转变。这项技术能够为图像中的每个像素分配语义类别标签,在自动驾驶、医疗影像分析、遥感解译等场景中发挥着关键作用。2015年FCN…

2026/10/27 14:24:03

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/27 9:34:54

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/27 0:59:21

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式19_“模式选错”的典型代价

“模式选错”的典型代价 摘要 在软件工程中,设计模式、架构模式、并发模式乃至团队协作模式的选择,往往在项目早期就决定了后续的开发效率和维护成本。本文通过多个真实场景,剖析“模式选错”带来的典型代价——包括返工成本、技术债务累积、…

2026/10/27 0:02:28

WorkBuddy_新建任务与工作模式20_新手推荐路径

新手推荐路径 摘要 在 AI 辅助开发工具快速普及的今天,新手面对最多的困惑往往不是"工具够不够强",而是"我该从哪一步开始用"。本文提出一条经过实践验证的三阶段学习路径:先从 Ask(问答式交互)起…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑