结论:只能做子集。 逐层结论 - L1 (context 热上下文) ≈20%:dsh 的上下文压缩是「摘要替换区间」 (dsh-compaction-basic 的 compactSurfaceRegion),不是「按 query 相关性 淘汰 + 迁出到冷层 + 按原时间戳迁回」。CompactionTrigger 接口拿不到 query;MessageBase 无 timestamp 字段,surface 是 append-only + replace, 无法语义插入。 - L2 (coldcontext 冷文档) ≈80%:存储/召回/注入可落,缺 「Peek → 回灌 → Remove」的回收站语义。 - L3 (stablemem 图记忆) ≈85%:memory_blocks/memory_block_edges 结构 完全可映射,node:sqlite 实测可用(含 FTS5);受限于无 embedding 服务。 关键发现 - dsh 无任何 embedding/vector service,需自建(推荐复用 HA 的 http provider HTTP 协议转发,2 人天)。 - systemPrompt.context() 的 AssembleContext 拿不到本步消息正文, 「按本次输入召回后注入」必须走 agent/pre-step waterfall (参考 dsh-time-context 的用法)。 - dsh attachment 是 CAS,与 HA「媒体字节内联在块里、不做引用账本」 的设计冲突 → 媒体块必须裁掉。 工作量(含判据与实测) - L2+L3 子集:36-53 人天 - MVP(L3 + 工具 + 注入面):19-25 人天 - 完全等价(含迁出-迁回):不可行,不报价 报告含 7 章 + 两份附录(HA/dsh 双侧证据索引、环境实测结果)。 原文全程只读,未修改 HologramAgent 仓库。
1.8 KiB
1.8 KiB
HologramAgent-DSH-Memory-Port
评估 HologramAgent 三层记忆系统移植为 dsh 插件的可行性(调研/评估,不产出实现)
报告
结论摘要
只能做子集(四选一中的第三档)。
| 层 | 可移植性 | 瓶颈 |
|---|---|---|
| L1 context 热上下文 | ≈20% | dsh 的上下文压缩是「摘要替换区间」,不是「按 query 相关性淘汰 + 迁移到冷层 + 按原时间戳迁回」;CompactionTrigger 接口拿不到 query,MessageBase 无时间戳 |
| L2 coldcontext 冷文档 | ≈80% | 存储/召回/注入都能落,缺「回收站式 Peek→回灌→Remove」 |
| L3 stablemem 图记忆 | ≈85% | 结构完全可映射(node:sqlite 实测可用),受限于无 embedding 服务 |
可整体搬运的资产:MemoryBlock 值对象、确定性 ID 派生、仲裁/拒答/符号检索算法——这三块与宿主无关。
推荐落地范围:L2 + L3 子集,L1 交给 dsh 自己的 compaction。 工作量(含判据与实测)36–53 人天;压到 MVP(L3 + 工具 + 注入面)19–25 人天。
最小第一步切片(1–2 人天):插件骨架 + Service 注册 + node:sqlite 建 memory_blocks
- FTS5 召回 +
agent/pre-step注入 + 一个最小工具,全程不引入 embedding 依赖。 详见报告 §7。
取证方式
- HologramAgent 源码与
docs/zh/设计文档:全程只读,未做任何修改 - dsh 接口:只读
lib/types/*.d.ts(权威接口),不从lib/*.js实现倒推 - 关键环境结论均有实测(
node:sqlite+ FTS5、onnxruntime-node缺失、libonnxruntime.so位置) - 每条断言标注文件路径与符号名;仅三处标注「推断」:
turn≈FrameTS映射、Intl.Segmenter中文分词质量、人天估算