前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在开发智能体应用时,上下文窗口有限,且会话结束后往往丢失关键事实。现有的记忆方案通常需要部署外部服务器,增加了运维成本。dsh-native-memory 插件旨在提供一种原生、轻量级的长期记忆解决方案,将数据存储在 DSH 自身的存储域中,通过会话查询全文检索(FTS)实现跨会话召回。
插件简介¶
这是一个为 DeepSeek Harness 设计的原生、工作区级别的长期记忆插件。它将事实和配置存储在 DSH 的专用存储域(~/.dsh/storages/dsh_memory.)中,支持跨会话召回,并采用人工审批机制控制写入操作。该插件不依赖外部服务器,除了 zod 和 DSH 自身外,没有额外的运行时依赖。
核心功能¶
- 原生存储:数据直接存储在 DSH 自身的存储域
~/.dsh/storages/dsh_memory.,无需额外数据库服务。 - 工作区隔离:基于精确的当前工作目录(exact-cwd)进行授权,每个工作区拥有独立的数据空间。
- 审批写入:所有写入操作(添加、编辑、遗忘)均需人工审批,并附带会话日志审计。
- 跨会话检索:利用全文检索技术,支持对历史会话的跨会话召回。
- 引用溯源:每个事实记录其来源
(sessionId, seq),确保数据可追溯。
安装与启用¶
使用官方插件命令安装该插件:
dsh plugin --profile web add dsh-native-memory
安装完成后重启 dsh web。该插件通过 cordis.patch.yml 补丁启用会话查询全文搜索,并将记忆工具注入到每个会话中。主要配置项包括:
* secretPolicy:控制密钥拒绝策略,默认拒绝,可设为 "mask" 或 "off"。
* proposeOnSessionEnd:是否在会话结束时生成事实建议。
* compactionGuard:压缩漂移保护,默认开启,用于验证数据完整性。
典型用法¶
插件提供了一系列工具来管理记忆:
memory_remember:在当前工作区添加或更新事实。默认情况下会拒绝包含密钥形状的文本(如 token、密码)。memory_recall:执行确定性的三级关键词扫描(标签 > 文本 > 模糊匹配),并处理新鲜度/访问权作为决胜条件。memory_search:对当前工作区的历史会话进行全文检索。memory_import:从历史会话日志中导入候选事实(需要审批)。memory_export:生成 Git 友好的 Markdown 镜像文件(位于.dsh-memory/memory.md),内容已对密钥进行脱敏且幂等。memory_profile:读取当前工作区的始终注入的配置文件。
适用场景与注意¶
- 代码执行风险:安装插件意味着在本地机器上运行第三方代码,且拥有当前 DSH 进程的权限。安装前请务必审查源码。
- 密钥安全:默认情况下,提示词注入和工具输出都会对密钥进行脱敏。凭证分配检测器会标记长度大于等于 16 个字符的良性令牌值。在浏览器设置页面的「记忆」选项中,可以查看已脱敏的事实列表;删除操作会被转换为
memory_forget指令,通过审批门控发送到聊天中。 - 依赖:插件依赖
zod和 DSH 运行时,除此之外无额外依赖。
总结¶
dsh-native-memory 为 DSH 用户提供了一个无需外部服务器、基于本地存储的长期记忆方案。它通过工作区隔离和审批机制平衡了便捷性与安全性,适合需要在本地持久化工作上下文且注重数据隐私的场景。