前言¶
DeepSeek Harness (DSH) 采用插件化架构。在开发智能体时,对话历史会随轮次增长,且难以从中提取持久化的关键事实。本插件旨在为 DSH 提供结构化的长期记忆能力,通过纯文本存储和动态注入机制,使智能体能够维护关于用户或项目的长期状态。
插件介绍¶
deepseek-memory 是 DeepSeek Harness 的精选长期记忆插件。它提供两级纯文本事实存储、记忆工具及回合后整合功能。存储内容为有界的精选事实,而非对话记录索引,通过每次请求的动态注入来保持上下文的时效性。
核心功能¶
两级存储¶
插件支持两级目录存储,分别用于不同维度的记忆:
* 用户级:存储于 $DSH_HOME/memory/,记录关于人的身份信息。
* 项目级:存储于 <cwd>/.dsh-memory/,记录项目约定与决策。
记忆工具¶
插件提供以下记忆管理工具:
* memory_add:添加记忆
* memory_update:更新记忆
* memory_delete:删除记忆
* memory_list:列出记忆
* memory_search:搜索记忆
* memory_status:查看状态
请求注入¶
通过 systemPrompt 服务,插件会在每次请求中动态注入记忆内容。这一过程发生在请求组装阶段,不会将记忆写入会话历史。
回合后整合¶
插件使用受限子代理执行记忆整合。默认为 gated 模式,仅在特定条件触发时运行;也可配置为 always 模式。
安装与启用¶
在终端执行以下命令安装插件:
dsh plugin --profile <name> add deepseek-memory
安装完成后,必须重启配置文件以使插件生效。
配置¶
在 cordis.patch.yml 中覆盖 memory.config 即可调整行为:
- id: memory
config:
maxEntries: 80
consolidation: always
关键配置项说明:
* maxEntries:默认 50,每级存储的最大条目数。
* consolidation:默认 gated,可选 off、gated、always。控制整合触发时机。
* injectChars:默认 4000,单次请求注入的最大字符数。
存储格式¶
存储文件为 JSON 格式,版本为 1。ID 基于文本生成,因此重复添加相同文本视为无操作。
{
"format": 1,
"tier": "project",
"revision": 3,
"updatedAt": 1790000000000,
"entries": [
{
"id": "m1a2b3c4",
"text": "The build uses tsc, not a bundler.",
"tags": ["build"],
"createdAt": 1789990000000,
"updatedAt": 1790000000000,
"origin": "consolidator"
}
]
}
注意事项¶
- 依赖注入:插件依赖
inject字段注册systemPrompt服务,缺少该字段会导致服务不可用。 - 编译产物:仓库包含编译后的
lib/目录,无需构建步骤或 allowlist。 - 整合模式:整合功能默认为 gated,避免每轮对话都消耗模型资源。
总结¶
该插件通过两级纯文本存储和动态注入机制,解决了 DSH 中长期记忆的持久化问题。如需使用,请确保安装后重启配置,并检查源码许可证。