fango19961106-dotcom/dsh-knowledge-graph0

dsh-knowledge-graph

用于 DeepSeek Harness 智能体的持久化知识图谱:记住经验/模式/决策,支持跨会话的 FTS5 搜索。零依赖(node:sqlite)。

AI 分析

核心用途是让智能体具备跨会话的经验记忆与检索能力。适合需要 Agent 长期积累项目经验、避免重复犯错并支持全文检索的开发任务。

套件
dsh-knowledge-graph
版本
0.1.0
最近更新
2026年8月17日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fango19961106-dotcom/dsh-knowledge-graph

dsh-knowledge-graph

Durable knowledge graph plugin for DeepSeek Harness (DSH).

Gives every agent session three model-facing tools backed by one embedded FTS5 database — so lessons, patterns and decisions survive session ends, preset switches and process restarts:

ToolPurpose
kg_rememberPersist a lesson / pattern / decision / field note / false positive
kg_searchBM25 full-text recall across everything ever remembered
kg_recentNewest entries — cheap context refresh at session start

Extracted from the agent-knowledge-graph architecture (L1 entries → L3 BM25 recall → L4 memory), compressed into a single zero-dependency plugin.

Features

  • Zero npm dependencies — storage is Node's built-in node:sqlite (FTS5, WAL mode, porter tokenizer)
  • One file, one store~/.local/share/dsh-knowledge-graph/knowledge.db (respects $XDG_DATA_HOME), shared by every session and preset in the profile
  • Triggers keep FTS in sync — insert/delete triggers, no manual reindex
  • Sanitized MATCH input — model-supplied queries are stripped of FTS operators; malformed input falls back to recent-listing instead of erroring
  • Clean unload — the DB handle closes when the plugin unloads (Cordis effect unwinding)

Install

Requires Node >= 22.5 (for node:sqlite).

# from a checkout
git clone https://github.com/fango19961106-dotcom/dsh-knowledge-graph
cd dsh-knowledge-graph

Then add to a DSH profile (a running dsh is a plugin tree composed of bundles — add this as an out-of-tree plugin):

mkdir -p ~/.dsh/plugins
cp -r . ~/.dsh/plugins/dsh-knowledge-graph

and list it in your profile's cordis.patch.yml:

- insert:
    - id: knowledge-graph
      name: '~/.dsh/plugins/dsh-knowledge-graph/src/index.ts'

(or install from npm once published: npm i dsh-knowledge-graph, then reference dsh-knowledge-graph by name in the patch file).

Tool contract

kg_remember:

{
  "kind": "lesson | pattern | decision | field_note | false_positive",
  "title": "One-line imperative summary",
  "body": "Self-contained note: what happened, the rule, the evidence",
  "tags": ["optional", "keywords"],
  "project": "optional-scope"
}

kg_search / kg_recent return ranked hits with «highlighted» snippets (FTS5 snippet()).

Verify without a model

node --experimental-strip-types -e "
import('./src/store.ts').then(async m => {
  const s = new m.KnowledgeStore('/tmp/kg-test.db');
  s.remember('lesson', 'Pin third-party action SHAs', 'Tag-pinned actions can be mutated; @vX tags are moveable refs.', ['supply-chain'], 'dsh-plugin');
  console.log(JSON.stringify(s.search('supply chain'), null, 1));
  s.close();
})"

License

MIT