前言¶
DeepSeek Harness(DSH)通过插件化架构提供灵活的智能体开发能力。dsh-memory 插件旨在解决长对话中的记忆断层问题,填补了现有插件(如仅处理当前会话压缩或持久化存储但无总结机制)之间的空白。它通过自动总结会话并注入笔记,实现智能体对过往对话的长期记忆。
核心功能¶
- 会话结束自动总结:在会话结束时自动将对话内容蒸馏成长期笔记。
- 自动注入笔记:在下一次会话开始时,自动注入全局笔记及当前工作区笔记作为提示段。
- 本地存储:所有数据存储在本地
$DSH_HOME/memory/目录下。 - 无 UI 配置:通过环境变量进行配置,不提供图形界面。
安装与启用¶
安装插件需要使用官方命令,安装后必须重启 profile 以挂载宿主事件。
dsh plugin --profile web add /path/to/dsh-memory-0.1.0.tgz
配置¶
插件仅通过环境变量进行配置,不依赖配置文件或 UI。以下是关键配置项:
| 变量 | 默认值 | 作用 |
|---|---|---|
DSH_MEMORY_DISABLED |
— | 非空则完全惰性挂载,用于排查插件树问题。 |
DSH_MEMORY_ROOT |
$DSH_HOME/memory |
记忆根目录,测试时可指向临时目录。 |
DSH_MEMORY_MIN_CHARS |
600 |
新一轮文本量的下限,低于此长度不进行总结。 |
DSH_MEMORY_MIN_INTERVAL_MS |
60000 |
同一会话两次蒸馏的最小间隔。 |
DSH_MEMORY_TRANSCRIPT_CHARS |
16000 |
单次蒸馏喂进去的正文上限。 |
DSH_MEMORY_RECALL_BYTES |
6000 |
召回段字节上限,超了丢最旧的。 |
DSH_MEMORY_FILE_BYTES |
32000 |
单个记忆文件字节上限。 |
DSH_MEMORY_MAX_TOKENS |
1200 |
单次蒸馏输出预算。 |
DSH_MEMORY_TIMEOUT_MS |
45000 |
单次蒸馏超时时间。 |
典型用法¶
- 控制蒸馏频率:通过环境变量
DSH_MEMORY_MIN_CHARS控制蒸馏频率,避免对短轮次进行无意义的总结。 - 控制召回范围:召回段插入位置为
FILE_REFERENCE(850),紧挨在环境类上下文之前。
适用场景与注意¶
- 数据安全:插件不读取会话日志,不依赖
session-query-sqlite,所有写入限制在$DSH_HOME/memory/之内。 - 功能定位:不提供工具和斜杠命令,不做向量检索,仅提供自动召回与自动蒸馏两条核心路径。
- 数据持久化:文件写入采用临时文件 + rename 防止崩溃截断。
短结尾¶
dsh-memory 是 DeepSeek Harness 插件生态中用于构建持久化记忆的组件。它通过本地存储和环境变量配置,实现了会话级别的自动总结与提示段注入。更多详情可查阅:GitHub。