目录

v0.5.23:记忆压缩、查询与多路召回性能优化

在 GitHub 上查看源文件

本补丁版本发布 PR #330 中的算法优化,减少数据量增长时的重复扫描和分配:

  • **运行时记忆压缩:**一次索引原内容,按三个优先级稳定分组,并增量计算 UTF-8 字节数;从平均文本长度 L 下的 O(N²L) 降为 O(N+B),B 为总文本字节数。
  • **项目档案查询:**只为最终返回的档案生成摘要,保留实时正文读取、评分、结果顺序和最近访问时间更新。
  • **记忆空间发现与多路召回:**使用请求内 Map/Set 合并空间目录、解析固定空间和汇总质量计数器;保留完整候选排序、权限检查、失败处理与 Provider 调用顺序。
  • **批量写入准备:**按目标复用同步解析,使用可追加的分组数组和 Set,消除反复复制与扫描;Provider 持久化行为不变。
  • **Holographic 查询:**精确计算 token 集合交集,并以稳定的有界堆选择前 k 项,将有限分数的排名成本从 O(M log M) 降为 O(M log k+k log k)。小集合与非有限分数沿用原排序路径。

性能证据

同一机器、同一依赖下测试 N=1、10、100,并补充 N=1000。以下是 N=1000 时的每次操作中位数:

本地操作 优化前 优化后
Runtime 压缩 41.347 ms 4.047 ms
Document 搜索 40.484 ms 22.165 ms
多路召回编排 254.008 ms 9.834 ms
固定空间召回编排 2154.052 ms 9.400 ms

这些是合成数据、预热文件缓存下的本地延迟;召回使用本地 adapter 夹具,不代表远程 Provider 或 LLM 的端到端延迟。复杂度结论同时来自代码分析与确定性工作量测试,不能单凭耗时证明。完整规模矩阵、参数、保留同阶的路径与测量限制见算法审计报告及其原始指标。

升级与兼容性

从 v0.5.22 可使用记忆系统 → 状态 → 检查版本 → 更新,完成后重启 DSH。命令行安装或更新到精确版本:

sh
dsh plugin --profile web add dsh-mnemon@0.5.23

安装后重启正在运行的 DSH;新安装可在插件页选择立即启用。明确指定版本可避免包管理器的发布等待窗口影响版本选择。较早的桌面安装升级方式见兼容性与升级。

沿用 v0.5.22 的 DSH 兼容范围,完整开发 Profile 使用 Node ^22.19.0 || >=24.0.0。存储格式、配置、权限与 UI 流程不变,无需迁移已有记忆;不新增 Starter SDK 导出,插件 peer 下限不变。

变更的包

包 原版本 新版本
dsh-mnemon 0.5.22 0.5.23
dsh-mnemon-source-runtime 0.5.11 0.5.12
dsh-mnemon-source-documents 0.5.8 0.5.9
dsh-mnemon-source-memory-spaces 0.5.14 0.5.15
dsh-mnemon-provider-holographic 0.5.5 0.5.6

Starter 精确锁定这四个插件的新版本,其余 13 个组件版本不变。外部依赖的锁定版本与 peer 解析图保持不变。

验证

算法变更在合并前通过 2063 项本地测试(9 项可选集成测试跳过),以及独立插件、打包安装、真实 Headless、Node 20/22/24 与 Windows 的对应 CI 检查。等价性回归覆盖稳定排序、UTF-8 容量边界、实时文件读取、质量计数器、权限和有序批量回执。

版本 PR 重新验证版本化组合。发布流水线在创建 GitHub Release 前检查冻结制品、Registry 完整性、全部 17 个插件的安装组合,以及从 v0.5.16 的真实 Registry 升级。实际执行结果见仓库的 Publish to npm 工作流。

上一版本:v0.5.22。