前言¶
DeepSeek Harness (DSH) 强调“一切皆插件”,但在原生环境中,智能体往往缺乏跨会话的持久记忆能力,导致上下文碎片化。开发者需要在多轮对话中重复输入背景信息,或面临记忆注入过于宽泛的问题。dsh-cc-haha-memory 插件旨在复刻 CC-HAHA 的记忆管理体验,为 DSH 提供一套显式、可审计的持久记忆方案。它不依赖外部服务,通过原生事件和工具调用实现记忆的写入与检索。
基本信息¶
- 插件名称:yihefeikong-rgb/dsh-cc-haha-memory
- 核心价值:面向 DeepSeek Harness (DSH) 的 CC-HAHA 风格持久记忆插件
- 维护者:yihefeikong-rgb
- 分类:记忆
- 许可证:MIT
核心功能¶
插件实现了以下核心能力:
* 真实记住:显式工具调用。只有当 LLM 返回 saved: true 时,系统才确认已记住信息。
* 独立文件存储:每条记忆保存为独立的 Markdown 文件,由 MEMORY.md 维护索引。
* 项目隔离:记忆按“通用”和“当前项目”隔离,避免全局上下文污染。
* 逐轮召回与会话预算:每轮最多注入 5 条相关记忆正文,同一会话内已注入记忆不重复,累计超过 sessionMaxBytes 后仅保留索引。
* 自动记录与回合评审:支持后台自动评审值得长期保存的信息,失败时保留缓冲。
* 安全更新机制:通过记忆 ID 更新,禁止模糊标题猜测覆盖,更新和删除前自动保存历史版本。
* Web UI 管理界面:提供搜索、编辑、删除记忆的标签页。
* Claude 记忆导入:支持非破坏性地导入现有 Claude Code 记忆。
安装与配置¶
安装¶
安装命令如下:
dsh plugin --profile web add github:yihefeikong-rgb/dsh-cc-haha-memory
安装完成后,重启 DSH Web 进程:
dsh web
验证¶
进入任意会话,发送以下测试指令:
请记住:这个项目使用 Rust 和 Tauri。
正常轨迹应包含以下工具调用:
Read MEMORY.md → memory_remember → saved: true
配置¶
默认配置位于 cordis.patch.yml。主要选项如下:
| 选项 | 默认值 | 说明 |
|---|---|---|
reviewEnabled |
true |
是否启用回合后自动评审 |
reviewInterval |
1(schema)/ 5(本包 patch) |
每多少回合评审一次 |
reviewTimeoutMs |
120000 |
后台评审总超时 |
recallOrder |
117 |
索引 context 的注入顺序 |
recallMaxBytes |
25000 |
注入索引最大字节数 |
recallRelevantMaxBytes |
16000 |
单次相关正文最大字节数 |
sessionMaxBytes |
61440 |
本会话相关正文累计上限(0=不限) |
dedupeRelevant |
true |
同一会话内已注入过的正文不再重复注入 |
relevantBodiesEnabled |
true |
是否按当前查询注入相关正文 |
freezeIndexPerSession |
true |
索引片段每会话只渲染一次 |
selectEnabled |
true |
LLM 语义相关性选择 |
selectTimeoutMs |
12000 |
相关性选择超时 |
guidanceEnabled |
true |
注册引用记忆前的核验指南 |
recentToolsEnabled |
true |
把最近使用过的工具交给选择器 |
recentToolsWindow |
8 |
最近使用过的工具保留个数 |
skipReviewAfterAgentWrite |
true |
主 agent 自己写过记忆时跳过后台评审 |
记忆工具¶
插件注册了 8 个工具供 LLM 调用:
* memory_remember:显式“记住”的单次可见入口。
* memory_write:新建记忆。
* memory_read:读取完整记忆。
* memory_update:按 ID 更新并保存历史版本。
* memory_delete:删除并保存历史版本。
* memory_search:当前作用域全文搜索。
* memory_list:列出当前作用域索引。
* memory_suggest_tags:推荐已有标签。
文件结构¶
记忆文件默认存储在用户目录下:
~/.dsh/memory/
├── MEMORY.md
├── 通用/
└── <当前项目>/
└── <主题>.md
注意事项¶
- 数据隐私:仓库和安装包不包含任何用户记忆、会话、日志、API Key 或本机 profile。
- 权限要求:写入前需确认当前工作区,否则会写入失败。
- 网络边界:Web API 运行在 DSH 本地同源信任边界内,不建议将 DSH Web 端口暴露到不可信网络。
- 并发写入:当前实现是单 DSH 进程内串行写入,不建议多个 DSH 实例同时共享同一个记忆目录。
- 官方属性:本项目为非 CC-HAHA 官方组件,也不隶属于 CC-HAHA 或 DeepSeek。
关系与致谢¶
本项目重点参考了 CC-HAHA 的记忆设计理念,包括独立文件存储、显式写入核验、项目隔离等。插件代码使用 DSH 原生事件、工具、LLM 和 Web UI 接口独立实现,旨在让 DSH 用户也能享受到类似的记忆管理体验。