Files
deepseek-harness/packages/session/session-format/README.zh.md
T
Tianyi Cui d58964a010 Merge commit 'be5db297c7' into worktree/session-format-05-v1-v2-chunk-migration
# Conflicts:
#	.agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.i18n.yaml
#	.agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.md
#	.agents/notes/implemented/architecture/2026-08-31-live-assistant-stream-frames.zh.md
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/api/session-controller/src/assistant-stream.ts
#	packages/api/session-controller/src/client/sessions/assistant-stream.ts
#	packages/api/session-controller/src/types.ts
#	packages/api/session-controller/tests/assistant-stream.client.spec.ts
#	packages/api/session-controller/tests/session-history-journal.host.spec.ts
#	packages/api/session-controller/tests/sessions-service.client.spec.ts
#	packages/api/session-controller/tests/transport.client.spec.ts
#	packages/core/agent/README.i18n.yaml
#	packages/core/agent/README.md
#	packages/core/agent/README.zh.md
#	packages/extensions/tool-cordis/src/api-catalog.ts
#	scripts/package-dependency-policy.ts
2026-09-03 22:09:31 +08:00

4.5 KiB

description, kind
description kind
纯函数式相邻 Session 格式规划、无损 JSON 快照、仅标头迁移与物理编解码分派。 package-library

@deepseek-ai/dsh-session-format

English | 中文

概述

dsh-session-format 让持久化代码可以直接还原当前 Session,或组合唯一的相邻全产物迁移序列。它会把每个持久化输入和输出快照为分离的无损 JSON,校验精确的版本推进,并把仅标头的列表读取与正文读取分开。物理分帧、压缩、不可变 generation 命名、排他发布和 Cordis 生命周期行为不属于这个纯函数库。

目录


使用本包

何时使用

当持久化或格式目录代码需要分类物理 Session header、还原当前逻辑值或组合已发布相邻迁移时,使用本库。它不是 Cordis 插件,也没有 profile 挂载行。它不发布运行时不变式伴生入口,因为每个操作都会在返回前校验借入的完整 artifact,且不保留跨调用的可变状态。

入口

const catalog = createSessionFormatCatalog({ currentVersion, codecs, encodeCurrentArtifact, migrations, restoreCurrent, restoreCurrentHeader })
const descriptor = catalog.readHeader(physicalHeader)

createSessionFormatCatalog() 接收每个受支持版本的一个冻结解码器、当前格式的编码器、每组相邻版本的一个迁移,以及当前产物与标头还原器。readHeader() 在不读取事件的情况下返回 currentmigration-requiredunsupportedmalformed 描述符。每个迁移边会先校验自己的目标标头,然后再运行最终的当前标头还原器。正文读取方调用 decodeArtifact()decodeRecoverableArtifact(),然后调用 migrate();写入方只使用经过校验的当前产物调用 encodeCurrent()。冻结的 v0/v1 编解码器导出会保留其格式专用的 packChunks 选项,但不会把这项历史控制加入当前 writer 或通用解码器接口。

可恢复解码器返回已接受的逻辑前缀。编解码器可以丢弃一个格式错误或序号不连续的行及其未提交后缀,但后续成功解码的 turn/end 会使原始问题成为致命错误。


理解实现

实现细节——点击展开

迁移链在构造时校验唯一且无缺口的顺序。当前产物绕过所有迁移回调,只经过当前格式还原器。旧产物在内存中依次运行每个相邻的全产物函数;只有调用方决定是否发布最终结果以及如何发布。

文件 职责
src/chain.ts 相邻计划构造与当前格式绕过
src/catalog.ts 物理版本分派与标头分类
src/json.ts 分离的无损 JSON 快照与通用坐标校验
src/filename.ts 持久化、导出与 fixture 共用的规范 session[.vN].jsonl 文件名

进一步探索


模型体验

Session 还原

模型看到什么

没有直接内容。消费方通过 deriveMessages() 从经过校验的当前产物重建模型历史。

Token 影响

不直接产生 token。

KV Cache 影响

没有直接影响。迁移若改变当前历史,可能改变由请求重建逻辑拥有的缓存身份。

已知限制与延期工作

  • 全产物内存占用——受支持的迁移会物化完整逻辑 Session;只有实测产物规模提出要求时,才会引入流式转换。
  • 仅支持相邻整数版本——本库不暴露 span、稳定事件身份或通用引用重写代数。

开发备注

维护者的工作上下文——点击展开

无。