CodeGraph:DeepSeek Harness 的代碼知識圖譜插件

前言

在基於 DSH 的智能體開發中,理解代碼庫結構、函數調用關係或模塊依賴是常見瓶頸。CodeGraph 插件通過將代碼解析爲可查詢的索引,解決這一問題。

插件定位

CodeGraph 是一個代碼知識圖譜插件,索引符號、調用點和導入項到 SQLite 中,並通過 CLI 或 stdio MCP 工具服務器回答調用/依賴問題。

核心功能

  • 調用圖譜:支持查看調用者與被調用者。
  • 依賴圖譜:支持查看模塊依賴與被依賴。
  • 全文搜索:支持符號名稱、文檔字符串、簽名的本地全文搜索。
  • 影響分析:支持傳遞閉包分析,查看修改某符號會受影響的對象。
  • 增量索引:支持基於內容哈希的比較,僅重新解析變更文件。
  • 可視化導出:支持導出 Graphviz DOT 或 JSON 格式。
  • 查詢緩存:工具服務器對只讀查詢提供 30 秒 TTL 緩存。
  • 解析引擎:內置兩個解析引擎,tree-sitter(精確)和 regex 掃描器(零依賴)。

安裝與啓用

在 DSH 中安裝插件:

dsh plugin --profile demo add github:JohnXu22786/codegraph

典型用法

插件提供 CLI 和 MCP 工具服務器兩種調用方式。

  1. 構建索引
    codegraph index
  1. 調用關係查詢
    codegraph callers services.orders.create_order  # 查詢誰調用了該函數
    codegraph callees app.run                       # 查詢該函數調用了誰
  1. 依賴關係查詢
    codegraph deps services.billing                 # 查詢模塊依賴
    codegraph dependents services.billing           # 查詢誰依賴該模塊
  1. 全文搜索
    codegraph search 'coupon'                      # 搜索符號名、文檔字符串等
  1. 影響分析
    codegraph impact services.billing.price         # 查詢傳遞調用鏈
  1. 查看狀態與導出
    codegraph status                               # 查看索引統計
    codegraph export dot -o graph.dot              # 導出可視化圖譜
  1. 啓動工具服務器
    codegraph serve                                # 啓動 stdio 工具服務器

注意事項

  • 環境要求:需要 Python ≥ 3.10。
  • 語言支持:支持 Python、JavaScript、TypeScript、Go、Java、Rust。
  • 實現方式:採用自包含實現,使用 Python 標準庫 + SQLite,無強制第三方依賴。
  • 跨文件解析:跨文件解析依賴啓發式算法,優先按同文件精確匹配、導入路徑、包名、全局唯一名排序。
  • DSH 集成:通過 DSH 內置的 MCP 客戶端加載。
  • Node 橋接:安裝後,Node 橋接器會將工具暴露爲 codegraph_callers、codegraph_callees 等工具名。
  • 錯誤處理:只讀工具在沒有索引時會返回錯誤。

結語

CodeGraph 提供了一種結構化方式來分析代碼庫。

羽毛球分组比赛记分
小程序二维码

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

小夜