
dsh-trivium 0.4.8 —— 装上就有跨会话记忆 + 会话图,不另起服务
DSH 把「一切皆插件」做得干净,但原装运行时没有跨会话的图记忆,也没有把一次长会话的压缩与分叉画出来。
dsh-trivium 就是为了补这两块而存在的进程内内核:它随 DSH 进程加载 TriviumDB,每个工作区一个文件 <workspace>/.dsh/trivium.tdb,不另起服务,安装即用。从 0.3.0 到 0.4.6,它从「四个工具 + 一张短地图」长成了「记忆内核 + 会话图」两层结构——记忆负责跨会话,会话图负责把当前这次对话的脉络看清楚。
很多方案默认「再跑一个服务 + 向量库」,带来端口、进程、运维三件套。dsh-trivium 在 DSH 进程里直接持有内存图,退出时落盘到 .dsh/trivium.tdb。一个工作区一个文件,git 也能跟着走。

设计选择 | dsh-trivium | 常见默认 |
|---|---|---|
运行形态 | 进程内内核,单文件 .tdb | 独立服务 + 向量库 |
接口 | 4 个工具 + 会话图 UI | 往往更多 / 变动 |
默认注入 | 少(≤400 token 地图 + 可选芯片) | 每步自动灌 |
记忆结构 | 图(边一等公民) | 扁平片段 / 向量 |
会话情节 | 第三标签「会话图」:压缩方框 + 分叉 + 记忆芯片 | 无 / 另装工作台 |
人能改错 | JSON 真回写 + 可视化 + 芯片条 | 视实现 |
会话 A:用户说「记住,鉴权走 header X」,抽取或 ctx_remember 写入 preference,用 ctx_link 挂到实体 AuthGateway。
会话 B:模型 ctx_find("鉴权") 命中,返回 L0 摘要 + 实体 path;ctx_read(id) 取全文和入边;find("AuthGateway") 还能打到正文里根本不出现该名的邻居。记忆在进程内的图里常驻,不在 prompt 里接力。
会话图那一侧:会话 A 聊得长、被 DSH 自动压过一次,标题栏「会话图」里就出现「历史方框 → 当前方框」;你点历史方框可以从那个检查点 fork 出一个子会话,画布上长出一条分叉。记忆在两层里各管各的,互不污染。

节点分实体 / 偏好 / 决策 / 经验四类;边是内置语义:about、decided、broke/fixed、until(决策截止日,过期默认不进 find,除非查询在问这个期限)。ctx_find 返回 L0 摘要 + 边路径(入边形如 <-label-id);若查询直接点名某实体,即便邻居正文不出现该名,也会带上其未过期的 about/decided/broke/fixed 邻居。图检索按实体摸到邻居,关系本身承载线索

ctx_find 检索:L0 摘要 + 实体 path(含入边 <-label-id)
ctx_read 按 id 读全文与入边
ctx_remember 显式写入
ctx_link 建边三者互斥或并存都受控,默认全关(芯片也不全勾)。动态记忆走 agent.inject(),不写 system prompt,避免 persona.complete: true 把注入静默丢掉)。

入口:当前会话标题栏 对话 / 轨迹 / 会话图 的第三标签。这是情节图,不是记忆编辑器;改名、合并、全局开关仍走设置页。
方框
/compact。分叉
点方框上的分叉图标,走宿主的 session.fork:子会话出现在侧边栏,前缀(含当时已压的摘要)由 DSH 拷过去。有检查点时从那个检查点切开;只有「后续」时就从你点的方框连出去。在对话页用 DSH 自带 fork,切回会话图也能看到对应分支;侧边栏归档子会话后,图上分叉方框跟着消失。画布支持空白处拖动平移、滚轮缩放。
记忆芯片
会话图顶部可展开勾选,列出未归档的 preference / decision / entity(experience 不进芯片,避免太吵)。
操作 | 生效时机 |
|---|---|
勾上某条 | 当前这段里你再发的下一条带上它(L0,≤300 token) |
取消勾选 | 再下一轮不再带 |
新增 | 点一次写入一条;整段粘贴也是一条 |
选择 → 归档 | 软删除:find / 短地图 / 芯片不再出现,节点还在 .tdb |
选择 → 删除 | 从 .tdb 去掉,不可恢复 |
已经发出去的轮次 | 不回写 |
芯片按会话隔离;fork 出的子会话默认不继承钉选(分叉对话框可开「分叉时继承钉选」)。短地图仍 session-start 自动带,不占芯片位。建议标记只是提示,不会自动勾上。

Settings「Trivium 记忆」可搜、看邻居、改名改正文、合并同类型节点、归档删除。
如果你同时用其他 Agent 工具,记忆可以一次性互通——但不是持续双向同步,只是单向迁移,之后各自演进。
同一套一次性严导入现在认三样:WorkBuddy 的 MEMORY.md、Claude Code 的 CLAUDE.md、Codex 的 AGENTS.md。都是单向迁移、不吞会话 jsonl、不双向同步。
方向一:外部 → dsh-trivium(严导入)
.dsh/trivium.tdb。方向二:dsh-trivium → 外部(投影)
提醒:抽取与导入都偏严会漏,导入后建议扫一遍邻居、手动补
about边把偏好挂到正确实体上。
官方 DeepSeek chat API 没有 embeddings,也没有本地模型。可填 OpenAI 兼容 URL 开远程向量化,但不开也能用:关键词 + 图遍历。调用失败只记日志,Agent 继续。
重启 dsh web,打开工作区。别把本仓库拷进 DeepSeek_Harness——它是插件,不是补丁。
dsh-trivium(0.4.8),MIT@deepseek-ai/dsh@0.1.1-rc.2(及 0.1.0-rc.8)上验证原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。