能力地图
dsh-mnemon 是 DeepSeek Harness(DSH)的记忆系统。它不把所有知识塞进同一个数据库,而是把高频上下文、完整的项目叙事和长期证据分开保存,由主策略决定它们如何进入每一轮对话,并把九种长期记忆 Provider 纳入同一套工作流。
一句话判断:每轮都要用的上下文放进运行时记忆,完整叙事放进项目档案,跨任务需要的证据放进记忆空间。
能做什么
| 目标 | 位置 | 如何执行 | 会改动数据吗 |
|---|---|---|---|
| 让偏好、约定和环境事实每轮可用 | 运行时记忆 | 宿主维护 USER.md 与 MEMORY.md 投影 |
会,确认后生效 |
| 保存完整的设计、调查、流程与交接 | 项目档案 | 宿主管理 Markdown、检索、容量与修订 | 新建与编辑会;阅读与检索不会 |
| 在九种后端之一创建长期空间 | 记忆空间 → 概览 → 创建记忆空间 | 由你选择一个已启用的 Provider | 会 |
| 决定任务 Agent 新建空间时用哪个 Provider | 记忆空间 → 新空间的 Provider | 固定一个 Provider,或先执行宿主规则、再由任务 Agent 在合格候选中选择 | 保存设置时会 |
| 查找原始长期证据 | 记忆空间 → 检索 → 直接检索 | 各已激活空间以原生召回方式并行返回 | 不会 |
| 把证据整理成回答 | 记忆空间 → 检索 → Agent 查询 | 干净的任务 Agent 只拿到有界证据 | 不会 |
| 判断、去重、提炼并写入候选内容 | 回复下方或记忆空间页的存入记忆 | 干净的任务 Agent 在宿主限定的工具、路径、锁与回执下工作,并给出回执 | 仅当 Agent 决定写入时 |
| 为多个空间生成标题与说明 | 记忆空间 → 概览 → 整理名称与说明 | 每个空间一个独立任务 | 只改本地目录元数据 |
| 把档案移出热容量 | 项目档案 → 归档 | 任务 Agent 先建立冷引用索引,宿主再移动原文件;没有记忆空间时,宿主不建索引直接归档到本地 | 会 |
| 查看一轮对话用了哪些记忆 | 回复下方的本回合记忆 | 按工具列出读到和写入的档案与记忆,每一条都在所在页面打开 | 不会 |
| 改变记忆的组合方式 | 插件 → 可组合记忆 → 记忆组合 | 开关作用于之后的回合 | 只改配置 |
三类记忆
| 记忆 | 适合保存 | 如何进入上下文 | 事实源 |
|---|---|---|---|
| 运行时记忆 | 高频偏好、协作规则与项目事实 | 每轮紧凑注入 | runtime/memories.json,Markdown 文件是投影 |
| 项目档案 | 需要保留结构与来源的长篇知识 | 先检索,需要时读取全文 | documents/index.json 与受管理的 Markdown |
| 记忆空间 | 跨会话的事实、决策、实体与关系 | 从已激活空间召回有界证据 | Mnemon Native Store 或所选的外部 Provider |
三者各是一个独立的 Source 插件。运行时记忆与项目档案使用本地存储;记忆空间通过 Provider 切换后端,不影响另外两者。外部 Source 也可以通过同一套公开契约加入。参见架构设计。
策略与增强
每一轮由一个主策略组合。增强通过标准插槽为正在运行的主策略补充能力,可以同时使用。它们都在插件 → 可组合记忆中选择。
| 组件 | 作用 | 选项 |
|---|---|---|
| 分层策略(默认) | 运行时记忆常驻;按需检索项目档案、召回记忆空间;执行空闲审查与容量维护 | 组件页中的任务 Agent 模型与空闲审查 |
| 通用策略 | 在同一份预算内提供全部可用来源,由模型决定如何使用;不做自动审查与容量维护 | 常驻 Source;附加指引 |
| 主动记录 | 在回合中提示保留有用的事实,它是提示而不是自动记录器 | 记录目标、记录指引与记录操作 |
| 轻量上下文 | 为常驻内容设置共同上限,它不是 token 计量 | 常驻内容上限(字符) |
| 范围组合 | 按顺序选择参与的来源,并限定可写入的来源;它不会创建存储 | 参与 Source(按优先顺序);允许写入的 Source |
切换策略不会搬移数据,一轮对话会保持它开始时的组合。这些选择如何保存,见配置参考。
九种长期记忆 Provider
| Provider | 形态 | 适合场景 | 作用域 |
|---|---|---|---|
| Mnemon Native | 官方本地 CLI 与 SQLite | 完整图谱、精确写入、默认本地优先 | 全局、工作区或自定义根目录 |
| OpenViking | HTTP 与 viking:// |
已有资源树、经验证的精确写入与语义召回 | 目标 URI 与用户身份 |
| Honcho | HTTP workspace 与 peers | 团队与 Agent peer 结论 | Provider workspace |
| Mem0 | Platform 或自托管 HTTP | 已有的 Mem0 用户与 Agent 记忆 | user 与 agent 身份 |
| Hindsight | HTTP memory bank | bank、实体与原生图谱 | bank ID |
| Holographic | 本地结构化事实文件 | 可审计的本地实体与语义事实 | 跟随工作区,可覆盖路径 |
| RetainDB | HTTP project 与 user | 项目与用户两个作用域的记忆 | project 与 user 身份 |
| ByteRover | 本地 brv CLI |
代码知识与 curate 流程 | 跟随工作区,可覆盖目录 |
| Supermemory | HTTP container | 文档摄取与容器级共享 | container tag |
插件 → 可组合记忆中的记忆空间页面保存每个 Provider 可复用的服务设置与开关;记忆系统中的“记忆空间”页管理具体的空间。Provider 在启用前保持关闭。只有 Mnemon Native 需要 Mnemon CLI;缺少 CLI 时,其他已就绪的 Provider 也可以为记忆空间服务。参见 Provider 指南。
谁在工作
宿主,确定性执行。 状态、直接检索、内容与实体浏览、激活、运行时记忆的普通编辑、档案阅读与编辑都不需要模型,直接经过宿主的 schema、路径、权限、锁、修订、容量、超时与取消检查。
独立任务 Agent。 它们不复用主对话的历史,也不占用主对话的上下文窗口:
- 存入记忆:判断价值、选择范围、去重、提炼并写入,给出回执;
- Agent 查询:根据有界的召回证据作答;
- 整理名称与说明:为每个选中的空间运行一个标题与说明任务;
- 档案归档:先为冷引用建立索引,宿主再移动原文件;没有记忆空间能接收索引时,不建索引直接归档到本地;
- 新空间的 Provider(智能选择):只有规则留下多个候选时才调用模型。
任务 Agent 默认跟随 DSH 新会话的默认链路;也可以在分层策略页面“后台任务”中的任务 Agent 模型单独指定 Provider 与模型。任务相互隔离,失败只显示在对应的空间或操作上,不会阻塞整个页面。
出现在哪里
| 位置 | 提供什么 |
|---|---|
| 记忆系统 | 状态、运行时记忆、项目档案与记忆空间,以及每一个确认步骤 |
| 插件页 | 记忆组合、带有各自设置的组件页(包括 Provider)、存储与界面 |
| 对话 | 回合记忆栏、存入记忆,以及跳转到记忆系统的入口 |
| Headless | 相同的运行时注入、档案检索、记忆空间工具、工作区路由与受监督写入,没有 WebUI |
| 命令与工具 | /mnemon 命令,以及 Agent 使用的最小权限工具 |
存储范围
全局使用 MNEMON_DATA_DIR 或 ~/.mnemon,本机各工作区共享;工作区使用 <workspace>/.mnemon,Mnemon Native、Holographic 与 ByteRover 等本地后端可以跟随它;自定义是位于你所选路径的全局范围;集中存储在同一个根目录下为每个工作区建立子目录,并可选择全局共享 USER.md。切换时不会移动、合并或删除原来的根目录。远程 Provider 的命名空间(workspace、user、bank、project、container、URI)不会随 DSH 工作区改变。参见存储模型。
明确不做什么
- 历史记忆永远不会凌驾于当前指令、实时工具结果或仓库事实之上;
- Provider 之间的差异如实呈现,缺少图谱、删除或精确写入时不会伪装;
- Provider 凭据不会进入浏览器、任务 Agent 或备份;
- 关闭 Provider 不会删除远程数据,只清理本地目录,重连后重建;
- 切换存储范围不会迁移、合并或删除旧的根目录;
- 不提供跨本地文件与远程 Provider 的分布式事务。