mcpField
H
honey-ccr

honey-ccr

github.com/green-ptAgent 工作流34439 次安装1 周前更新
代码仓库

关于 honey-ccr

honey-ccr 是一项技能,用于检查冗余 JSON 数组和重复的 Bash 输出时减少上下文占用。它保留样本并缓存原始内容,便于之后取回。

主要功能

  1. 01抽样精简大型同质 JSON 数组
  2. 02缓存原文并按哈希取回
  3. 03折叠连续重复的文本行
  4. 04通过钩子自动处理 Bash 输出

适用场景

  1. 01浏览日志、搜索结果、指标或事件
  2. 02减少 Claude Code 中重复的 Bash 输出

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/green-pt/honey-for-devs --skill honey-ccr

安装后在 Claude Code 中输入/honey-ccr确认已加载。

详细介绍

Honey CCR

最便宜的 token,就是不发送的 token。读取 500 行日志,只为查找一行错误, 就要消耗 500 行上下文。CCR 保留有用信息所在的行,并缓存其余内容——可通过哈希恢复,因此不会丢失任何内容。

借鉴自 headroom 的 SmartCrusher。有意采用有损处理——仅适用于快速浏览的数据,绝不适用于每一行都至关重要的负载(例如,交接代码审查结果时,实现者需要查看所有发现;这种情况请使用 eson encode 进行无损编码)。

适用场景

  • 工具返回包含许多记录(≥ ~5 项)且内容冗余的统一 JSON 数组。
  • 你需要读取数据,但大多只需快速浏览——例如日志、搜索结果、指标和事件。
  • 完整数据仍可访问,因此丢弃中间无关内容是安全的。

不适用场景

  • 小型数组(会原样传递,不作处理)或非数组数据。
  • 每个元素都至关重要的数组——应对其编码,而非压缩。

用法

tool-that-spews-json | eson crush          # → sampled view + sentinel; originals cached
eson retrieve <hash>                        # → the full original array, verbatim

crush 会输出保留的样本以及一个哨兵值 {"_ccr":"<<ccr:HASH N_rows_offloaded>>"}。需要被丢弃的行时,从哨兵值中读取 哈希,然后运行 eson retrieve <hash>。

  • 缓存目录:.honey-ccr/(可通过 HONEY_CCR_DIR 覆盖)。
  • 低于大小阈值时,crush 会原样返回数组,不添加哨兵值——可安全地通过管道传递任何内容。

始终启用的钩子(进入时 GC)

Honey 处于启用状态时,已注册的 PostToolUse 钩子会自动处理 Bash 输出—— 无需针对每次调用单独选择启用。大型统一 JSON 数组(≥20 项、≥2k 字符)会被压缩;重复文本(≥25 行)中的连续重复内容会合并为 ⟨×N⟩。 原始内容始终会先存入缓存,改写后的结果末尾会附上可用于恢复原始内容的确切命令 eson retrieve <hash>。/honey off 会禁用此钩子; 已进入上下文的历史记录不可更改——钩子在入口处触发,这是它唯一能够发挥作用的时机。

注意:此钩子需要 Claude Code 2.1.121+;较旧版本无法改写 Bash 输出 (会话启动时会显示警告)。手动使用 some-tool | eson crush 管道在任何版本上都可用——在旧版本中请优先使用这种方式。

评论

支持 Markdown