前言¶
在 DeepSeek Harness (DSH) 开发智能体时,上下文窗口有限,跨会话的记忆保持通常需要依赖显式的工具调用(如 view_file、grep)来检索历史文档。这会导致对话初期存在 1~2 轮的检索开销,且容易遗漏非文件类的隐性约定。
DeepSeek Harness - MiMoCode 工作区自动记忆插件基于 MiMoCode 记忆架构构建,旨在解决上述问题。它通过后台异步蒸馏与结构化落盘,让 Agent 开局即可掌握项目背景,并在空闲时自动沉淀知识,无需占用对话 Token。
插件概览¶
- 名称:DeepSeek Harness - MiMoCode 工作区自动记忆插件
- 所有者:Rainpomelo
- 类别:记忆
- 许可证:MIT
- GitHub:https://github.com/Rainpomelo/deepseek-harness-mimo-memory
- 目录:https://www.skillhub.cn/plugins/Rainpomelo/deepseek-harness-mimo-memory
核心功能¶
该插件主要实现以下功能:
- 开局 0 工具调用自动预注入:在会话启动时,自动读取并注入项目的长期记忆,无需 Agent 先执行检索工具。
- 后台异步蒸馏与沉淀:在 Agent 处于空闲状态时,自动分析已验证的结论与用户约定,静默更新记忆文件。
- 跨会话任务断点续接:通过
checkpoint.md记录任务阶段与活跃状态,支持会话重置后的断点恢复。 - 显式结构化落盘工具:提供
update_project_memory工具,允许模型或用户按章节追加或替换内容。 - 跨会话全局持久生效:记忆数据存储在本地文件系统,不同会话间共享。
运行机制¶
插件采用 MiMoCode 原版四层分级记忆与异步调度模型:
-
Layer 1: 核心事实与架构契约 (MEMORY.md)
- 作为跨会话全局持久生效的存储,按标准三段式结构化维护。
- 在开局组装系统提示词时,自动拼装并注入到
System Prompt头部。
-
Layer 2: 工作区任务检查点 (checkpoint.md)
- 记录最近的工作区目标、任务阶段与活跃状态。
- 会话新建或重置时,自动带出断点背景,帮助 Agent 接续上下文。
-
Layer 3: 后台异步蒸馏沉淀
- 监听 Agent 空闲状态,在后台提取已验证结论与用户约定。
- 纯异步执行,不占用对话上下文 Token,不增加对话响应延迟。
-
Layer 4: 主动落盘工具
- 提供
update_project_memory工具,支持按 Markdown 章节精准追加或替换内容。
- 提供
安装与启用¶
方式一:在本地 Profile 中引入(推荐)¶
- 将本仓库 clone 到本地,例如
C:/plugins/deepseek-harness-mimo-memory。 - 打开 Web profile 的配置文件(
~/.dsh/profiles/web/package.json或对应路径)。 - 在
dependencies与dsh.profile.bundles中添加插件:
{
"dependencies": {
"dsh-mimo-memory": "file:C:/plugins/deepseek-harness-mimo-memory"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-mimo-memory"
]
}
}
}
- 进入 profile 目录并执行安装与启动:
cd ~/.dsh/profiles/web
pnpm install
dsh --profile web
方式二:直接从 GitHub 引用¶
在 profile 的 package.json 中配置:
{
"dependencies": {
"dsh-mimo-memory": "github:Rainpomelo/deepseek-harness-mimo-memory"
}
}
配置与存储¶
工作区隔离¶
插件对每个工作区目录进行跨平台无冲突编码(例如 C:\Agent code\deepseek 映射为 --C-Agent~0020code-deepseek--),通过 projectKey 进行隔离存储。记忆统一保存在 ~/.dsh/memory/<project-slug>/ 目录下。
参数配置项¶
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
memoryRoot |
string |
~/.dsh/memory |
全局持久记忆存储根目录 |
maxChars |
number |
12000 |
单工作区开局注入最大字符数,防止超出上下文 |
autoDream |
boolean |
true |
是否启用 Agent 空闲时的后台自动蒸馏沉淀 |
记忆文件存储结构¶
插件会自动生成以下文件:
~/.dsh/memory/
├── --C-Agent~0020code-deepseek--/
│ ├── MEMORY.md # 长期核心规则与技术沉淀
│ └── checkpoint.md # 最近任务断点与阶段检查点
典型用法¶
1. 自动记忆注入¶
插件会在会话启动时自动注入 MEMORY.md 内容,Agent 开局即可直接引用项目背景信息,无需额外的检索步骤。
2. 主动更新工具¶
插件向 Agent 注册了 update_project_memory 工具。使用该工具可显式管理记忆内容:
section:指定章节(如“架构与技术选型”、“已验证结论”)。content:具体事实或规则。action:append(追加,自动去重)或replace(覆盖)。
Agent 在空闲状态下会自动触发后台 Dreaming 流程,扫描最近交互并更新上述文件。
注意事项¶
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
- 插件为纯异步执行,不会阻塞对话主线程,也不会占用对话上下文 Token,不会增加对话响应延迟。
- 不同项目通过
projectKey进行严格隔离存储,互不串扰。
结尾¶
该插件通过文件系统实现了 DeepSeek Harness 下的跨会话长期记忆,适合需要长时间维护代码库或进行复杂多轮迭代的开发场景。