Token 使用和成本
Token 使用量和成本
Section titled “Token 使用量和成本”OpenClaw 跟踪的是 token,而不是字符。Token 因模型而异,但对于英文文本,大多数 OpenAI 风格的模型平均每个 token 约为 4 个字符。
系统提示词是如何构建的
Section titled “系统提示词是如何构建的”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 + 用户时区)
- 回复标签 + 心跳行为
- 运行时元数据(主机/操作系统/模型/思考)
在 系统提示词 中查看完整细分。
什么会计入上下文窗口
Section titled “什么会计入上下文窗口”模型接收到的所有内容都会计入上下文限制:
- 系统提示词(上面列出的所有部分)
- 对话历史记录(用户 + 助手消息)
- 工具调用和工具结果
- 附件/转录(图像、音频、文件)
- 压缩摘要和修剪产物
- 提供商包装器或安全标头(不可见,但仍会被计算)
对于图像,OpenClaw 在调用提供商之前会缩小转录/工具图像负载。使用 agents.defaults.imageMaxDimensionPx(默认:1200)来调整此设置:
- 较低的值通常会减少视觉 token 的使用量和负载大小。
- 较高的值会为 OCR/UI 密集的屏幕截图保留更多视觉细节。
如需查看细分信息(包括每个注入的文件、工具、技能和系统提示词大小),请使用 /context list 或 /context detail。请参阅 上下文。
如何查看当前的 token 使用情况
Section titled “如何查看当前的 token 使用情况”在聊天中使用这些命令:
/status→ 包含会话模型、上下文使用情况、 上次响应输入/输出令牌数以及预估成本(仅限 API 密钥)的 emoji 丰富的状态卡片。/usage off|tokens|full→ 在每条回复后附加每次响应的使用情况页脚。- 按会话持久化(存储为
responseUsage)。 - OAuth 认证隐藏成本(仅显示令牌数)。
- 按会话持久化(存储为
/usage cost→ 显示来自 OpenClaw 会话日志的本地成本摘要。
其他界面:
- TUI/Web TUI: 支持
/status+/usage。 - CLI:
openclaw status --usage和openclaw channels list显示 提供商配额窗口(而非每次响应的成本)。
成本估算(显示时)
Section titled “成本估算(显示时)”成本是根据您的模型定价配置估算的:
models.providers.<provider>.models[].cost这些是 input、output、cacheRead 和
cacheWrite 的 每 100 万令牌美元价格。如果缺少定价,OpenClaw 仅显示令牌数。OAuth 令牌
从不显示美元成本。
缓存 TTL 和修剪影响
Section titled “缓存 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 小时缓存温热
Section titled “示例:使用心跳保持 1 小时缓存温热”agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" heartbeat: every: "55m"示例:使用按代理缓存策略处理混合流量
Section titled “示例:使用按代理缓存策略处理混合流量”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 notificationsagents.list[].params 会合并到所选模型的 params 之上,因此您可以仅覆盖 cacheRetention 并继承其他模型默认值而无需更改。
示例:启用 Anthropic 1M 上下文 beta 标头
Section titled “示例:启用 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 压力的技巧
Section titled “减少 token 压力的技巧”- 使用
/compact来总结长会话。 - 修剪工作流中大型工具的输出。
- 对于包含大量截图的会话,请降低
agents.defaults.imageMaxDimensionPx。 - 保持技能描述简短(技能列表会注入到提示中)。
- 对于冗长、探索性的工作,首选较小的模型。
有关技能列表开销的确切公式,请参阅 Skills。