上下文管理
OkBot 把「模型这一轮真正看到什么」和「界面上的完整会话」分开:全量 session.jsonl 始终保留、上滑不受影响;喂给模型的是系统材料(instructions) + 未压缩的会话尾部(session items)。助手与小队共用同一套 Summary + Buffer。
模型每轮所见
- instructions:角色句、花名册、
SOUL.md、召回的持久记忆(置顶 + 相关 / 高命中,非全量)、会话摘要、技能目录等——开跑前从磁盘现拼。 - session items:
session.jsonl里落在压缩标记之后的用户 / 助手 / 工具项。
有 Session 时,模型侧使用 instructions + 未压缩会话尾部;估 token 用当前模型的 contextWindow(换小窗口模型会立刻按新窗口压)。
稳定块(角色 / 花名册 / SOUL / 工具说明)靠前,易变块(记忆 / 摘要 / 技能目录)靠后,利于服务商前缀缓存。
查看 Prompt 上下文
用户气泡悬停 → 查看上下文(开发者模式):按当前 Session + 此刻系统材料重建,结构为 ## instructions + ## session items。
- 截断到该条用户消息;若已有
coveredThroughId,session items 只投影未压缩尾部(与模型本轮窗口一致),更早内容见 instructions 里的会话摘要。 - 这是按此刻系统材料重建的实时投影;之后若静默改过 SOUL / 技能 / 记忆,再点同一条可能与当时略有差异。
上下文压缩(Summary + Buffer)
开跑前若估 token ≥ contextWindow × ratio(新装默认 ratio 0.6),且未压缩尾部长于保留下限,则增量写入 session-summary.json(summary、coveredThroughId、updatedAt),推进覆盖标记。
- 不删
session.jsonl,界面气泡不动;模型只看摘要 + 尾部原文。 - 新装默认多留最近原文(约 8–12 条);仍超出窗口时保留会降到 0。摘要字数受
summaryMaxChars约束(新装约 2000)。 - 工具调用 / 结果以短摘要进入摘要器;结构化字段含目标 / 约定 / 路径 / 未完成等。
- 自动换题压缩(默认开):发送前轻量判定是否新话题;若是则强制压到「只看摘要 + 新消息」。同话题仍保留最近消息。静默进行。
- 设置 → 模型接入 → 上下文压缩可调比例、保留上下限、摘要字数、自动换题与「立即压缩」。
- 需要原文细节时可用
search_history(仅本会话;开箱自动允许,设为「询问」时才审批)。压缩推进覆盖窗口时,还会对掉出窗口的对话增量再抽一轮记忆。
小队与 1:1 相同:各有自己的 session-summary.json,开跑前按该小队窗口估 token。
和自主进化的关系
记忆(候选 → 持久两阶段)/ 技能 / SOUL.md 的静默维护见 自主进化。压缩掉出窗口的对话会触发增量抽记忆。节奏仍是:开跑前读盘(可能压摘要;只注入置顶 / 相关持久记忆)→ 本轮对话 → 跑后「正在进化」→ 只影响之后轮次。
内容根据 OkBot 产品仓库整理,随版本演进更新。