← Back to home@adoresever

graph-memory

Deepseek Harness、Openclaw知识图谱记忆插件。2026年4月受邀发布在清华大学讨论会。Knowledge Graph + Memory;Knowledge Graph Context Engine for OpenClaw — extracts structured triples from conversations, compresses context 75%, enables cross-session experience reuse

Stars
626
Language
TypeScript
Created
Mar 10, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

Graph Memory

Graph Memory for DeepSeek Harness, compatible with OpenClaw

Bound the context. Keep the memory.
A native DeepSeek Harness memory plugin that keeps recent conversation turns, archives older history, and recalls exact source-backed knowledge when it matters.

中文 · dsh.so · 20-turn benchmark · Upgrade guide

dsh.so security badge dsh.so install badge

The problem it solves

Long agent history becomes graph navigation plus a compact recent-turn context

Graph Memory owns the model-visible historical surface without deleting DSH's event log. By default it keeps the newest five completed user turns, removes completed reasoning/tool traces from future requests, and recalls relevant older or cross-session source Q/A automatically.

The 1.6 turn-memory navigation upgrade

BeforeNow
Extract TASK / SKILL / EVENT directly from messagesCreate one self-contained turn summary, then derive SPO from that same sentence
Graph nodes could become the factual payloadSummary, SPO, and communities only navigate; original question and final answer remain the evidence
Old memories from the active session could be filtered wholesaleExclude only sources still visible in the fresh window; archived same-session and cross-session recall share one path
Community expansion could pull a whole neighborhoodLocal LPA narrows candidates, query-time PPR ranks them, and only matched Q/A is recovered
DSH retained complete tool and reasoning tracesCompleted turns retain question + final answer; older prefixes collapse to one fixed marker

Writing one completed turn costs exactly one auxiliary LLM call. Community detection and PPR are local. There are no hard-coded node/edge counts, semantic direction gates, or JSON repair that turns invalid output into accepted data. Read the complete design, source map, and porting sequence →

Measured first

DSH 20-turn first-request context comparison

Real 20-turn GLM-5.2 runHistorical native DSH baselineLatest Graph MemoryChange
T20 first request56,998 tokens11,008 tokens−80.69%
T20 model-visible messages17121−87.72%
T01–T20 first-request context532,451 tokens165,896 tokens−68.84%
All measured tokens¹2,487,7762,327,728−6.43%

¹ The latest candidate includes 166 main-agent requests, 20 turn extractions, and 41 embedding requests; the historical baseline made 77 main requests. DSH commits and nondeterministic tool loops differ, so this is not a simultaneous strict A/B. First-request context is the direct takeover metric; the full bill remains visible.

20/20 scenario turns passed · 20/20 structured extractions succeeded · 0 quarantined · 20 turn summaries · 92 SPO triples · 30 communities · 20 summary vectors. T11, T19, and T20 automatically recalled out-of-window memory with exact source question and final answer.

Read the Markdown benchmark, per-turn data, method, and limits →

Memory survives the context window

Graph Memory active in DSH Cross-session recall in a fresh DSH session

The graph is a navigation layer, not a replacement for evidence. TASK, SKILL, and EVENT nodes point back to the original user question and final visible answer; recalled context includes those exact source messages.

Install on DeepSeek Harness

Node.js 22.13+ · no DSH fork · until npm 1.6 is published, install the pinned GitHub release:

npx @deepseek-ai/dsh plugin --profile web add github:adoresever/graph-memory#v1.6.0-beta.16
npx @deepseek-ai/dsh --profile web --dump-config
npx @deepseek-ai/dsh web

The npm registry still serves the old 1.5.8; do not use it to validate DSH. Switch to npx @deepseek-ai/dsh plugin --profile web add graph-memory only after npm view graph-memory version reports 1.6.0-beta.16 or newer.

Confirm that graph-memory/dsh is active under Settings → Plugins. The default database is $DSH_HOME/graph-memory/graph-memory.db, normally ~/.dsh/graph-memory/graph-memory.db.

What ships

CapabilityImplementation
Context takeoverConfigurable newest-N completed turns; one archive marker replaces the older model surface
Lightweight extractionOnly the user question and final answer; strict structured tool contract; no reasoning/tool transcript ingestion
Query-first recallVector Top-K with FTS5 fallback; exact source Q/A travels with graph hits
Durable memoryLocal SQLite, stable provenance, cross-session and cross-project recall
Failure behaviorInvalid extraction is quarantined; foreground conversation continues; bad data is not repaired or persisted
Host supportNative DSH/Cordis adapter; maintained OpenClaw Context Engine adapter
Optional embeddings

Graph Memory supports OpenAI-compatible embedding endpoints. Without embeddings it falls back to FTS5 and does not block conversation.

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 tools and extraction route
ToolPurpose
gm_statusStore, extraction, recall, vector, and retention state
gm_searchExplicit graph-memory search
gm_recordDeterministically persist a TASK, SKILL, or EVENT
gm_statsGraph and retention receipts
gm_maintainOne bounded maintenance tick
gm_retry_extractionExplicitly retry quarantined extraction

Automatic recall needs no tool call. Extraction may use a dedicated model via GRAPH_MEMORY_LLM_PROVIDER and GRAPH_MEMORY_LLM_MODEL; optional reasoning and output controls are GRAPH_MEMORY_LLM_REASONING_EFFORT and GRAPH_MEMORY_LLM_MAX_TOKENS.

OpenClaw compatibility
openclaw plugins install graph-memory
openclaw plugins enable graph-memory
openclaw gateway restart

Activate the Context Engine slot in ~/.openclaw/openclaw.json:

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

Earlier OpenClaw seven-turn token comparison

Graph Memory Pro

The repository also contains an experimental read-only DSH Pro Lite Host + Client plugin backed by Community SQLite. The 2D/3D graph workbench, split view, and controlled drag-to-context remain planned. See dsh-pro/README_CN.md.

Verification and limits

Current beta 1.6.0-beta.16 passes 138/138 automated tests, both TypeScript builds, npm package verification, and a real 20-turn run against the latest DSH source.

  • Structured extraction still depends on model contract compliance: the latest run succeeded 20/20 times; any future failure stays quarantined and never blocks the foreground conversation.
  • Recall is bounded by configurable Top-K. Focused probes succeeded; one broad multi-topic query can require a larger Top-K or separate questions.
  • The published run is an engineering workload, not a universal LoCoMo/LongMemEval score.
  • The design, source-code map, and porting sequence for the summary + SPO navigation + exact-Q/A upgrade are documented in the Chinese upgrade guide.

Reproduce it from benchmarks/dsh-context-takeover/. Raw conversations, provider responses, local paths, and credentials are excluded.

Development

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

MIT © 2026 adoresever · Asset and trademark notes