# dsh-linghun-memory(灵魂记忆)v0.1.7 技术报告 ## 记忆完全本体化的认知记忆体方案 - **作者**:山越野人 × 岚客(碳硅协作:人类提供意图,智能体撰写) - **版本**:v0.1.7(2026-10-15 发布,GitHub tag + npm latest) - **许可**:AGPL-3.0 - **仓库**:github.com/syyr1987/dsh-linghun-memory --- ## 摘要 dsh-linghun-memory 是一套面向 DeepSeek Harness 的认知记忆体插件,目标是把大模型从「上下文窗口 + 提示词注入」的被动记忆模式,升级为「机制化组织 + 认知主体主动回溯」的主动记忆系统。v0.1.7 的核心贡献是**记忆地图(检索图方案)**:写侧只建图、读侧按图回溯,将沉淀产物组织为四轴导航(情境轴 / 目标轴 / 档案轴 + 证据层)注入读侧,由认知主体沿轴定位、按编号下钻证据。 系统由四部分组成:**收口者灵魂卡**(身份与判断纪律)、**记忆体方案**(读写两侧三型三本体完全本体化)、**目标系统 goal.js**(真实前瞻记忆,读侧残差触发)、**记忆地图**(v0.1.7 检索图导航)。 评测结果:在 LoCoMo-Plus 官方 Memory Awareness Judge 上实现 **16/16(100%)满分**;白板按图回溯全量 401 题 **83.04%**,首次超过候选注入方案(80.05%);BEAM 记忆本体投影使隔离基线从 60 提升到双管齐下 **85/90**。 --- ## 1. 背景与问题 大模型的长程记忆能力长期受制于三个结构性缺陷: 1. **上下文窗口有限**:单次对话只能携带有限 token,跨会话的持久知识无法常驻。 2. **RAG/提示词注入是「匹配」而非「记忆」**:检索命中靠词面相似度,语义远距联想(如「一次家庭旅行」激活「长期财务规划」目标)是检索盲区;注入的是候选片段,不是结构化的认知状态。 3. **模型外部没有状态**:主流方案让模型在上下文里「记住」,但信念、目标、关系等高阶状态没有独立于模型的持久载体,也无法随时间演化(建立→推进→达成→放弃)。 dsh-linghun-memory 的回答是:**记忆不应该只是「内容」,而应该是「结构 + 机制」**。写侧按本体类型结构化沉淀,读侧由认知主体按导航图主动回溯;目标、价值观等前瞻性状态有独立的状态机和激活机制,不依赖词面匹配。 --- ## 2. 系统设计 ### 2.1 总体架构 ``` dsh-linghun-memory ├── identity.js 收口者灵魂卡(身份 + 判断纪律,随插件注入) ├── memory.js 海马体记忆布局(暖态/冷储/序时账/三本体) ├── goal.js 目标系统(目标本体 + 状态机 + 读侧残差触发) ├── ontology.js 记忆本体投影(主题节点 + 别名命中 + 原子写盘) ├── map.js 记忆地图(四轴导航 + 按图回溯纪律)[v0.1.7 新增] └── index.js 工具注册与注入编排(memory_* / linghun_goal_* / memory_project / renderMemoryMap) ``` 四大模块一体交付,独立于原 dsh-linghun 演进(两条线并行,互不覆盖)。 ### 2.2 收口者灵魂卡(identity.js) 随插件注入的认知架构垫底,三层纪律: - **DEFAULT_IDENTITY**:收口者身份锚点——「大模型提供直觉,你做收口」;行为纪律(承接即预检、拒绝伪约束)、方法论工具箱、成长协议(海马体 memory_* 主动沉淀)。 - **DEFAULT_JUDGMENT**:边界判断纪律——模糊概念/悖论/身份/能力/知识/伦理七类边界扫描 + 置信度声明 + 价值排序(诚实 > 友善 > 有用)+ 判分收口职责。 - **MEMORY_DISCIPLINE**:记忆使用纪律(记忆体适配版)——注入段按序承载「知识本体 → 规则本体 → 事件时间线 → 冷储摘要」;需要近期具体事实时用 `memory_read` 按需直读本体(查证 = 查节点),读到即用 `memory_touch` 标记。 ### 2.3 记忆体方案(memory.js + ontology.js) **写侧(memory_append,结构化三型):** | 类型 | 本体 | 结构 | |---|---|---| | `event` | 记忆本体(事件时间线) | 主语 \| 动作 \| 宾语 \| 关联实体 \| 细节 | | `fact` | 知识本体(精确值) | 实体 \| 属性 \| 值 \| 来源# | | `rule` | 规则本体(纪律) | 一句可执行纪律 | 一条目一事实,置信度三档(high/medium/low),低置信注入带【低置信·需验证】标记;`update` 翻转旧条目(标记 wrong,注入时排除,绝不引用已废弃事实)。旧类别在解析层归一化:decision/preference → rule、experience → event、identity → fact。 **读侧(warm 按 kind 分组原生渲染):** 不再需要外部投影脚本——海马体自己就是三本体。回答纪律:定位(时间窗口 + 主题命中)→ 精筛 3-8 条 → 翻译成人话;查到的照实说、口径写清楚、没查到明说没有。 **读写沉淀闭环:** - `memory_read`:按需读取暖态近期记忆(支持 [n] 编号 / 本体直读) - `memory_touch`:标记「刚刚被用到」,吃灰管理(一直不用的沉底挤出) - `memory_consolidate`:沉淀——event → 记忆本体时间线、fact 高置信 → 知识本体、rule → 规则本体;冷储归档 episodic - 序时账(journal):每次对话全量留痕,不筛选 **存储布局($DSH_HOME/linghun/memory/):** ``` warm.md # 暖态工位:近期记忆(遗忘梯度) cold.md # 冷储摘要:沉淀后的知识/规则(注入时优先读) memory_ontology.md # 记忆本体档案(事件时间线) knowledge_ontology.md# 知识本体档案(精确值) rules.md # 规则本体档案(纪律) ontology.md # 记忆本体投影(主题节点,BEAM 机制回灌) episodic/ # 冷储归档 YYYY-MM-DD.md journal/ # 序时账 YYYY-MM-DD.md goals/goals.json # 目标本体(goal.js) ``` ### 2.4 目标系统(goal.js) **目标 = 记忆的骨架**:事件/状态/信念都挂在目标上;目标让认知循环「实践→认识→再实践」有未来维度——不只提炼过去的因果,还提炼想创造的未来。 **写侧(linghun_goal_update)**:目标信号合并(new/progress/change/achieve/abandon),同 speaker 同主题自动合并不重复建档;价值观/底线陈述(I believe in… / I refused to…)也收录(belief 域);high/medium 目标附 1-2 条 **Bridge 触发词**(triggers:什么处境会激活它)——写时轻量结构化、不穷举。 **读侧(linghun_goal_get)残差触发**:借鉴 MADELEINE(arXiv:2610.01118)的残差联想——纯相似度是 goal/value 类联想的盲区(MADELEINE 实证漏检 33–43%),目标激活分补上: ``` 触发分(q, m) = α·sim(q, m) + β·goalActivate(m | q) goalActivate = stateW × (0.25·domainHit + 0.35·bridgeHit + 0.40·sim + 0.15) stateW:active=1 / paused=0.5 / achieved=0 / abandoned=0 ``` Bridge 命中(触发词与当前处境共现 ≥2 token)补上语义远距联想;achieved/abandoned 目标不再触发。主题域词典(DOMAIN_LEXICON)覆盖 money/family/career/health/travel/belief/lifestyle/art/education/community/relationship 等十余域,中英双语词面启发、离线零成本。 **两条核心纪律:** 1. 不做「匹配判断」,做「目标激活」——reranker 匹配视角在目标类联想上反而降分(52.4 → 40.9),目标主线注入必须做成「这条处境激活了哪个目标」而非「这条消息匹配哪条记忆」。 2. 写侧只抽象归纳独立沉淀 + 少量 Bridge 锚点,绝不写侧穷举——对比 T-Mem/HyperMem 的千次写时调用,成本低两个数量级。 **目标证据通道与导航轴的分离(v023 验证)**:目标证据通道 = statement-only 全量注入(去 triggers/priority 噪声,防干扰对话证据);导航轴 = 带 triggers(帮助模型远距联想)。即 triggers 是导航线索,不是答案内容。 ### 2.5 记忆地图(map.js,v0.1.7) **核心思路:写侧只建图、读侧按图回溯。** 写侧把沉淀产物组织成四轴导航注入读侧,不预判问题、不替读侧做排序与候选选择;读侧看图定位(题目线索落在哪个轴/哪个主题域)→ 沿轴翻到候选 → 用 `memory_read`/`memory_journal` 下钻证据 → 引用作答;能解决就停。 **四轴 + 证据层:** | 轴 | 内容 | 作用 | |---|---|---| | 情境轴 Situations | 暖态条目主题索引 + [n] 编号指针 | 近期在谈什么 | | 目标轴 Goals | 目标速览:domain/state/priority/statement | 要达成什么 | | 档案轴 Archive | 本体节点索引:知识/规则/事件时间线/冷储 | 长期沉淀了什么 | | 证据层 Evidence | 序时账索引 + 归档索引 | 原文在哪(可时间窗口下钻) | 地图是索引密度(默认 2000 字预算、不倾倒),细节由认知主体下钻;编号对齐 `memory_read` 原始 parseWarm 索引;`map.enabled=false` 可关。与 v018 白板按图回溯评测的关系:白板版把全量档案渲染成地图注入(无下钻工具),本模块是 DSH 认知架构版——地图只放「轴 + 指针」,细节用已有工具下钻,记忆预算不被地图吃光。 ### 2.6 本体投影(ontology.js,BEAM 机制回灌) BEAM 1M/10M 双档实验验证:把 warm 记忆按主题桶聚合成本体投影(build_ontology_v1/v2),组装侧「本体主题索引优先 + BM25 兜底」是隔离基线 60 → 记忆本体 70 → 双管齐下 85/90 的关键一环。本模块把该机制沉淀为海马体布局的一等公民(ontology.md),提供 `memory_project` 工具:warm 按主题桶 LLM 聚合 → ontology.md 主题节点,组装侧「本体主题索引优先 + BM25 兜底」;主题别名命中(TAG_ALIAS 同构)优先,无本体时退回纯 BM25;写盘幂等(内容不变不写盘)。 --- ## 3. 评测结果 ### 3.1 LoCoMo-Plus(16 题 · 独立 home · 官方 Memory Awareness Judge) | 版本 | 成绩 | 关键变化 | |---|---|---| | v0.1.4 | 14/16(87.5%) | 基线 | | v0.1.5 | **16/16(100%)** | 题 12(college fund 语义远距)、题 13(拒绝谣言价值观)双双转正,零回归 | **机制验证:** - 题 12:college fund 目标靠 Bridge 触发词从排 18/24 → #5(score 0.150)——语义远距联想由目标激活分补上,词面相似度做不到 - 题 13:「尊重隐私、不散播谣言」belief 目标建档后排 #1(score 0.581)——价值观/底线陈述被结构化收录并触发 **结论**:真正的杠杆在目标档案结构化 + 读侧重匹配,不在写侧枚举预算——写侧只需每条目标 1-2 条触发词。 ### 3.2 白板按图回溯(LoCoMo-Plus 401 题全量 · deepseek-chat + 地图注入) | 方案 | 成绩 | |---|---| | v015 候选注入(读侧代劳替模型选候选) | 80.05% | | **按图回溯(读侧放权给图让模型自走)** | **83.04%** | 首次超过候选注入——「读侧放权给图让模型自走 > 读侧代劳替模型选候选」。分组:**goal 型 +13pp**(目标轴红利);**value 型 −9pp**(暴露难桥:行为 ↔ 价值观,需写侧补 triggers)。 ### 3.3 BEAM(认知记忆评测线) | 方案 | 成绩 | |---|---| | 隔离基线 | 60 | | 记忆本体投影 | 70 | | 双管齐下(本体主题索引优先 + BM25 兜底) | **85/90** | 本体投影是 BEAM 双档实验的关键机制,已回灌为 ontology.js 一等公民。 ### 3.4 情境暖冷(MMR + 签名分桶,v2.6) 71.2 / 84.4(情境 = 组织单位;暖态一棵树、切情境冷储、匹配提树恢复)。 ### 3.5 相关评测线上下文 - 401 线 v028 定版 **89.78%**(写侧四元组 statement/domain/priority/triggers 与 goal.js 完全同构) - LoCoMo 情境 v019 显式预检 **88.78%**(机制 > 内容,value +13) - LoCoMo rerun5 **84.9/91.0**(词面 F1 失效,判定需证据条目级) --- ## 4. 设计原则与关键决策 1. **机制化组织优先,提示词兜底**:能机制化的不交语言直觉;结构(三本体/目标/地图)承担组织,提示词只承担纪律。 2. **写侧节制、读侧放权**:写侧只沉淀结构化事实 + 1-2 条 Bridge 锚点,绝不穷举预判(对比 T-Mem/HyperMem 千次写时调用,成本低两个数量级);读侧按图自走,不代劳选候选。 3. **目标激活 ≠ 匹配判断**:reranker 匹配视角在目标类联想上降分(52.4 → 40.9);目标必须是「处境激活」机制。 4. **三本体分离**:事件(记忆)、事实(知识)、规则(纪律)三型三本体,查证 = 查节点,可回溯、可翻转、低置信降权。 5. **地图是导航不是答案**:索引密度控制(2000 字预算),细节下钻,能解决就停。 6. **外挂只补缺不落已有**:大模型已掌握的经典知识不重复落系统,只做模型做不到的事(收口/记忆整合/防御/审计)。 --- ## 5. 局限与后续 - **value 型难桥(已知,v0.1.7 暴露)**:按图回溯中 value 型 −9pp——行为 ↔ 价值观的远距桥是难点,需写侧补 triggers。 - **state 87 条目级锚定(读侧微调,未完成)**:证据条目级锚定尚未收口。 - **value 88 judge 边界(读侧微调,未完成)**:错误模式判定(推理链断裂 vs 表面捷径)的 judge 边界未收口。 - **评测覆盖**:LoCoMo-Plus 是 16 题长对话基准,更大规模(如 401 题白板)依赖独立 home + 全量回放;BEAM 100K 档受题目硬伤影响,机制验证以相位定案为准。 --- ## 6. 版本线(v0.0.1 → v0.1.7) | 版本 | 内容 | |---|---| | v0.0.1 | 记忆体方案(记忆完全本体化):三型三本体 + 读写沉淀闭环 | | v0.1.1 | MMR 排重回灌(BEAM 情境树 v2.6 机制)、目标系统 goal.js 初版 | | v0.1.3 | goal.js 完整接入修复版(含致谢 Zhiyun Shi) | | v0.1.5 | 目标系统增强:Bridge 触发词 + belief 价值观收录 + 目标激活分 → LoCoMo-Plus **16/16 满分** | | v0.1.6 | 目标系统描述对齐 npm(触发 Zenodo 首次存档) | | **v0.1.7** | **记忆地图(检索图方案):四轴导航 + 按图回溯** → 白板 401 题 83.04% | --- ## 7. 结论 dsh-linghun-memory v0.1.7 验证了一条可复现的认知记忆路径:**记忆 = 结构 + 机制,而非内容堆积**。写侧按本体结构化沉淀(三型三本体 + 目标 + Bridge 锚点),读侧由认知主体按记忆地图主动回溯(情境/目标/档案轴 + 证据层下钻),目标系统提供词面相似度之外的「处境激活」通道。在 LoCoMo-Plus 官方判分上 16/16 满分、白板 401 题 83.04% 首次超越候选注入,证明「放权给图让模型自走」优于「读侧代劳选候选」。v0.1.7 是记忆完全本体化路线的第三个里程碑,后续聚焦 value 型远距桥与 judge 边界收口。 --- ## 附录 A:安装与使用 ```bash dsh plugin --profile web add dsh-linghun-memory npm i dsh-linghun-memory@0.1.7 # 或 npm 全局 ``` 核心工具:`memory_append`(写)/ `memory_read`(读)/ `memory_touch`(标记)/ `memory_consolidate`(沉淀)/ `memory_project`(本体投影)/ `linghun_goal_update`(目标写)/ `linghun_goal_get`(目标读)/ `linghun_goal_state`(状态机查询)。 ## 附录 B:致谢 感谢 **Zhiyun Shi** 对本项目的支持与帮助。 ## 附录 C:许可 AGPL-3.0(Copyright (c) 2026 山越野人 & 岚客)