Token 使用与成本

翻译自 docs.openclaw.ai

OpenClaw 跟踪的是 Token,而不是字符。Token 是模型特定的,但大多数 OpenAI 风格的模型对英文文本平均约 4 个字符为一个 Token。

系统提示是如何构建的

OpenClaw 在每次运行时组装自己的系统提示。它包括:

完整分解请参阅 系统提示

什么计入上下文窗口

模型接收到的所有内容都计入上下文限制:

要查看每个注入文件、工具、技能和系统提示大小的实际分解,请使用 /context list/context detail。参见 上下文

如何查看当前 Token 使用量

在聊天中使用这些命令:

其他界面:

成本估算(何时显示)

成本根据你的模型定价配置来估算:

models.providers.<provider>.models[].cost

这些是每 100 万个 Token 的 USD 价格,用于 inputoutputcacheReadcacheWrite。如果缺少定价信息,OpenClaw 仅显示 Token 数。OAuth Token 永远不显示美元成本。

缓存 TTL 和修剪影响

提供商的提示缓存仅在缓存 TTL 窗口内适用。OpenClaw 可以选择性地运行 cache-ttl 修剪:它在缓存 TTL 过期后修剪会话,然后重置缓存窗口,这样后续请求可以重用刚刚缓存的上下文,而不是重新缓存完整的历史记录。这使得会话在 TTL 过后的空闲期间,缓存写入成本更低。

Gateway 配置中进行配置,并参阅 会话修剪了解行为细节。

心跳可以在空闲间隙中保持缓存温暖。如果你的模型缓存 TTL 是 1 小时,将心跳间隔设置为略低于此值(例如 55 分钟)可以避免重新缓存完整提示,从而降低缓存写入成本。

示例:使用心跳保持 1 小时缓存温暖

agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-5"
    models:
      "anthropic/claude-opus-4-5":
        params:
          cacheControlTtl: "1h"
    heartbeat:
      every: "55m"

降低 Token 压力的技巧

参见 技能了解精确的技能列表开销公式。