dsh-notemap:面向 DSH 的无头共享知识图谱

前言

在 DeepSeek Harness(DSH)里跑多轮、多智能体任务时,笔记和结论往往散落在对话与工具返回值里。只靠会话上下文或纯文本摘抄,很难表达「这条结论和那条事实有多相关、置信度如何」,也不方便跨会话复用。向量检索能找相似段落,但弱于显式的图结构与可计算的遍历。

下面介绍社区插件 dsh-notemap(snow-the/dsh-notemap):在 DSH 进程内维护一张带量化关系的笔记图谱,通过 notemap_* 工具供智能体读写与查询;自 0.12.0 起为 Headless 形态,不提供画布 UI,由 agent 直接查图。

这是什么

  • 定位:Shared knowledge graph for DeepSeek Harness(package.json 中的 description)。
  • 维护者:GitHub 用户 snow-The。
  • 分类:社区目录 SkillHub 将其归为「记忆」;仓库当前 0 star(GitHub 页面与目录页一致)。
  • 许可证:MIT(package.json)。
  • 当前版本:0.15.0(SkillHub 目录页与 package.json 一致)。

插件通过 Cordis bundle patch 注册为宿主插件 dsh-notemap,包名为 @snow-the/dsh-notemap:

# cordis.patch.yml(节选)
- insert:
    - id: dsh-notemap
      name: '@snow-the/dsh-notemap'

注释说明:宿主注册 notemap_* 图工具;0.12.0 起已移除 canvas UI,仅保留无头工具面。

核心功能

以下能力均来自 package.json 简介、CHANGELOG、cordis.patch.yml 与仓库测试/类型声明,未单独编造成户案例。

笔记与量化关系

图谱节点为笔记(note),边带 weight / confidence 等量化关系(简介与测试中的 addEdge 用法)。写入侧测试覆盖 notemap_add(可指定 title、content、id、provenance 等);节点 meta.provenance 可取 agent_authored、session_derived、external_source。

图算法与检索工具

CHANGELOG 与测试用例体现的工具面包括(共约 27 个注册工具,以仓库 test/tools.test.mjs 为准):

方向 工具名(示例) 作用概要
检索 notemap_search、notemap_recall、notemap_fusion 按关键词等在图中检索、召回与跨会话/跨 agent 融合索引
遍历 notemap_neighbors、notemap_related、notemap_paths、notemap_common、notemap_context 邻接、相关节点、路径(含 BFS/Dijkstra 等图算法场景)、共同邻居、以 seed 为心的子图
分析 notemap_centrality、notemap_pagerank 中心性与 PageRank
元数据 notemap_labels、notemap_stats、notemap_filter 标签(默认按度数排序;prefix 为子串匹配)、统计、结构化过滤
解析 notemap_resolve 将 ID 或标题 解析为节点;返回 matched_by(id / title / ambiguous / none),不静默猜错节点
协作 notemap_agents、notemap_consensus 与多 agent 相关的索引/共识查询
数据 notemap_export 导出图数据(0.12.0 之前读工具异常时仍可通过其访问数据)
维护 notemap_add、notemap_autolink(0.11.2) 写入笔记;bigram-Jaccard 语义自动连边

列表类读工具返回带 items、total、returned、truncated、unknown_id 的 envelope,用于区分「没有结果」与「句柄未解析」或「结果被截断」。

快照与会话导入

简介提到 DuckLake-inspired snapshots;notemap_stats 的渲染测试入参含 snapshots 字段。导出的 importSessions() 可从会话目录导入 checkpoint/event,并支持 assistant/message 事件(0.11.2 CHANGELOG)。

检索信号(L4)

退化检索(截断、未解析句柄等)会写入检索日志,默认路径为 <DSH_HOME>/notemap-retrieval.jsonl,可由环境变量 DSH_NOTEMAP_RETRIEVAL 覆盖(dist/index.d.ts 与测试)。与 dsh-session-handoff 的 acp_status 有跨插件约定(CHANGELOG 0.14.0–0.15.0)。正常、完整的检索 deliberately 不记入,以免稀释信号率。

运行形态

  • Headless:智能体通过 DSH 工具调用查图,无画布界面(cordis.patch.yml 与简介)。
  • 依赖:peerDependencies 要求 @deepseek-ai/dsh、@deepseek-ai/dsh-tools 均 >=0.2.0-rc.1;engines.dsh 为 >=0.2.1-rc.2 <0.3.0-0。package.json 中 dsh.compatibility.verifiedAgainst 为 0.2.1-rc.2(该字段供人与 CI 阅读,宿主加载门禁以 peerDependencies 为准,见 docs/compatibility.md)。

安装与启用

SkillHub 目录页标注本插件 可安装,但当前 暂无 README,抓取到的页面也未包含明文安装命令。安装前请自行在 GitHub 仓库 核对源码与 MIT 许可证,并确认 DSH 版本满足 peer 与 engines 约束。

宿主侧插件标识与 npm 包名如下(来自 cordis.patch.yml / package.json):

插件 id:dsh-notemap
npm 包名:@snow-the/dsh-notemap
版本:0.15.0

数据路径相关环境变量在仓库测试中使用(首次加载插件前设置):

# 测试套件中的约定(test/tools.test.mjs)
export DSH_DATA_DIR=/path/to/your/dsh-data
export DSH_NOTEMAP_DB="$DSH_DATA_DIR/g.db"
export DSH_NOTEMAP_RETRIEVAL="$DSH_DATA_DIR/retrieval.jsonl"

具体如何把 @snow-the/dsh-notemap 加入你的 DSH profile,请以你本机 DSH 文档或 SkillHub 安装入口为准;请勿在未核对资料的情况下臆造 dsh plugin add 参数。

典型用法

仓库没有 README,下列步骤复现自 test/tools.test.mjs 对工具边界的 conformance 测试,展示智能体侧常见调用参数(在 DSH 中对应同名 notemap_* 工具)。

1、写入一条笔记并标明来源

// 等价于智能体调用 notemap_add
await notemap_add.execute({
  title: 'provenance probe',
  provenance: 'external_source',
}, {});
// 未声明 provenance 时默认为 agent_authored

2、用标题或 ID 解析节点(遍历类工具只吃 ID)

await notemap_resolve.execute({ handle: 'zig compiler notes' }, {});
// resolved: true, matched_by: 'title', id: 'zig-1'

await notemap_neighbors.execute({ id: 'zig-1' }, {});
// items 为邻接记录;unknown_id 为 null 表示句柄有效

3、检索与图分析

await notemap_search.execute({ q: 'zig', limit: 5 }, {});
await notemap_paths.execute({ from: 'zig-1', to: 'misc-1' }, {});
await notemap_pagerank.execute({}, {});
await notemap_fusion.execute({ q: 'zig', limit: 5 }, {});

4、处理「空结果」与「未找到」

未解析的 ID 会在 envelope 中给出 unknown_id,例如:

await notemap_neighbors.execute({ id: 'definitely-not-a-node' }, {});
// items: [], unknown_id: 'definitely-not-a-node'

notemap_context 对子图使用 unknown_id 字段(0.15.0 起与列表工具词汇统一),未解析 seed 会写入检索日志 kind: "graph"。

经过上面的步骤,agent 可以在不打开 UI 的情况下维护一张可查询、可度量关系的共享笔记图,并在多会话场景下借助 notemap_fusion、importSessions 等能力做融合与导入(行为细节以仓库源码与 CHANGELOG 为准)。

适用场景与注意

适合谁

  • 需要在 DSH 内长期沉淀结构化笔记,并显式维护关系权重、路径与中心性的团队或个人。
  • 多 agent / 多会话希望共用同一图谱与融合索引,而不是每次从零复述上下文。
  • 接受 无头 工作流:由模型通过工具 API 操作图,而非图形画布。

注意事项

  1. 权限:插件随当前 dsh 进程 运行,读写其配置的数据目录与 SQLite(测试中使用 DSH_NOTEMAP_DB);安装前务必审阅源码与许可证。
  2. 文档缺口:SkillHub 与 GitHub 目前均无 README;docs/compatibility.md 只覆盖加载期 peer 判定,不保证功能端到端可用,并明确未跑通全量测试矩阵。
  3. 版本:engines.dsh 带上界 <0.3.0-0,升级 DSH 主版本前需重新核对兼容性。
  4. 生态:DSH 奉行「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-notemap 把「笔记 + 量化关系 + 图算法 + 快照/会话导入 + 跨会话融合」收敛到一组 notemap_* 工具里,适合作为 DSH 记忆类插件的无头图谱后端。查阅安装与更新请以社区目录与仓库为准:

  • 目录页:https://www.skillhub.cn/plugins/snow-The/dsh-notemap
  • 源码:https://github.com/snow-The/dsh-notemap
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜