jiayan-xu/dsh-memoria

向量+图记忆后端:observe/remember/search/recall 四个工具对接本地 memoria 服务,HNSW 语义召回 + FTS5 关键词 + 知识图谱信号经 RRF 融合排序,回合结束自动写入,按 Agent 命名空间隔离。

Bundle 已验证 BSD-3-Clause TypeScript 未知
Bundle 已验证

已收录

1

Memory

Bundle 已验证

版本未知
语言TypeScript
许可证BSD-3-Clause
在 GitHub 查看

预览

功能介绍

向量+图记忆后端:observe/remember/search/recall 四个工具对接本地 memoria 服务,HNSW 语义召回 + FTS5 关键词 + 知识图谱信号经 RRF 融合排序,回合结束自动写入,按 Agent 命名空间隔离。

适合

  • 需要通过自建 memoria 服务跨回合持久召回的 DSH Agent。
  • 受益于语义、关键词和知识图谱融合检索的工作流。
  • 要求记忆读写限定在已配置命名空间内的多 Agent 部署。
  • 希望在回合结束自动沉淀观察、并自动记住肯定反馈的用户。

不适合

  • 没有运行 memoria 服务的用户;该插件只是客户端,不是记忆存储本身。
  • 未注册 Agent badge token 或未通过 `MEMORIA_AGENT_KEY` 提供它的部署。
  • 不应持久化会话观察的无状态或隐私敏感会话,除非关闭自动写入。
  • 需要跨命名空间自由召回的工作流,因为所有操作都会被限制在配置的命名空间内。

README

@jhp830901/dsh-memoria

memoria 记忆后端插件:把 memoria(向量 + 图记忆层)接入 DeepSeek Harness (dsh),让 dsh agent 会话可以记住和回忆。

  • 4 个工具:memoria_observe / memoria_remember / memoria_search / memoria_recall
  • 自动写入:每轮对话结束自动 observe 沉淀;用户肯定反馈(不错/很好/good/赞…)自动 remember(importance=5)
  • 配置热重载:改 ~/.dsh/settings.yaml 的 memoria: section 免重启生效
  • 命名空间隔离:所有读写强制落在配置的 namespace(默认 dsh-test),不碰其他业务数据

使用前提

⚠️ 本插件是 memoria 的前端,不是记忆存储本身。使用前需要:

  1. 自建并运行 memoria 服务(默认连接 http://127.0.0.1:9003):memoria 是独立的开源项目(jiayan-xu/memoria,Rust 向量 + 图记忆服务)。没有该服务时工具会报连接失败。
  2. 准备 badge token:memoria 工具调用要求 register_agent 签发的 badge token(admin key 不能直连),见下文「获取 memoria badge token」。以环境变量 MEMORIA_AGENT_KEY 提供(不落盘)。

装完发现工具报 Connection refused / HTTP 200 but auth failed,先检查这两项。

安装

前置:@deepseek-ai/dsh CLI 与 pnpm。

# 安装(自动挂载,无需手动改 profile)——两种源任选
dsh plugin --profile web add github:jiayan-xu/dsh-memoria
# 或 npm 源:
dsh plugin --profile web add @jhp830901/dsh-memoria

# 启动 dsh web 即可使用
dsh web

配置

插件默认连 http://127.0.0.1:9003(本地 memoria)。可配置项:

项 默认 说明
baseURL http://127.0.0.1:9003 memoria 服务地址
agentId dsh-memoria memoria agent 身份(需已注册)
apiKeyEnv MEMORIA_AGENT_KEY 环境变量名,值 = memoria badge token
namespace dsh-test 记忆命名空间(隔离边界)
autoWrite true 自动写入开关

推荐用 settings section 覆盖(热重载):

# ~/.dsh/settings.yaml
memoria:
  baseURL: http://127.0.0.1:9003
  namespace: my-namespace
  autoWrite: true

agentKey 不要落盘,用环境变量:

export MEMORIA_AGENT_KEY=<badge-token>
获取 memoria badge token

memoria 的工具调用要求 X-Agent-Key 为 register_agent 签发的 badge token(admin key 不能直连)。未注册时先注册:

# 用 admin key 注册 agent(示例),返回 badge 有效期 1 年
curl -X POST http://127.0.0.1:9003/mcp -H 'Content-Type: application/json' \
  -H 'X-Agent-Id: dsh-memoria' -H 'X-Agent-Key: <ADMIN_KEY>' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"register_agent","arguments":{"agent_id":"dsh-memoria","display_name":"dsh-memoria plugin","namespace":"dsh-test"}}}'

使用

用户:记住一个重要事实:我的仓库密码是 42
用户:我之前记住的仓库密码是什么?   → 命中回忆

验收用例

  1. 写入:memoria_remember {content, namespace} → {"status":"remembered","id":...}
  2. 召回:memoria_search {query, namespace} → 语义 + 关键词多信号命中
  3. 隔离:其他 namespace 检索本插件数据 → 授权拒绝/空结果

开发

npm install -D typescript @types/node --legacy-peer-deps
bash scripts/build.sh   # 产出 lib/(Windows 下依赖 junction,见 scripts/build.sh 注释)

License

BSD-3-Clause

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:jiayan-xu/dsh-memoria。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。