跳到主要内容

Tokenless 用户手册

English

Tokenless 面向工具调用密集的 AI Agent。它的 CLI 可以精简 Schema 和 JSON 响应,Adapter 还可以改写 Shell 命令、检查工具依赖,并把压缩结果交给 Agent。最终效果取决于宿主框架:有的 Adapter 会替换原始结果,有的只会追加压缩上下文而保留原文。

第一次使用请从快速开始进入。

从源码构建独立 CLI

源码构建适合开发和调试。当前项目只在 Linux 上验证和支持源码构建:

git clone https://github.com/alibaba/anolisa.git
cd anolisa/src/tokenless
cargo build --release --locked -p tokenless-cli
./target/release/tokenless --version

这条路径只生成独立的 tokenless CLI,不会安装 rtktoon 或 Agent 接入资源。需要在 Agent 中使用完整能力时,请按照快速开始通过 anolisa CLI 安装。

能力与边界

能力当前代码实际执行的行为重要边界
Schema 压缩移除 titleexamples,删除描述中的围栏代码和行内代码,合并空白并截断描述只有 cosh 和 Qwen Code 注册了 Schema Hook;其他场景可直接调用 CLI
响应压缩移除名称完全匹配且区分大小写的调试字段、null、空字符串/数组/对象,并按配置阈值截断输入必须是 JSON;Adapter 会主动跳过内容读取类工具
TOON 编码编码 JSON;估算 Token 没有下降时保留 JSON 输入TOON 是替换原文还是与原文并存,取决于 Adapter
命令重写有匹配规则时调用 rtk rewrite,再向框架提交改写后的 Shell 输入真正提交给 Shell 的命令会变化;无规则或被拒绝时透传
Tool Ready检查声明的二进制、版本、配置、权限和可选依赖--fix 只安装缺失的必需依赖,并可能改变环境
Stash保存因字符串、数组、深度或 Schema 描述截断而移除的内容默认 TTL 一小时、最多 10,000 个有效条目;其他被移除字段不会进入 Stash

代码没有提供固定节省率保证。结果取决于 Payload、Adapter 交付语义,以及工具数据在模型上下文中的占比。请按效果度量使用自己的工作负载测量。

Tokenless 如何参与一次工具调用

启用对应 Adapter 后,一次工具调用可能经过以下阶段:

工具调用前:Tool Ready 检查 → 命令重写
工具调用后:响应压缩 → 可选 Stash → TOON 编码 → 写入统计
模型调用前:Schema 压缩

这是能力示意,不是所有框架都会完整执行的固定流水线。例如 OpenClaw 默认关闭 TOON,Codex 追加压缩上下文而不替换原始工具结果,只有 cosh 和 Qwen Code 注册 Schema 压缩。具体见框架集成

需要特别理解的行为

安装不等于启用

anolisa install tokenless 安装组件和 Adapter 资源。要让某个 Agent 自动使用 Tokenless,还需要:

anolisa adapter enable tokenless <framework>

CLI-only 用法不需要 Adapter。

“关闭压缩”只影响三个压缩操作

设置 compression_enabled=falseTOKENLESS_COMPRESSION_ENABLED=0 后,无论是直接调用还是通过 Adapter 调用,compress-schemacompress-responsecompress-toon 都仍会计算预测节省并可能写入统计,但会返回原始输入。该模式不会写入 Stash 条目。

这个设置不会关闭 RTK 命令重写、Tool Ready 检查、Adapter 执行或内容取回。如需停止 Agent 中的所有 Tokenless 行为,应禁用 Adapter:

anolisa adapter disable tokenless <framework>

可逆压缩是有条件的

启用压缩时,响应和 Schema 截断默认会把被移除的 Payload 写入 ~/.tokenless/stash.db,并在输出中加入:

<<tokenless:0123456789abcdef01234567>>

可以通过 tokenless retrieve 或 MCP tokenless_retrieve 取回。以下情况会失去可逆性:

  • 使用了 --no-stash
  • 压缩处于 dry-run 模式。
  • Stash 数据库不可用或写入失败。
  • 条目已经超过 TTL。
  • 有效条目超过 10,000 个后,较早条目被容量策略淘汰。
  • 调用方使用了不同的 Stash 数据库路径。

Stash 并不能让所有压缩都可逆。被移除的 debug/trace 字段、null 和空值、Schema title/examples 以及 Markdown 格式不会保存供取回。启用实际压缩前,应使用有代表性的数据验证关键 Payload。

普通处理错误通常 fail-open

缺少 tokenlessrtk、压缩无收益或发生普通处理错误时,压缩和重写 Hook 通常不返回修改。Tool Ready 不同:部分 Adapter 会在自动修复后仍为 NOT_READY 时主动阻止工具执行。Stash 写入失败时,仍可能继续执行有损压缩。

命令重写也会改变宿主提交的 Shell 命令。大多数 Adapter 会直接替换命令输入;Hermes 会先阻止第一次调用,再提示 Agent 使用改写命令重试。因此,除了压缩结果,还应验证重要命令工作流。

支持的 Agent 框架

框架集成方式当前代码路径
coshExtensionTool Ready、命令重写、响应压缩 + TOON、Schema;Cosh-NG 有替换路径,旧版 Copilot Shell 则追加额外上下文
OpenClawPluginTool Ready、exec 命令重写、替换持久化结果、可选 TOON;无 Schema
HermesPluginTool Ready、阻止后重试的命令重写、用响应压缩 + TOON 替换结果;无 Schema
QoderPluginTool Ready、命令重写、通过 additionalContext 交付响应压缩 + TOON;无 Schema
Claude CodeMarketplace PluginTool Ready、Bash 命令重写;Claude Code 2.1.121 及以上可替换响应;条件式 TOON;无 Schema
CodexPluginTool Ready、命令重写;把响应/TOON 分析追加为上下文,保留原始结果;无 Schema
Qwen CodeExtensionTool Ready、命令重写、通过 additionalContext 交付响应压缩 + TOON、Schema

按任务查找文档

我想做什么文档
第一次安装并验证快速开始
从源码构建独立 CLI本页 · 从源码构建独立 CLI
接入或切换 Agent 框架框架集成
手动压缩、取回或运行 MCPCLI 参考
查看节省或内容变化、做双跑对比效果度量
修改配置或了解本地数据配置与数据隐私
解决无统计、Adapter 或 Stash 问题故障排查
升级或卸载故障排查 · 升级与卸载

推荐的上线顺序

  1. 在非敏感测试任务中完成快速开始
  2. 使用 dry-run 记录同一任务的基线。
  3. 开启真实压缩并比较结果质量与节省。
  4. 确认本地数据和 SLS 策略符合要求。
  5. 再为生产使用的 Agent 启用 Adapter。

Tokenless 的配置和 CLI 以当前安装版本的 tokenless --help 为最终依据。