Skip to content

OpenHuman TokenJuice 压缩机制

概述

TokenJuice 是 OpenHuman 内置的 Token 压缩引擎,官方宣称可以降低最高 80% 的 Token 消耗。它的核心思路是:在所有工具调用结果进入 LLM 上下文之前,先经过一层规则压缩。

为什么这很重要?因为 auto-fetch 每 20 分钟扫一次 Gmail 的 200 封邮件、扫一次 GitHub diff、扫一次 Slack 频道——没有压缩这一层,频繁调用 LLM 的 Token 账单会非常惊人。

压缩效果

场景未压缩压缩后节省
处理 6 个月邮箱历史几百美元个位数美元~97%
单次工具调用结果10k+ Token2k Token~80%

三层规则架构

TokenJuice 的压缩规则分为 3 层,后面覆盖前面

1. Builtin(内置规则)

内置的默认压缩规则,覆盖常见命令:

  • git 命令输出
  • npm / cargo 包管理命令
  • docker / kubectl 容器命令
  • ls 等基础命令

开箱即用,无需配置。

2. User(用户规则)

存放在 ~/.config/tokenjuice/rules/ 目录下,跨项目生效。

适合个人偏好的压缩设置,例如:

  • 忽略特定格式的日志行
  • 合并连续的空白行
  • 截断超过 N 行的输出

3. Project(项目规则)

存放在仓库根目录的 .tokenjuice/rules/ 目录下,通过 Git 共享给团队成员。

适合项目级别的压缩策略,例如:

  • 丢弃与项目无关的调试日志
  • 按段落摘要编译输出
  • 特定工具输出的正则匹配

压缩策略

TokenJuice 支持多种压缩策略,全部以 JSON 文件配置,无需重新编译即可生效

策略说明适用场景
截断保留前 N 行/后 N 行长日志输出
去重移除重复行重复的错误信息
合并空白连续空行合并为一行格式化输出
正则丢弃匹配正则的行直接丢弃调试日志清理
按段摘要每个段落用一句话概括长文档处理

配置示例

json
{
  "rules": [
    {
      "pattern": "^DEBUG\\s+",
      "strategy": "discard",
      "description": "丢弃 DEBUG 级别日志"
    },
    {
      "pattern": "(.{200,})",
      "strategy": "truncate",
      "max_lines": 50,
      "description": "超过 200 字符的行截断到 50 行"
    },
    {
      "strategy": "deduplicate",
      "description": "移除完全相同的连续行"
    }
  ]
}

与技术架构的关系

TokenJuice 处于数据进入流程的咽喉位置——所有原始数据在进入 Memory Tree 和 LLM 上下文之前,都会被它处理一遍。


相关文档产品概述 | 集成与自动同步

最后更新:2026-05-22