前言¶
在 DeepSeek Harness(DSH)里跑长会话时,真正值得留档的内容往往散在上下文里:为什么改方向、最终拍板是什么、哪些事还没定、产物落在哪个路径。事后翻聊天记录成本高,截图又缺少层级关系。常见做法是手写大纲或另开文档整理,但和 agent 实际讨论过程容易脱节。
dsh-context-map 是社区维护者 gavinff1990 发布的 DSH 工作流类插件(SkillHub 分类:工作流)。它为 agent 提供工具 context_map:由模型把对话蒸馏成节点,插件负责校验、布局与渲染,输出左→右推进的分层结构图,而不是放射状思维导图。一次调用可同时得到 SVG、交互式 HTML、Mermaid Markdown 与可再渲染的 JSON。
这是什么¶
插件全名 dsh-context-map,当前 README 标注版本 0.3.0,许可证 MIT,零运行时 npm 依赖;要求 Node.js ≥ 20,DSH 兼容范围为 >=0.2.0-rc.1 <0.3.0-0(见 package.json)。它不联网、不读会话日志、不带 API key,只在用户或 agent 指定的输出目录写入产物。
目录页:https://www.skillhub.cn/plugins/gavinff1990/dsh-context-map
源码:https://github.com/gavinff1990/dsh-context-map
核心功能¶
工具入口¶
| 工具 | 作用 |
|---|---|
context_map |
根据 title、nodes 等参数生成架构图并写入文件 |
session_facts |
基于本会话 tools/result 汇总真实读写的文件、执行过的命令与失败记录,供节点引用路径时使用 |
节点上限 300,跨分支 links 上限 150。八种语义类型(kind)各有固定配色:目标、背景、决策、动作、产物、风险、待确认、备注;状态可标 done / active / planned / blocked。
四种产物¶
默认输出目录为 .dsh-context-map(建议 agent 传绝对路径的 outDir):
.dsh-context-map/context-map.svg # 矢量图,可贴文档
.dsh-context-map/context-map.html # 离线 HTML,可缩放、搜索、按类型筛选
.dsh-context-map/context-map.md # Mermaid flowchart + 大纲,适合 PR / wiki
.dsh-context-map/context-map.json # 数据层,供后续修订
同一份输入经确定性布局,重建结果字节一致,可纳入 git。跨分支依赖在图中用虚线绕右缘绘制,不穿过卡片。
修订已有图¶
首次生成会落 JSON。下次可传 update 指向上一次的 <slug>.json,插件对比新旧节点:新增带 + 角标,修改带 ~,删除列入 Markdown 变更段;修订号递增,HTML 可只显示本轮变更。
命令行(可选)¶
同一渲染器可脱网用于 CI 或校样:
node bin/cli.js examples/spec.json --out docs
node bin/cli.js examples/spec.json --json
echo '{"title":"t","nodes":[{"label":"root"}]}' | node bin/cli.js -
安装与启用¶
环境需要:已安装带 dsh plugin 的 DeepSeek Harness、Node.js ≥ 20,且 pnpm 在 DSH 进程的 PATH 上(插件安装由 pnpm 执行)。
npm install -g pnpm
dsh plugin --profile web add dsh-context-map
其它装法(摘自 README):
| 方式 | 命令 |
|---|---|
| 从 GitHub 指定 tag | dsh plugin --profile web add github:gavinff1990/dsh-context-map#v0.1.0 |
| 从 git 仓库 | dsh plugin --profile web add git+https://github.com/gavinff1990/dsh-context-map.git |
| 本地源码 | dsh plugin --profile web add /absolute/path/to/dsh-context-map |
装完确认合成配置里出现挂载点:
dsh --profile web --dump-config | grep -A1 context-map
预期可见 id: context-map 与 name: dsh-context-map。
典型用法¶
1、在会话里一句话触发¶
中英文均可,例如:
把这次讨论画成上下文架构图。
给我一张这个项目的信息架构图,标出风险和还没定的事。
agent 调用 context_map 整理节点并渲染。若需固定位置,可说明「放到 docs/ 下」。
2、需要真实路径时先查 session_facts¶
session_facts()
session_facts({ scope: "files" })
session_facts({ clear: true })
再用返回的 path 填写 artifact 或 action 类节点,减少凭记忆写错路径。
3、增量更新¶
context_map({ title: "...", update: "docs/context-map/context-map.json", nodes: [...] })
4、参数要点(节选)¶
| 参数 | 说明 |
|---|---|
title |
必填,图标题 |
nodes |
必填,节点数组;每项至少 label,可选 kind、detail、parent、id、status |
outDir |
输出目录,默认 .dsh-context-map |
formats |
svg / html / md / json 子集,默认全开 |
theme |
light / dark / auto |
locale |
zh / en,默认 zh |
README 中「什么场景用」表格列举了项目复盘、技术选型、PR 说明、需求拆解、事故复盘等问法与图上会出现的内容类型,可按需选用。
适用场景与注意¶
适合需要在会话结束后把讨论结构固化进文档、PR 或 wiki 的 DSH 用户。HTML 产物支持键盘快捷键搜索缩放、图例筛选与 A3 打印;Mermaid 便于在代码评审里 diff 结构变化。
安装与运行前请注意:
- 插件以当前 DSH 进程权限写工作区(默认仅写入模型指定的 map 目录);安装前应自行查看 GitHub 源码与 MIT 许可证,确认符合团队安全策略。
- 插件显式拒绝向文件系统根目录、
~/.dsh、~/.ssh、~/.aws等位置写入。 - SkillHub 社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;星标等统计以各站点实时数据为准。
- Desktop profile 的安装方式与 web profile 不同,若使用 Electron 版 DSH,需参阅 README「安装详解与排错」中的桌面版说明。
结尾¶
dsh-context-map 补齐 DSH 生态里「把对话变成可维护结构」的一步:校验、分层布局、多格式导出与 JSON 修订链在同一条工具链里完成。若要浏览插件摘要或跟踪更新,可访问 SkillHub 目录页 与 GitHub 仓库。