跳转到主要内容

Token 使用量和成本

OpenClaw 跟踪的是 token,而不是字符。Token 因模型而异,但对于英文文本,大多数 OpenAI 风格的模型平均每个 token 约为 4 个字符。

系统提示词是如何构建的

OpenClaw 会在每次运行时组装自己的系统提示词。它包括:
  • 工具列表 + 简短描述
  • 技能列表(仅元数据;指令通过 read 按需加载)
  • 自我更新指令
  • 工作区 + 引导文件 (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md 在新建时,加上 MEMORY.md 如果存在或 memory.md 作为小写备选)。大文件会被 agents.defaults.bootstrapMaxChars 截断(默认:20000),并且总的引导注入量受 agents.defaults.bootstrapTotalMaxChars 限制(默认:150000)。memory/*.md 文件通过内存工具按需加载,不会自动注入。
  • 时间(UTC + 用户时区)
  • 回复标签 + 心跳行为
  • 运行时元数据(主机/操作系统/模型/思考)
系统提示词 中查看完整细分。

什么会计入上下文窗口

模型接收到的所有内容都会计入上下文限制:
  • 系统提示词(上面列出的所有部分)
  • 对话历史记录(用户 + 助手消息)
  • 工具调用和工具结果
  • 附件/转录(图像、音频、文件)
  • 压缩摘要和修剪产物
  • 提供商包装器或安全标头(不可见,但仍会被计算)
对于图像,OpenClaw 在调用提供商之前会缩小转录/工具图像负载。使用 agents.defaults.imageMaxDimensionPx(默认:1200)来调整此设置:
  • 较低的值通常会减少视觉 token 的使用量和负载大小。
  • 较高的值会为 OCR/UI 密集的屏幕截图保留更多视觉细节。
如需查看细分信息(包括每个注入的文件、工具、技能和系统提示词大小),请使用 /context list/context detail。请参阅 上下文

如何查看当前的 token 使用情况

在聊天中使用这些命令:
  • /status → 包含会话模型、上下文使用情况、 上次响应输入/输出令牌数以及预估成本(仅限 API 密钥)的 emoji 丰富的状态卡片
  • /usage off|tokens|full → 在每条回复后附加每次响应的使用情况页脚
    • 按会话持久化(存储为 responseUsage)。
    • OAuth 认证隐藏成本(仅显示令牌数)。
  • /usage cost → 显示来自 OpenClaw 会话日志的本地成本摘要。
其他界面:
  • TUI/Web TUI: 支持 /status + /usage
  • CLI: openclaw status --usageopenclaw channels list 显示 提供商配额窗口(而非每次响应的成本)。

成本估算(显示时)

成本是根据您的模型定价配置估算的:
models.providers.<provider>.models[].cost
这些是 inputoutputcacheReadcacheWrite每 100 万令牌美元价格。如果缺少定价,OpenClaw 仅显示令牌数。OAuth 令牌 从不显示美元成本。

缓存 TTL 和修剪影响

提供商提示词缓存仅在缓存 TTL 窗口内适用。OpenClaw 可以 选择运行 cache-ttl 修剪:它在缓存 TTL 过期后修剪会话, 然后重置缓存窗口,以便后续请求可以重用新缓存的上下文, 而不是重新缓存完整历史记录。这可以在会话空闲超过 TTL 时降低 缓存写入成本。 Gateway(网关) configuration 中进行配置,并在 Session pruning 中查看行为详细信息。 Heartbeat 可以在空闲间隙中保持缓存温暖。如果您的模型缓存 TTL 为 1h,将心跳间隔设置为略低于该值(例如 55m)可以避免 重新缓存完整提示词,从而减少缓存写入成本。 在多代理设置中,您可以保持一个共享的模型配置,并使用 agents.list[].params.cacheRetention 针对每个代理调整缓存行为。 有关详细的逐项调节指南,请参阅 Prompt Caching 对于 Anthropic API 定价,缓存读取比输入token便宜得多,而缓存写入则以更高的倍率计费。请参阅 Anthropic 的提示缓存定价以获取最新费率和TTL倍率: https://docs.anthropic.com/docs/build-with-claude/prompt-caching

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

agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-6"
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "long"
    heartbeat:
      every: "55m"

示例:使用按代理缓存策略处理混合流量

agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-6"
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "long" # default baseline for most agents
  list:
    - id: "research"
      default: true
      heartbeat:
        every: "55m" # keep long cache warm for deep sessions
    - id: "alerts"
      params:
        cacheRetention: "none" # avoid cache writes for bursty notifications
agents.list[].params 会合并到所选模型的 params 之上,因此您可以仅覆盖 cacheRetention 并继承其他模型默认值而无需更改。

示例:启用 Anthropic 1M 上下文 beta 标头

Anthropic 的 1M 上下文窗口目前处于 beta 封锁状态。在支持的 Opus 或 Sonnet 模型上启用 context1m 时,OpenClaw 可以注入所需的 anthropic-beta 值。
agents:
  defaults:
    models:
      "anthropic/claude-opus-4-6":
        params:
          context1m: true
这对应于 Anthropic 的 context-1m-2025-08-07 beta 标头。 这仅在该模型条目上设置了 context1m: true 时适用。 要求:凭证必须符合长上下文使用条件(API 密钥计费,或已启用额外使用的订阅)。否则,Anthropic 将响应 HTTP 429: rate_limit_error: Extra usage is required for long context requests 如果您使用 Anthropic/订阅令牌(sk-ant-oat-*)对 OAuth 进行身份验证,OpenClaw 将跳过 context-1m-* beta 标头,因为 Anthropic 目前拒绝该组合并返回 HTTP 401。

减少 token 压力的技巧

  • 使用 /compact 来总结长会话。
  • 修剪工作流中大型工具的输出。
  • 对于包含大量截图的会话,请降低 agents.defaults.imageMaxDimensionPx
  • 保持技能描述简短(技能列表会注入到提示中)。
  • 对于冗长、探索性的工作,首选较小的模型。
有关技能列表开销的确切公式,请参阅 Skills
本页面源自 openclaw/openclaw,由 BeaversLab 翻译,遵循 MIT 协议 发布。
Last modified on March 27, 2026