会话日志单一真相源(Append-only Session Log)
定义
DeepSeek Harness 的核心数据模型:一个 append-only(只追加) 的、带类型的 SessionEvent 日志,是 Agent 交互历史的单一真相源(single source of truth)。模型可见的 LLM 消息历史是从日志推导出来的,从不单独存储;重放就是重新推导。
核心要点
推导而非存储
“A
Sessionis an append-only log of typedSessionEvents — the single source of truth… The LLM message history is derived from the log, never stored separately; replay is re-derivation from the same events.”
Session 是一条只能往后追加的、带类型的 SessionEvent 日志,是唯一真相源。大模型的消息历史是从这条日志推导出来的,从不单独存一份;所谓「重放」,就是用同一批事件重新推导一遍。
核心不变量:模型可见 ⟺ 已记录
“Model-visible means logged. Anything that reaches a model request must be reconstructable from the log, and a runtime invariant asserts it.”
这是 DSH 最硬的一条工程约束:任何进入模型请求的内容,都必须能从日志重建;新增一个”模型可见的输入”就必须新增一个 session event 类型。运行时断言强制此不变量。
一切派生自同一条流
官方公告原文:
“Everything the model sees is recorded in an append-only session log… Resume, fork, search, and replay all operate on the same event stream.”
Fork(分叉)、resume(续跑)、transcripts(转录)、telemetry(遥测)、persistence(持久化)都从这同一条事件流派生。
事件类型可扩展
SessionEventMap 是 merge-extensible 的:插件可通过 TypeScript declaration merging 声明额外事件类型(如 compaction 加 compaction/*,hook bridge 加 hook/invoked、hook/result)。
与日志相关的典型事件
turn/start、turn/end、step/start、step/end、user/message、assistant/chunk、assistant/message、tool/* 等都是 durable session events。
与既有知识的关系
这一设计呼应了 pi-coding-agent最小化设计 里 Mario Zechner “文件即接口”的思想——但把”文件系统即真相源”提升为”事件日志即真相源”:状态不锁在模型内存里,也不散落在文件里,而是统一为一条可重放、可审计、可派生的 append-only 流。