公司动态

A8 · 会话日志即真相源 + 能力 Seam 模型

📅 2026/8/25 6:01:38
A8 · 会话日志即真相源 + 能力 Seam 模型
A8 · 会话日志即真相源 能力 Seam 模型developer previewAPI 可能变更。1. 不变式Model-visible means logged模型所见即已记录Model-visible means logged。抵达模型请求的一切都必须能从会话日志重建并由一项运行时不变式断言。因此新增一项模型可见输入 新增一个会话事件扩展SessionEventMap并从日志渲染。fork、resume、transcript、遥测、持久化全部派生自这条SessionEvent流。2. 会话日志结构// packages/core/session/src/types.ts:236exportinterfaceSessionEventMap{turn/start:{turn:number}turn/end:{turn:number;reason:TurnEndReason}step/start:{turn:number;step:number}step/end:{turn:number;step:number}user/message:UserMessageassistant/chunk:{turn:number;step:number;chunk:StreamChunk}assistant/message:{turn:number;step:number;message:AssistantMessage}tool/call:{turn:number;step:number;callId:CallId;name:string;arguments:string}tool/result:{turn:number;step:number;message:ToolResultMessage}// ...}deriveMessages()从中投影出模型历史原始assistant/chunk保证回放与 UI 保真// packages/core/session/src/index.ts:726deriveMessages():Message[]{// ... 从 this.log 派生带生成缓存return[...this.derived]}fork / resume 通过CreateSessionOptions.seed携带SessionEvent[]回放SessionStore.fork(source, boundary?, childSessionId?)支持派生会话。3. 能力 Seam 模型一个seam是可替换能力含三角色Service Definition声明接口Service Provider实现接口Consumer使用接口通常是面向模型的工具文档docs/capability-seams.md把每个 ctx key 标注为core/seam/bundlectx.llmseamimpls:llm-deepseek/llm-pi-ai/llm-replayconsumers:agent-loop/compaction-basicctx.sessions/ctx.systemPrompt/ctx.tools/ctx.agentscorectx.agentLoopbundlectx.sandbox/ctx.storage/ctx.lspseamSessionEvent 日志(唯一真相源)deriveMessages()模型历史Service Definition(接口)Provider (实现)Consumer (工具)作用域隔离由packages/core/scope/src/index.ts的createScope/scopeOf/scopeTarget实现scopeTarget(base, key)把带作用域的事件路由到同 key 监听器无 tag 的监听器保持全局。4. 可运行示例扩展会话事件实现自定义标题// 注册唯一的会话标题提供方importtype{Context}fromdeepseek-ai/cordisexportconstnametitle-providerexportconstinject[sessionTitle]exportfunctionapply(ctx:Context){ctx.sessionTitle.register(async(session){constfirstsession.deriveMessages()[0]returnfirst?first.content.slice(0,40):未命名会话})}5. 核心术语中英对照中文英文说明真相源Source of Truth会话日志能力缝Seam定义 / 提供方 / 消费者三层派生Derive从日志投影消息历史作用域隔离Scope Isolation按 agent 隔离注册6. 官方文档 vs 源码 对照表主题官方文档精确源码路径会话日志reference/#会话日志packages/core/session/src/types.tsSessionEventMapderiveMessagesreference/#会话日志packages/core/session/src/index.ts:726fork / resumereference/subsystems/sessionpackages/core/session/src/index.tsfork/create能力 seamreference/#能力-seamdocs/capability-seams.md作用域reference/subsystems/scopepackages/core/scope/src/index.ts7. 一句话小结会话日志是 dsh 的唯一真相源一切派生于此而 Seam 把「可替换能力」拆成定义 / 提供方 / 消费者三层——两者共同保证了「换一个 provider 就换一整个产品行为」且不破坏回放。