turn 上下文管理
ContextManager 负责规范化、截断、回卷和补齐 turn 历史。
runtime要读懂 codex,关键不是看“有没有 memory”,而是先分清 turn context、thread history、memory pipeline 和 SQLite state 这四层。
这一段只讲模型真正可见的材料,不把所有底层状态都算进 context。
codex 的上下文不是一次性拼好的,而是围绕 reference_context_item 做“首次全量、之后增量”。
先看组成块,再看顺序。这里最容易帮助普通读者分清“哪些东西会真的进模型”。
ContextManager 负责规范化、截断、回卷和补齐 turn 历史。
runtimereference_context_item 决定首次全量注入还是后续只注入 settings diff。
strategybuild_initial_context() 把环境、权限、指令、人格、插件与协作模式一次性拼装进上下文。
compositionmemory 不是单一数据库,而是 phase1 / phase2 的启动期流水线。
pipelinecompact 重建窗口身份,realtime_context 走独立 startup context 路径。
boundarySQLite、history.jsonl 和 memories/ 分别承担结构化状态、全局历史和记忆产物。
storage不要把记忆想成一个抽象黑盒。这里直接按时间顺序讲“它什么时候生成、存哪、怎么再回来”。
memory 更像启动期后台流水线:先抽,再合,再同步,而不是每轮都直接写一个统一数据库。
很多误解都来自把 transcript、summary、文件、数据库和向量库混成一层看。
state、logs、history 和 memories 分层得很清楚,不能混成一个“数据库”。
这部分是防误解,不是额外功能清单。
把 ContextManager 误认为原始聊天日志容器。
context、memory、state/history 是四层不同职责,不是同一个东西的不同叫法。
每个结论都要能往下追。这里列的都是站内证据入口,不是营销材料。
如果你想继续看原文、行号和分专题分析,可以直接跳到证据页。
站内会把这个 repo 对应的 docs 文件按行展开,方便核对路径和行号。
你也可以直接从总览、仓库入口页和 5 篇专题页继续追。