DSH Hub

Roarpeng/GraphFlow

graphflow

UIWeb UI4 GitHub stars· updated 2026-08-23

Local-first code knowledge graph and context harness for coding agents. MCP + DeepSeek Harness (dsh) plugin.

Install

npx @deepseek-ai/dsh plugin --profile web add @roarpeng/graphflow

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

graphflow DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/graphflow.svg)](https://dshhub.dev/plugins/graphflow)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Roarpeng/GraphFlow, cleaned of badges and images.

GraphFlow

English | 中文

The memory & context harness for coding agents. Local-first code knowledge graph · bounded context compression (~98% token savings) · cross-session learning flywheel.

The community is converging on an "agent harness" vocabulary: memory + hooks + skills are the harness primitives that turn a stateless model into a reliable long-running agent. GraphFlow implements all three for coding agents and ships them through a portable MCP surface (Cursor, Claude Code, 15+ agents):

Harness primitiveGraphFlow implementation
Memory12-language AST code graph + Episodic / Skill / Decision nodes — project knowledge and project experience persist across sessions
HooksOutcome auto-capture (on by default) + Claude Code SessionEnd / Stop and DeepSeek Harness agent/disposed glue close the learning loop automatically — no manual outcome reporting required
SkillsA four-class flywheel (proven / correctable / anti-pattern / noise) with canary validation — skills are promoted by evidence, not by assertion

Pure TypeScript/Node. CLI + MCP + VS Code extension. Fully offline, no API key required.

Why a harness, not another RAG

Most "memory" products are either static injection (load CLAUDE.md / rules files in full on every session) or plain RAG (retrieve chunks, no learning). Both fail in long-lived projects:

  • Static injection pays the same token cost every session regardless of the task, and grows until it is truncated or ignored.
  • Plain RAG retrieves text but never accumulates experience — the thousandth task pays the same cost as the first.

GraphFlow is a harness: memory is dynamic and typed. Each request retrieves only what the current decision needs — graph anchors, compressed summaries, similar past episodes, applicable skills — under an explicit token budget (L0–L3 layered compression, ~98% savings measured). What the agent learns (outcomes, lessons, skills) is written back through hooks, so the harness gets better with use.

It is also local-first and portable: everything runs offline with no API key, and the whole surface is exposed over MCP, so the same memory travels across agents instead of being locked into one vendor's format.

Proof, not promises

All headline numbers come from a public, reproducible benchmark suite (benchmarks/README.md) with published methodology (docs/benchmark-standards.md) and machine-readable JSON dumps pinned to commits:

  • ~98% token savings (8-query suite, 262,926 → 2,843 tokens; independently re-counted with gpt-tokenizer)
  • 132-query golden retrieval set in CI (Hit@5 = 100%, MRR = 0.836, NDCG@5 = 0.601); downloadable open dataset: benchmarks/datasets/retrieval-golden-v1.json — run npm run bench:retrieval
  • Skill A/B: 100% vs 61.5% task success with the flywheel on vs off (26 tasks)
  • Memory ROI: 100% vs 56.5% with episodic memory on vs off (62 tasks, with attribution chains)

Results are commit-anchored so any number above can be checked out and re-run. Third-party reproduction is actively welcomed — see ROADMAP.md for the open invitation.

Memory poisoning protection

Related plugins