RikkaHub Token 消耗与长对话 · 上下文窗口管理
Token 是什么
Token 是大模型处理文本的最小单位。1 个中文汉字通常是 1-3 个 token,1 个英文单词通常是 1-2 个 token。每一轮对话消耗的 Token 包括:
| 类别 | 说明 | 占比 |
|---|---|---|
| 输入 Token | 你的消息 + 系统提示词 + 历史对话 + 记忆 + 模式注入 + 知识库匹配条目 + 工具定义(MCP / 搜索) | 通常占大头 |
| 输出 Token | 模型生成的回复 | 通常较小 |
Token 消耗越来越大的原因
每轮对话,所有历史消息都会重新发送给模型。所以:
- 第 1 轮:只有 1 条用户消息 + 1 条助手回复
- 第 10 轮:10 条用户 + 10 条助手 = 20 条消息
- 第 50 轮:100 条消息
这就是为什么"长对话比短对话贵得多"。
降低消耗的策略
策略 1:辅助任务用便宜模型(已在「多提供商」章节提及)
| 功能 | 推荐模型 | 理由 |
|---|---|---|
| 对话 | GPT-4o / Claude Sonnet | 强模型质量好 |
| OCR | GPT-4o-mini / Claude Haiku | 快且便宜 |
| 记忆提取 | 任何便宜文本模型 | 不需要视觉 |
| 标题生成 | 最便宜的 | 只是生成标题 |
策略 2:减小 contextMessageSize
助手设置 → 上下文 → contextMessageSize:
| 值 | 效果 |
|---|---|
| 0 | 包含所有历史(默认) |
| 10 | 只保留最近 10 条用户消息 |
| 20 | 只保留最近 20 条用户消息 |
| 50 | 只保留最近 50 条用户消息 |
设为较小值可以显著降低长对话的消耗。但模型会丢失更早的对话上下文——你需要在"成本"和"连续性"之间取舍。
策略 3:定期开新对话
与其在一个对话里聊 100 轮,不如主题切换时开新对话。优点:
- 上下文干净,模型质量可能更好
- Token 不会无限累积
- 方便后续整理不同主题的对话
策略 4:精简系统提示词和注入
- 系统提示词里删掉废话,只保留真正需要的指令
- 定期清理过时的模式注入、知识库条目、记忆条目
- 不要启用太多技能(每个技能都会注入指令)
策略 5:关闭不必要的功能
- 记忆:如果不跨对话,关掉可以避免额外 Token 消耗
- 思考内容显示:某些模型的思维链也会消耗 Token
- 网页搜索:不需要实时信息时别开
策略 6:选择合适的搜索结果数量
网页搜索 / Custom JS 搜索里的"结果数量"设为 3-5 条即可,太多搜索结果也会注入上下文。
怎么监控 Token 消耗
打开历史抽屉 → 图表图标进入统计页面(详见「聊天深度使用 → 统计页面与 Token 用量」)。你能看到:
- 输入 Token / 输出 Token / 总 Token 每日明细
- 按模型划分的用量(哪些模型最"烧钱"一目了然)
- 每周活跃度热力图
定期看统计页面,能发现你最常用的模型、对话通常多长、哪些功能消耗最多。
上下文窗口的限制
每个模型有不同的上下文窗口大小:
| 模型 | 典型窗口 |
|---|---|
| GPT-4o | 128k token |
| Claude Sonnet 4 | 200k token |
| Claude 3.5 Haiku | 200k token |
| 小模型 / 便宜模型 | 8k - 32k token |
当对话总 Token 接近上下文窗口时:
- 模型可能开始"遗忘"更早的内容
- 继续加内容 → 上下文超限错误
如果你遇到超限错误:
- 开新对话重新开始
- 或把 contextMessageSize 设小
- 或换一个更大窗口的模型
实际场景的 Token 估算
| 场景 | 估算 Token | 说明 |
|---|---|---|
| 简单问答(5 轮) | 1k - 3k | 短对话,主要是输入 |
| 中等对话(20 轮) | 10k - 30k | 历史累积明显 |
| 长对话(50 轮) | 30k - 80k | 历史是主要消耗 |
| 附带长文档(50 页 PDF) | 初始注入 10k+ | 文档提取文本占大头 |
省钱 vs 质量的平衡
RikkaHub 给了你灵活的选项——从"极致省钱"到"极致质量":
- 极致省钱:所有功能用最便宜的模型、小 contextMessageSize、短对话
- 极致质量:对话用最强模型、完整历史、长窗口模型
- 合理平衡:对话用强模型、辅助任务用便宜模型、contextMessageSize 适中、定期开新对话
总结
| 策略 | 效果 | 成本 |
|---|---|---|
| 辅助任务用便宜模型 | 显著 | 零(只是配置) |
| 减小 contextMessageSize | 中等 - 显著 | 低(牺牲一些连续性) |
| 定期开新对话 | 中等 | 零(只是习惯) |
| 精简提示词 / 注入 | 小 - 中等 | 零 |
| 关闭不用的功能 | 小 | 零 |
| 监控 Token 统计 | 帮助发现问题 | 零 |