dsh-memory-lite:按需检索的分层记忆库

前言

DeepSeek Harness (DSH) 的核心设计是轻量与插件化。在处理 Agent 记忆时,现有方案大多选择“每轮自动注入”,导致记忆内容在每轮对话中重复发送,造成不必要的 Token 浪费。dsh-memory-lite 针对这一痛点,将记忆处理为分层 Markdown,仅在查询时返回命中片段。

这个插件通过“零常驻”和“零依赖”设计,将一次查询的记忆读取量控制在约 700 字符左右,相比全量读取节省约 92%。它既是 DSH 插件,也提供独立 CLI。

核心设计:三条不变量

  1. 零常驻:记忆不进系统提示。插件版唯一的常驻是一个工具 schema(约 50-100 token),记忆内容仅在查询时生成。
  2. 零依赖:仅使用 Node.js 内置模块,不引入数据库、服务端或后台进程。
  3. 可溯源:每条记忆都附带 source 标记,通过 verify 命令可核对回原始会话。

安装与启用

通过以下命令将插件安装到指定 Profile:

dsh plugin --profile web add github:MiHjy12138/dsh-memory-lite

安装完成后需要重启后端(DSH 装配规则:新增 bundle 不会热加载)。

使用方式

本项目提供两种用法,两者共享 src/lib.mjs 实现。

方式 A:作为 DSH 插件

安装后,Agent 的工具表中会出现 mem_query。Agent 可直接调用该工具检索记忆。记忆库默认位于工作区的 memory/ 目录下。

方式 B:作为 CLI 工具

不依赖 DSH 环境,直接使用 Node 运行。适用于手动检索或非 DSH 场景。

工作流与命令

使用插件前,需要完成数据的采集、提炼与构建。

  1. 采集素材
    扫描会话日志,生成 .staging 目录下的素材文件。
   node src/mem.mjs collect
  1. 构建记忆库
    将素材提炼为 SUMMARY.md、INDEX.md 和 topics/*.md。
   node src/build.mjs
  1. 查询记忆
    根据关键词检索,只返回命中片段。
   node src/mem.mjs query "powershell bom" --n 5
  1. 溯源核对
    验证提取的记忆是否准确对应原始素材。
   node src/verify.mjs examples/extracts-example.json --staging examples/staging

功能特点

  • 分层 Markdown:包含顶层 SUMMARY.md(一句话提炼)、索引 INDEX.md 和按主题分区的 topics/*.md。
  • Token 优化:实测查询一次记忆从 11,819 字符降至 738 字符,节省约 92%。
  • 零依赖:纯 Node.js 实现,跨平台。
  • 摘要税低:常驻摘要仅占全文的 0.9%。

适用场景

适合对 Token 成本敏感、需要人工或 Agent 精确控制检索内容的场景。不适合需要语义召回、知识图谱或跨机器同步的场景。

总结

dsh-memory-lite 通过分层存储和按需检索,解决了 Agent 记忆检索时的 Token 浪费问题。它不提供自动注入,而是通过显式的 mem_query 工具或 CLI 命令来管理记忆,确保每次交互只传递必要的信息。

GitHub 仓库
DSH 插件目录

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜