Graph Memory

September 4, 2026 · View on GitHub

Graph Memory 原生适配 DeepSeek Harness,并兼容 OpenClaw

限制上下文,让记忆继续生长。
Graph Memory 原生接管 DeepSeek Harness 的模型可见历史:保留最近对话,把旧历史变成可检索图记忆,并在需要时召回精确来源。

English · dsh.so · 20 轮实测 · 架构文档

dsh.so 安全徽章 dsh.so 安装徽章

它解决什么

不断增长的 Agent 历史转化为图谱导航和精简的近期上下文

Graph Memory 接管的是发给模型的历史表面,不会删除 DSH 的事件记录。默认保留最近 5 个已完成用户轮次;已完成的推理和工具轨迹不再重复发送;旧轮次与跨会话记忆按当前问题自动召回。

先看真实结果

DSH 20 轮首请求上下文对比

GLM-5.2 真实 20 轮测试原生 DSHDSH + Graph Memory变化
第 20 轮首请求56,998 Token16,769 Token−70.58%
第 20 轮模型可见消息17124−85.96%
20 轮首请求上下文累计532,451 Token257,656 Token−51.61%
全部实测 Token¹2,487,7762,401,512−3.47%

¹ 包含主 Agent 随机工具循环、20 次图谱抽取和 125 次 Embedding 请求。上下文接管看首请求;完整账单同时公开,避免夸大节省。

20/20 轮任务通过 · 19/20 次结构化抽取成功 · 42 节点 · 55 边 · 42 向量 · 新 Session 无需 gm_search 即召回最终事实。

查看 Markdown 实测报告、逐轮数据、方法与限制 →

上下文可以缩小,记忆不会消失

Graph Memory 已在 DSH 启用 全新 DSH Session 中的跨会话召回

图谱只是导航层,不是拿摘要代替证据。TASK、SKILL、EVENT 节点会指回原始用户问题和最终可见回答,召回时把这些精确来源一起交给模型。

安装到 DeepSeek Harness

Node.js 22.13+ · 不 fork DSH · 当前 beta 可直接从 GitHub 安装:

npx @deepseek-ai/dsh plugin --profile web add github:adoresever/graph-memory
npx @deepseek-ai/dsh --profile web --dump-config
npx @deepseek-ai/dsh web

Settings → Plugins 确认 graph-memory/dsh 已启用。默认数据库位于 $DSH_HOME/graph-memory/graph-memory.db,通常是 ~/.dsh/graph-memory/graph-memory.db。

已交付能力

能力实现方式
上下文接管最近 N 个完成轮次可配置;旧模型表面由一个归档标记替换
轻量抽取只处理用户问题与最终回答;严格结构化工具合同;不摄入推理/工具轨迹
查询优先召回向量 Top-K,FTS5 降级;图谱命中携带精确来源问答
持久记忆本地 SQLite、稳定溯源、跨轮次/跨会话/跨项目召回
失败行为非法抽取进入隔离;前台对话继续;坏数据不修补、不入库
宿主支持DSH/Cordis 原生适配;继续维护 OpenClaw Context Engine 适配
可选 Embedding

支持 OpenAI-compatible Embedding。没有配置向量时自动降级到 FTS5,不阻塞对话。

export GRAPH_MEMORY_EMBEDDING_API_KEY="replace-with-your-key"
export GRAPH_MEMORY_EMBEDDING_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export GRAPH_MEMORY_EMBEDDING_MODEL="text-embedding-v4"
export GRAPH_MEMORY_EMBEDDING_DIMENSIONS="1024"
dsh web
DSH 工具与独立抽取模型
工具用途
gm_status存储、抽取、召回、向量与保留状态
gm_search显式搜索图记忆
gm_record确定性写入 TASK、SKILL 或 EVENT
gm_stats图谱与保留策略回执
gm_maintain执行一次有界维护
gm_retry_extraction显式重试隔离的抽取任务

自动召回不需要工具调用。抽取可通过 GRAPH_MEMORY_LLM_PROVIDER 和 GRAPH_MEMORY_LLM_MODEL 使用独立模型;可选控制项为 GRAPH_MEMORY_LLM_REASONING_EFFORT 与 GRAPH_MEMORY_LLM_MAX_TOKENS。

OpenClaw 兼容
openclaw plugins install graph-memory
openclaw plugins enable graph-memory
openclaw gateway restart

在 ~/.openclaw/openclaw.json 激活 Context Engine:

{
  "plugins": {
    "slots": { "contextEngine": "graph-memory" },
    "entries": { "graph-memory": { "enabled": true } }
  }
}

早期 OpenClaw 七轮 Token 对照

Graph Memory Pro

仓库包含实验性的 DSH Pro Lite Host + Client,只读读取 Community SQLite。2D/3D 图工作台、对话分屏与受控拖入上下文仍在规划中。详见 dsh-pro/README_CN.md

验证与边界

当前 beta 1.6.0-beta.13 已通过 124/124 自动化测试、两套 TypeScript 构建、npm 包验证,并在官方 DSH 0.1.3-alpha.1(d347e70390)完成全新 profile 安装和启动。

  • 结构化抽取仍依赖模型遵守合同:实测 19/20 成功;失败数据保持隔离,且不会阻塞前台对话。
  • 召回数量由 Top-K 限制。聚焦问题实测成功;一次包含多个主题的宽查询可能需要提高 Top-K 或拆开提问。
  • 当前发布的是工程工作流实测,不是 LoCoMo/LongMemEval 的通用分数。

benchmarks/dsh-context-takeover/ 复跑。原始对话、供应商响应、本地路径和密钥均未进入仓库。

开发

npm install
npm test
npm run build
npm run verify:package

MIT © 2026 adoresever · 素材与商标说明