Repository navigation
Releases: syyr1987/dsh-linghun
Releases · syyr1987/dsh-linghun
Release list
v1.0.0 — BEAM 实测最优解定版
v1.0.0 是当前路线的终版(BEAM 实测最优解)。
定版配置
- 核心回退 0.4.2:三本体(记忆/知识/规则)+ journal 秒级检索 + 暖态默认注入
- identity 收敛为最小有用 3 条纪律:不编造 / 背景收束 / 置信度宁缺毋滥
BEAM 评测结果
| 规模 | 隔离基线 | 双管齐下 v4 | 加权 |
|---|---|---|---|
| 1M | 60.0/70.0 | 85.0/92.5 | 92.5 |
| 10M | 60.0/65.0 | 90.0/92.5 | 92.5 |
双场景加权收敛 92.5——规模(1M↔10M)影响不大,决定分数的是三本体结构 + 纪律收束。
100K_1 写侧协议
- v13(0.4.2) = 70.0/82.5 最优
- 纪律四版(带/无/最小3条)均 70.0/82.5 持平,解释式 55.0/70.0 最差
- 0.4.2 vs 0.4.4+ 差 5pp 严格(0.4.4 关闭暖态注入为负优化,已回退)
路线分叉
接下来的版本与 v1.0.0 之前是两条路线:素材侧结构(捞手语义捞取 + 来源标注 + 程序化聚合 + 主智能体收口)在 linghun-assembler 另开分支演进,与本版本核心解耦。
v0.2.16
v0.2.15 — 协议切换 GPL-3.0
协议从 MIT 切换为 GPL-3.0(版权署名保留:山越野人 × 岚客)。
- LICENSE 全文 + package.json license 元数据 + README/PROJECT 同步
- 功能无变更
v0.2.14 — A2A 记忆管理团队联动
v0.2.14
🆕 新增能力
- A2A 记忆管理团队联动:
memory_read共享 linghun-assembler 认知循环团队台账——判官履历、编辑交付、史官时序(team/archivist/timelines)反哺主脑,子智能体的判断让主脑看见。 - 团队认知台账扩展:判官履历 + 编辑交付记录可共享(
team/judge/history.jsonl、team/editor/bundles.jsonl)。
📝 描述同步(v0.2.13 已含能力补全)
- 海马体三层记忆:warm → episodic 情景归档(同日追加不覆盖)→ cold 摘要注入
- 记忆序时账:
journal_read按天归档原始对话流水 - 低置信记忆降权遗忘:high/medium/low 置信度;low 注入带【需验证】;
wrong翻转排除注入 - 与 linghun-assembler 零配置联动(默认约定路径)
要求:DSH >= 0.1.0-rc.7(< 0.2.0),Node.js >= 20.18。
v0.2.13 — 组装模式零配置联动
v0.2.13(2026-09-29)
配合 dsh-linghun-assembler@0.1.1 的零配置联动。
变更
memory.assembler.injectPath留空时回落到$DSH_HOME/linghun/memory/assembled.md(与 assembler 侧output.injectPath默认约定路径同值)→ 双插件装完零配置即联动,组装素材包自动注入。- 自定义路径仍可覆盖(配置或
LINGHUN_MEMORY_OVERRIDE环境变量优先)。
验证
- 57/57 测试全过,真实
~/.dsh零污染。 - 建议与
dsh-linghun-assembler@0.1.1一起安装,办公电脑升级后重启 DSH 生效。
v0.2.12 — 测试隔离跨平台修复(阿澄复查 N1/N2)
v0.2.12(2026-09-29)
阿澄复查 v0.2.11 后修复测试隔离的跨平台缺陷。插件运行时代码无改动。
修复
- 测试隔离改用 DSH_HOME(跨平台):v0.2.11 的 withEnv 用
process.env.HOME只在 POSIX 生效,Windows 的os.homedir()读USERPROFILE不读HOME,导致办公电脑(Windows)上npm test时 4 条回归测试失败(ENOENT 读不到临时文件)且把测试夹具写进真实记忆(journal)。 - 三处 HOME 用法统一改为
DSH_HOME(resolveDshHome优先级最高,且全平台直接从 process.env 读取,不经过os.homedir())。 - 验证:57/57 全过;真实
~/.dsh零污染(journal/warm 字节数与跑测前完全一致)。
背景
- v0.2.11 已修复阿澄自检 F1-F5(收尾评估从未运行、kind 过滤非法取值、同日沉淀覆盖、冷储丢暖态、warm 上限错位),本次复查确认六条缺陷代码层全部修对。
- 办公电脑升级后需重启 DSH 使修复生效。
v0.2.11 — 收尾序时账/沉淀链路缺陷修复(阿澄自检 F1-F5)
v0.2.11 修复说明
依据 dsh 阿澄对 v0.2.10 的自检报告(49/49 测试通过但存在三处静默失效),修复 5 个缺陷,测试从 49 → 57 全过。
F1(致命)收尾评估/序时账从未运行
collectTurnTranscript之前读取session.log ?? session.events ?? [],在真实 DSH Session 契约(Inspect 形态)上这两个字段不存在,导致每轮收尾评估与序时账记录静默空转。- 修复:防御性事件获取,
snapshotEvents()优先,兼容旧版log/events字段;取不到时空转,不阻塞主流程。
F2(中)kind 过滤失效
runtime-context不是 MessageSource.kind 合法枚举(只有 user / plugin / model / tool),原过滤条件永远不命中。- 修复:收紧为
plugin/model,运行时上下文/插件注入与模型侧注入都会跳过。
F3(高)同日二次沉淀覆盖
- 归档暖态用
writeFile写 episodic,同一天第二次沉淀会截断覆盖。 - 修复:改
appendFile+ 按时刻分段(## HH:MM),同日多次沉淀按时间追加。
F4(高)冷储倾倒原文 + 暖态被挤出注入
- 冷储把 warm 原文整段追加进 cold,体积膨胀;
rendered.slice(0, cap)从尾部砍,冷储在前导致近期暖态被挤出注入预算。 - 修复:新增
summarizeWarmForCold(每条一行锚点摘要 +全文见 episodic/指针);注入渲染暖态优先 + 按条目边界截断(truncateKeepHead),不再切在字符中间。
F5(中)warm 上限错位
- warm
maxBytes默认 1MB 而注入预算默认 6000 字,暖态可涨到 1MB 但 98% 结构性进不了注入,autoConsolidate 成为死代码。 - 修复:默认降至 64KB,与注入预算同量级。
测试
- 新增 8 个回归测试覆盖 F1-F5(57/57 全过)。
- 测试 harness 增加
withEnv/withEnvAsync:在 HOME 有效期内触发回调与 execute,杜绝测试写入真实~/.dsh。
安装
```bash
npm i dsh-linghun@0.2.11
```
v0.2.10 — memory.assembler 注入通道
变更
- memory.assembler 配置化:新增
memory.assembler.injectPath+memory.assembler.label,支持从外部素材包注入记忆(配合 dsh-linghun-assembler 使用) - 环境变量兼容:
LINGHUN_MEMORY_OVERRIDE继续可用 - 向后兼容:不配置时回退默认 warm 注入,轻量用户零感知
测试
49/49 全过(+4:assembler 默认值/配置优先/环境变量兼容/不可读回退)
v0.2.0 — Engineering memory guardrails
v0.2.0: Engineering memory guardrails
Memory timing is now infrastructure, not model behavior:
- End-of-turn assessment: on every
turn/end, the plugin forces one LLM pass to decide whether this turn has memorable items (fact / decision / preference / experience). Worth remembering → auto-append to warm memory. No longer relies on the model remembering to callmemory_append. - Threshold auto-consolidation: when warm memory exceeds
maxBytes × triggerRatio, the plugin archives warm →episodic/<date>.md+ merges cold summary before writing new entries. The model never hits a "memory full" error and never has to schedule its own consolidation.
Config
- id: linghun
config:
memory:
assessment: { enabled: true, maxChars: 4000, maxTokens: 300, temperature: 0.2 }
autoConsolidate: { enabled: true, triggerRatio: 0.8 }Quality
- 13/13 unit tests pass
- Headless end-to-end smoke: both hooks verified (clean transcript → LLM → parse → append; threshold → archive → cold merge)
- npm:
dsh-linghun@0.2.0published