Token 使用和成本

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

系统提示是如何构建的

OpenClaw 在每次运行时组装自己的系统提示,包括?

  • 工具列表 + 简短描?
  • 技能列表(仅元数据;指令按需通过 read 加载?
  • 自我更新指令
  • 工作?+ 引导文件(AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.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 ??emoji 的状态卡,显示会话模型、上下文使用、上次响应输?输出 token,以?估算成本*(仅 API 密钥)?
  • /usage off|tokens|full ?在每个回复末尾附?每响应使用情况页??
    • 逐会话持久化(存储为 responseUsage)?
    • OAuth 认证隐藏成本(仅显示 token)?
  • /usage cost ?显示来自 OpenClaw 会话日志的本地成本摘要?

其他界面?

  • *TUI/Web TUI? 支持 /status + /usage?
  • *CLI? openclaw status --usage ?openclaw channels list 显示提供商配额窗口(不是每响应成本)?

成本估算(显示时?

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

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

这些?inputoutputcacheRead ?cacheWrite ?每百?token 美元*。如果缺少定价,OpenClaw 仅显?token。OAuth 令牌从不显示美元成本?

缓存 TTL 和剪枝影?

提供商提示缓存仅在缓?TTL 窗口内应用。OpenClaw 可以选择运行缓存 TTL 剪枝:在缓存 TTL 过期后剪枝会话,然后重置缓存窗口,以便后续请求可以重用新鲜缓存的上下文而不是重新缓存完整历史。当会话?TTL 后空闲时,这可以保持较低的缓存写入成本?

网关配置中配置,行为详情请参阅会话剪枝?

心跳可以在空闲间隔内保持缓存温暖。如果你的模型缓?TTL ?1h,将心跳间隔设置在刚好低于该值(例如 55m)可以避免重新缓存完整提示,减少缓存写入成本?

在多 agent 设置中,你可以保持一个共享模型配置,并通过 agents.list[].params.cacheRetention 为每?agent 调整缓存行为?

有关每个旋钮的完整指南,请参阅提示缓存?

对于 Anthropic API 定价,缓存读取比输入 token 便宜得多,而缓存写入按较高倍数计费。请参阅 Anthropic 的提示缓存定价以获取最新费率和 TTL 倍数? https://docs.anthropic.com/docs/build-with-claude/prompt-caching

示例:通过心跳保持 1h 缓存温暖

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

示例:混合流量和每个 agent 的缓存策?

agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-6"
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "long" # 大多?agent 的默认基?
  list:
    - id: "research"
      default: true
      heartbeat:
        every: "55m" # 为深度会话保持长缓存温暖
    - id: "alerts"
      params:
        cacheRetention: "none" # 避免突发通知的缓存写?

agents.list[].params 合并在所选模型的 params 之上,因此你可以仅覆?cacheRetention 并继承其他模型默认值不变?

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

Anthropic ?1M 上下文窗口当前处?beta 限制。OpenClaw 可以在支持的 Opus ?Sonnet 模型上启?context1m 时注入所需?anthropic-beta 值?

agents:
  defaults:
    models:
      "anthropic/claude-opus-4-6":
        params:
          context1m: true

这映射到 Anthropic ?context-1m-2025-08-07 beta 标头?

如果你使?OAuth/订阅令牌(sk-ant-oat-*)进?Anthropic 认证,OpenClaw 会跳?context-1m-* beta 标头,因?Anthropic 当前会使用该组合拒绝 HTTP 401?

减少 token 压力的提?

  • 使用 /compact 总结长会话?
  • 在工作流中修整大型工具输出?
  • 为截图密集型会话降低 agents.defaults.imageMaxDimensionPx?
  • 保持技能描述简短(技能列表被注入到提示中)?
  • 对于冗长的探索性工作,偏好较小的模型?

有关确切的技能列表开销公式,请参阅技能?