前言¶
在 DeepSeek Harness(DSH)裏做智能體輔助開發時,常見需求不是立刻改代碼,而是先弄清倉庫結構:某個目錄下有哪些文件、某個文件導出了哪些符號、哪些文件依賴了它、哪些 import 沒有被使用。如果每次都靠手工搜索或逐個讀文件,上下文組織成本會比較高。
dsh-plugin-knowledge-graph 的做法是:先根據工作區根目錄構建一個內存中的代碼庫知識圖譜,再向 DSH 暴露一個 read_graph 工具,讓智能體通過查詢獲取文件結構、符號導出、導入依賴等信息。
這是什麼¶
dsh-plugin-knowledge-graph 是一個 DeepSeek Harness(DSH)插件,GitHub 倉庫位於 Luke-Yong/dsh-plugin-knowledge-graph。它註冊一個名爲 read_graph 的工具,背後是一個代碼庫知識圖譜。
該插件從 Luke-Yong/H 的知識圖譜工具派生,並適配到 DSH 的“一切皆插件”模型。許可證爲 MIT。項目自述處於 infancy 階段,執行行爲、查詢面和兼容性可能在後續迭代中變化。
核心功能¶
這個插件主要提供以下能力:
- 暴露
read_graph工具。 - 在內存中構建代碼庫知識圖譜,覆蓋文件、目錄、導出符號以及它們之間的關係。
- 支持以下查詢類型:
structureexportsimports_ofexporters_ofdependentsunused_imports- 解析 TypeScript/JavaScript 中的符號,以及 Python 的模塊級綁定;Python 支持覆蓋模塊級
def、class和name = value綁定。 - 使用節點類型
dir、file、symbol,以及邊類型CONTAINS、EXPORTS、IMPORTS、IMPORTS_SYMBOL。
安裝與啓用¶
先確認運行環境滿足要求:需要 Node >=22.19,peer dependencies 爲 @deepseek-ai/cordis 和 @deepseek-ai/dsh-tools。
通過 DSH CLI 把插件安裝到指定 profile:
dsh plugin --profile web add github:Luke-Yong/dsh-plugin-knowledge-graph
如果需要固定到某個 commit 以便復現,可以這樣安裝:
dsh plugin --profile web add github:Luke-Yong/dsh-plugin-knowledge-graph#<commit-sha>
典型用法¶
插件註冊的工具是 read_graph。它的參數如下:
query:必填,字符串,格式爲<query_type> <target>。root:可選,絕對路徑,用於指定要構建圖譜的工作區根目錄。默認值是process.cwd()。
這裏需要注意:默認的 root 可能是一個包含多個獨立項目的父目錄。爲了避免 structure 等查詢擴展到兄弟項目樹,建議調用時顯式傳入當前要分析的單個工作區根目錄。
常見查詢示例如下:
structure
exports src/index.ts
exporters_of buildKnowledgeGraph
imports_of src/query.ts
dependents src/knowledgeGraph.ts
unused_imports app.py
這些查詢分別用於獲取目錄結構、查看文件導出、查找某個符號的導出位置、查看文件導入關係、查找依賴某個文件的文件,以及列出文件中未使用的 import。
適用場景與注意¶
這個插件適合在 DSH 智能體流程中需要結構化代碼問答的開發者使用,尤其是面向 TypeScript/JavaScript 或 Python 工作區,希望智能體查詢目錄結構、符號導出、導入依賴和未使用 import 的場景。
使用時有三點需要注意:
1、項目處於早期階段,查詢接口、執行行爲和兼容性都可能變化。
2、插件會讀取工作區文件並構建圖譜。DSH 插件通常以當前 dsh 進程權限運行,因此安裝前應檢查源碼,並確認 MIT 許可證符合你的使用要求。
3、示例中的路徑、符號名和查詢字符串應替換爲你自己工作區中的實際內容。
鏈接¶
GitHub:https://github.com/Luke-Yong/dsh-plugin-knowledge-graph