fango19961106-dotcom/dsh-knowledge-graph ↗★ 0
dsh-knowledge-graph
用于 DeepSeek Harness 智能体的持久化知识图谱:记住经验/模式/决策,支持跨会话的 FTS5 搜索。零依赖(node:sqlite)。
AI 分析
核心用途是让智能体具备跨会话的经验记忆与检索能力。适合需要 Agent 长期积累项目经验、避免重复犯错并支持全文检索的开发任务。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:fango19961106-dotcom/dsh-knowledge-graph说明文档
阅读完整 README ↗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:
| Tool | Purpose |
|---|---|
kg_remember | Persist a lesson / pattern / decision / field note / false positive |
kg_search | BM25 full-text recall across everything ever remembered |
kg_recent | Newest 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