Skip to content

Repository files navigation

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

Before Now
Extract TASK / SKILL / EVENT directly from messages Create one self-contained turn summary, then derive SPO from that same sentence
Graph nodes could become the factual payload Summary, SPO, and communities only navigate; original question and final answer remain the evidence
Old memories from the active session could be filtered wholesale Exclude only sources still visible in the fresh window; archived same-session and cross-session recall share one path
Community expansion could pull a whole neighborhood Local LPA narrows candidates, query-time PPR ranks them, and only matched Q/A is recovered
DSH retained complete tool and reasoning traces Completed 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 run Historical native DSH baseline Latest Graph Memory Change
T20 first request 56,998 tokens 11,008 tokens −80.69%
T20 model-visible messages 171 21 −87.72%
T01–T20 first-request context 532,451 tokens 165,896 tokens −68.84%
All measured tokens¹ 2,487,776 2,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

Capability Implementation
Context takeover Configurable newest-N completed turns; one archive marker replaces the older model surface
Lightweight extraction Only the user question and final answer; strict structured tool contract; no reasoning/tool transcript ingestion
Query-first recall Vector Top-K with FTS5 fallback; exact source Q/A travels with graph hits
Durable memory Local SQLite, stable provenance, cross-session and cross-project recall
Failure behavior Invalid extraction is quarantined; foreground conversation continues; bad data is not repaired or persisted
Host support Native 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
Tool Purpose
gm_status Store, extraction, recall, vector, and retention state
gm_search Explicit graph-memory search
gm_record Deterministically persist a TASK, SKILL, or EVENT
gm_stats Graph and retention receipts
gm_maintain One bounded maintenance tick
gm_retry_extraction Explicitly 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

About

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

Topics

Resources

Stars

610 stars

Watchers

5 watching

Forks

Releases

Packages

Contributors

Languages