Token 使用和成本
OpenClaw 追踪 token,而不是字符。Token 是模型特定的,但大多?OpenAI 风格的模型对于英文文本平均约 4 个字符一?token?
系统提示是如何构建的
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??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
这些?input、output、cacheRead ?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? - 保持技能描述简短(技能列表被注入到提示中)?
- 对于冗长的探索性工作,偏好较小的模型?
有关确切的技能列表开销公式,请参阅技能?