跳到主内容

graph-memory

562Star80Fork9Issue3Watching

为 DeepSeek Harness 提供本地 SQLite 知识图谱记忆:自动把对话里的任务/技能/事件抽成有类型节点,跨会话向量化召回,免去重放历史。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
claude-codecodexdeepseekdeepseek-harnessdshdsh-plugindsh-pluginsknowledge-graph

安装

命令web profile
$ dsh plugin --profile web add github:adoresever/graph-memory

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 adoresever/graph-memory:先查看仓库 https://github.com/adoresever/graph-memory 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

graph-memory 把和 AI 对话中产生的任务、技能、事件和它们之间的关系沉淀成本地知识图谱,并在新问题出现时只召回相关的局部子图注入上下文,从而让 DeepSeek Harness 拥有可追溯、可搜索、跨会话共享的长期记忆。

核心能力

  • 把对话消息自动抽成 TASK / SKILL / EVENT 三类节点,带 USED_SKILL、SOLVED_BY、REQUIRES、PATCHES、CONFLICTS_WITH 几类因果关系
  • 每个节点都关联原始 user / assistant 片段,召回时能告诉用户这条记忆来自哪个会话、因为什么被想起
  • 在 Prompt Assembly 阶段自动检索相关子图注入 system prompt,不需要模型主动调用工具
  • 提供 gm_status、gm_search、gm_record、gm_stats 四个原生工具,支持主动搜索、确定性记录和统计查看
  • 支持语义向量检索(可选)与 SQLite FTS5 全文检索双通道:未配向量时自动降级到 FTS5,永远不阻断对话
  • 跨 DSH 重启保留数据,事件 ID 稳定使 HMR 和恢复期间不会重复入库

技术实现

  • 语言: TypeScript
  • 关键依赖: @photostructure/sqlite(本地 SQLite 存储 + FTS5)、@sinclair/typebox(Schema)、可选的 OpenAI 兼容 Embedding HTTP 服务
  • 架构模式: 宿主无关内核 + 双宿主适配器 —— dsh.ts 作为 DeepSeek Harness / Cordis 适配器走 bundle.patch 自动注入;index.ts 保留对 OpenClaw 的兼容入口;src/{extractor,recaller,graph,store,format,engine} 六个子目录共享一套算法层
  • 入口文件: dsh.ts(DSH 入口,apply 函数挂载 tools / llm / systemPrompt / agentLoop / sessions / credentials 六个接缝),cordis.patch.yml(DSH bundle 声明)

适用场景

日常用 DSH 跟 AI 协作开发时,经常出现几周前讨论过某个库的用法、某次 bug 修复方案、某个 API 设计决策,但新会话里模型完全不知道 —— 用户不得不反复贴历史。Graph Memory 让模型在每次新会话启动前自动看到这些沉淀下来的知识,无需手动复制粘贴。它也适合长流程项目(持续数天的开发任务、多分支并行迭代),因为它能区分不同来源节点并保持召回路径可解释。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness0.1.0-rc.5 实测验证(DSH 仍为 Developer Preview)插件走 Cordis bundle.patch 注入;当前 DSH 未公开最低版本约束
Node.js>=20(package.json 声明);DSH 实际使用建议 22.19+ 或 24+
平台macOS / Windows / Linux跨平台,无额外系统库要求
原生模块@photostructure/sqlite(native)@photostructure/sqlite 跨平台预编译;@sinclair/typebox 纯 JS

安装方式

dsh plugin --profile web add github:adoresever/graph-memory

配置项

配置类型说明默认值
dbPathstringSQLite 图谱数据库存放路径,留空则使用 $DSH_HOME/graph-memory/graph-memory.db~/.dsh/graph-memory/graph-memory.db
extractionEnabledboolean是否启用自动从对话里抽取任务/技能/事件true
recallEnabledboolean是否在 Prompt Assembly 阶段自动注入相关记忆true
recallMaxNodesinteger跨会话召回时最多向当前 prompt 注入的节点数6
recallMaxDepthinteger图遍历深度(从召回种子节点出发走几跳)2
maintenanceIntervalinteger每隔多少轮检查一次信号,触发 PageRank + 社区检测6
embedding.apiKeyEnvstringEmbedding 服务的 key 在启动环境里的变量名(如 GRAPH_MEMORY_EMBEDDING_API_KEY),由 DSH Credentials 解析真实值未设置
embedding.baseURLstringEmbedding 服务的接口地址,OpenAI 兼容,DashScope / OpenAI / 本地服务都能接OpenAI 默认
embedding.modelstring向量模型名,默认 text-embedding-3-smalltext-embedding-3-small
embedding.dimensionsinteger向量维度(如 DashScope text-embedding-v4 为 1024),仅在服务支持时设置由服务决定

未列出的 env 变量名对照:GRAPH_MEMORY_EMBEDDING_API_KEY / GRAPH_MEMORY_EMBEDDING_BASE_URL / GRAPH_MEMORY_EMBEDDING_MODEL / GRAPH_MEMORY_EMBEDDING_DIMENSIONS,由 cordis.patch.yml 读取并注入到上面这套字段里。

常见问题

Q: 这个插件需要联网吗?API key 会泄露吗?

A: 默认完全离线运行,只有当用户主动配置向量服务(Embedding)时才会发请求。key 只以环境变量名形式写在 Cordis patch 里,真实密钥由 DSH Credentials 解析,数据库里不会持久化任何 secret。

Q: 卸载插件会丢失我之前的记忆吗?

A: 不会丢失。SQLite 数据库独立于插件存在,禁用或卸载插件都只是不再读取/写入,原 graph-memory.db 随时可重新挂载复用。

Q: 想清空记忆怎么操作?

A: 关闭插件后手动删除 $DSH_HOME/graph-memory/graph-memory.db 文件即可。Community 版未提供一键清空工具,删除前建议备份。

Q: 跟 DSH 自带的会话压缩有冲突吗?

A: 不冲突。压缩决定当前窗口还能装多少原始历史,图谱记忆决定哪些"已经被消化过的知识"值得在下一轮唤醒 —— 两者目标正交,可同时启用。

Q: 自动抽取偶尔漏掉重要内容怎么办?

A: 用 gm_record 工具主动写入,给出 name / type(TASK/SKILL/EVENT)/ description / content 四个字段,会跳过 LLM 抽取链路直接落库,可作为 beta 阶段的兜底手段。

Q: DSH 模式下找不到 gm_update / gm_maintain?

A: 这是预期行为。DSH/Cordis 适配器只暴露 gm_status、gm_search、gm_record、gm_stats 四个工具,gm_update 和 gm_maintain 暂时保留在 OpenClaw 入口,DSH 端未实现。

Q: 是否支持中文和长内容?

A: FTS5 检索对中文按 unicode 分词匹配;向量检索走 Embedding 模型,与语种无关。长内容会被分块抽取,不要求完整塞进单条节点。

上手难度

进阶 — 需要懂 DSH 的 Cordis bundle 安装机制、能配置 Embedding 服务的环境变量,并理解 SQLite 与 FTS5 的基本概念才能调优召回;但装好即用的默认配置也能正常工作,普通用户也能跑起来。

已知问题与限制

  • DSH 版暂未暴露 gm_update 和 gm_maintain 工具,这两个能力目前只在 OpenClaw 入口可见
  • 自动抽取依赖辅助模型输出的稳定性,关键知识建议使用 gm_record 工具手动写库
  • 当前 beta 1.6.0-beta.1 还未发布到 npm registry,必须通过 git clone + npm run build + npm pack 走本地 tarball 安装
  • DSH 端 Pro 版(Neo4j 适配器 + 可视化工作台 + Client Plugin)尚未实现,Community 版只走 SQLite
  • 配置项 freshTailCount 在 openclaw.plugin.json 中已被标记 deprecated(旧方案按"新鲜尾部"切分,现已改为按用户轮次切分,不再生效)
  • DSH 仍处于 Developer Preview 阶段,后续版本可能引入破坏性变更,插件在 0.1.0-rc.5 上验证过

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/adoresever/graph-memory)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录