跳到主要内容

令牌使用与成本 (Token use & costs)

Clawdbot 跟踪的是 令牌 (tokens),而不是字符。令牌是特定于模型的,但对于英文文本,大多数类 OpenAI 模型平均每令牌约 4 个字符。

系统提示词是如何构建的

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

  • 工具列表 + 简短描述
  • 技能列表(仅元数据;指令通过 read 按需加载)
  • 自更新指令
  • 工作区 + 引导文件(AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.md,以及新建时的 BOOTSTRAP.md)。大文件会被 agents.defaults.bootstrapMaxChars(默认值:20000)截断。
  • 时间(UTC + 用户时区)
  • 回复标签 + 心跳行为
  • 运行时元数据(主机/操作系统/模型/思考)

请参阅 系统提示词 中的完整细分。

哪些内容计入上下文窗口

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

  • 系统提示词(上述列出的所有章节)
  • 对话历史(用户 + 助手消息)
  • 工具调用和工具结果
  • 附件/转录(图像、音频、文件)
  • 压缩总结和修剪伪影
  • 提供商包装器或安全标头(不可见,但仍计入)

如需实际的细分(针对每个注入的文件、工具、技能和系统提示词大小),请使用 /context list/context detail。参见 上下文

如何查看当前令牌使用情况

在聊天中使用以下命令:

  • /status表情丰富的状态卡,包含会话模型、上下文使用情况、上次响应的输入/输出令牌以及 估计成本(仅限 API 密钥)。
  • /usage off|tokens|full → 在每条回复后附加 逐条响应的使用页脚
    • 每个会话持久化(存储为 responseUsage)。
    • OAuth 认证会 隐藏成本(仅显示令牌)。
  • /usage cost → 显示来自 Clawdbot 会话日志的本地成本摘要。

其他界面:

  • TUI/Web TUI: 支持 /status + /usage
  • CLI: clawdbot status --usageclawdbot channels list 显示提供商配额窗口(不是单次响应的成本)。

成本估算(显示时)

成本是根据您的模型定价配置估算的:

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

这些是 inputoutputcacheReadcacheWrite每 1M 令牌美元价格。如果缺失定价,Clawdbot 仅显示令牌。OAuth 令牌永远不会显示美元成本。

缓存 TTL 和修剪影响

提供商提示词缓存仅在缓存 TTL 窗口内适用。Clawdbot 可以选择运行 cache-ttl 修剪:它会在缓存 TTL 过期后修剪会话,然后重置缓存窗口,以便后续请求可以重复使用新鲜缓存的上下文,而不是重新缓存完整历史记录。当会话在 TTL 过后进入空闲状态时,这可以保持较低的缓存写入成本。

网关配置 中进行配置,并在 会话修剪 中查看行为详情。

心跳可以保持缓存跨空闲间隙 预热。如果您的模型缓存 TTL 为 1h,将心跳间隔设置为略低于该值(例如 55m),可以避免重新缓存完整提示词,从而降低缓存写入成本。

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

示例:使用心跳保持 1h 缓存预热

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

减少令牌压力的技巧 (Tips for reducing token pressure)

  • 使用 /compact 来总结长会话。
  • 在您的工作流中修剪大型工具输出。
  • 保持技能描述简短(技能列表会被注入到提示词中)。
  • 对于冗长的探索性工作,首选较小的模型。

请参阅 技能 (Skills) 了解确切的技能列表开销公式。