前言¶
在 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 倉庫。