前言¶
DeepSeek Harness(DSH)把智能体能力拆成可组合的插件,但默认上下文仍受单次会话限制:AGENTS.md 需要人工维护,换一场对话后,项目约定、个人偏好和踩过的坑往往要重新讲一遍。社区维护者 Echo-Smith 的 hy-memory4dsh(npm 包名 dsh-hy-memory)在 DSH 进程内挂接 Hy-Memory 2.0 的 Python SDK,用 sidecar 与独立 venv 跑记忆引擎,无需单独起服务,在每一步前后自动召回、写入并逐级沉淀记忆。
这是什么¶
hy-memory4dsh 是 DSH 的长期记忆插件:三层存储(个人、项目、项目内会话),三种场景(默认 chat;working / coding 按 workspace id 分库),存储目录在 $DSH_HOME/integrations/hy-memory/。记忆引擎来自 PyPI 的 hy-memory(本仓库不内嵌 Hy-Memory 源码),插件侧为 MIT;上游 Hy-Memory 的代码与许可证归 Hy-Memory 项目。
- 目录页:https://www.skillhub.cn/plugins/Echo-Smith/hy-memory4dsh
- 源码:https://github.com/Echo-Smith/hy-memory4dsh
核心机制与功能¶
Recall / Capture / Promotion¶
插件在 DSH 内运行,sidecar 自带 venv,用户不必再启动额外服务。
- Recall:在
agent/pre-step检索个人层、当前项目、当前会话,将命中项合并为一条带来源的 user 消息注入上下文;标注为背景数据、可能过时,且不作为指令。 - Capture:按窗口批量收集轮次及 tool call,交给 sidecar,路由到 chat 或 working/coding 存储。
- Promotion:会话记忆沉淀为项目约定,再上升为个人偏好,形成 session → project → personal 链路。
面板与工具¶
- Settings > 记忆:个人 Tab、项目/会话 Tab、项目选择、分页、总开关、占用估算;支持浏览、搜索、编辑、删除。
- 自动 recall / capture,含 tool-call 轨迹;日常 recall 不混入其他项目,可按需跨项目搜索。
- MemHub:检测、导出、拉取(MemHub 运行时因 holder pid 会拒绝 pull)、去重导入。
- 手动写入:
memory_add根据内容推断个人或项目层并回报落点。 - 面板页脚提供更新检查与 GitHub 链接。
嵌入默认本地 ONNX(384 维,约 80 MB 首次下载到 ~/.cache/chroma),模型对话复用 DSH 已有路由;也可配置远程 embedding 端点。
安装与启用¶
要求:DSH 0.2 preview、Python 3.10+(首次使用在插件目录内引导 venv)、可选 git(用于 workspace id)。首次使用需一次网络访问(安装 hy-memory 及可选 embedding 模型)。可用环境变量 HY_MEMORY_SDK_PACKAGE=hy-memory==<version> 固定 SDK 版本。
本地 link 安装(README 示例)¶
在插件仓库根目录执行:
dsh plugin --profile desktop add link:$(pwd)
然后打开 Settings > 记忆。首次使用会引导 Python 环境;模型路由沿用现有 DSH 设置,无需额外填 API Key。
通过 npm 装入 profile¶
公开发布包 dsh-hy-memory(README 写明 0.1.2)。profile 需把包列为依赖并在 dsh.profile.bundles 中注册名称,可用仓库脚本一并完成并校验 apply() 导出:
node scripts/install-into-profile.mjs --spec dsh-hy-memory --apply
之后重启或 reload DSH。手动方式:在 profile 内 pnpm add dsh-hy-memory,并把包名写入 dsh.profile.bundles。
GitHub Packages 作用域包 @echo-smith/dsh-hy-memory、Release tarball 与本地 dist 包也可用同一脚本 --spec 安装,详见仓库 README 的 Install 小节。
配置¶
设置文件:$DSH_HOME/integrations/hy-memory/settings.json,与面板编辑同一对象。
| 键 | 默认 | 含义 |
|---|---|---|
enabled |
开 | 总开关;关则暂停 recall、capture 与工具,面板只读 |
recall.maxItems / maxChars / minScore |
5 / 1200 / 0.56 | 每步召回条数、字符预算、相关度下限 |
capture.windowTurns |
3 | 每批捕获的轮次数 |
capture.productivity |
关 | 为开时将批次写入 working/coding 库而非 chat |
promotion.everyTurns |
8 | 两次 promotion 之间的轮次间隔 |
embedding.mode |
local | local 或 remote(remote 需 baseURL / model / apiKey / dims) |
典型用法¶
- 安装并打开 Settings > 记忆,确认总开关开启,等待首次 venv 与 SDK 安装完成。
- 正常对话:每步前自动 recall;每若干轮自动 capture 与 promotion,无需手工触发。
- 需要固定规则时调用
memory_add,由插件判断写入个人或项目层。 - 若曾用 MemHub,可在面板内按 README 说明做导出/导入;MemHub 运行期间 pull 会被拒绝。
- 在 DSH 插件市场设置中添加索引 URL,便于详情页对比已装版本与索引版本:
https://raw.githubusercontent.com/Echo-Smith/hy-memory4dsh/main/market/index.json
适用场景与注意¶
适合需要跨会话、跨项目保留约定与偏好的 DSH 用户,以及要与 MemHub 数据互通的场景。working / coding 场景适合把生产力类对话与纯 chat 分库。
插件与 sidecar 以当前 DSH 进程权限运行,记忆与配置落在 $DSH_HOME/integrations/hy-memory/;安装前建议阅读仓库源码与 MIT 许可证,并知悉 Hy-Memory SDK 为独立上游依赖。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
hy-memory4dsh 把 DSH 从「单会话 + 静态 AGENTS.md」扩展到可自动召回、写入与逐级沉淀的三层记忆,面板可管可查。进一步说明见 GitHub README 与 SkillHub 目录页。