Theme / v0.10.8

Codebase Memory

程式碼記憶與知識圖譜 MCP

指令詳解

index_repository 工具詳解

如何使用 index_repository 對整座專案進行初始化掃描與 Tree-sitter 語法樹知識圖譜建置

指令用途

在全新的專案中啟用 Codebase Memory MCP 服務時,系統的圖資料庫此時是空的。為了讓 AI 助手能具備全知大腦,我們必須對專案中的所有原始碼檔案進行一次全面且徹底的語法與關係掃描。

index_repository 是 Codebase Memory 中的 全量圖譜建置引擎。它會遍歷工作區下的所有檔案,調用 Tree-sitter 對各個程式語言檔案(目前發行版涵蓋 155 種語言)進行語法解析,將可辨識的類別、介面、方法、欄位提取為圖節點,並建立它們的相依與呼叫邊關係,為後續的檢索奠定基礎。


運作流程

  1. 檔案系統遍歷:遍歷專案目錄下除了配置排除清單(如 exclude)外的所有檔案。
  2. 多執行緒並行解析:利用 Thread Pool 對多個原始碼檔案進行並行的 Tree-sitter AST 解析。
  3. 關係拓撲建立
    • 提取變數宣告、繼承關係(IMPLEMENTS, EXTENDS)。
    • 提取呼叫關係(CALLS)。
  4. 寫入圖資料庫:將節點與邊持久化寫入本地圖譜資料庫,並輸出建置統計;不要把它與需要另行部署的 Neo4j 服務混為一談。

實戰對話範例

範例:在新工作區中啟動全量圖譜建置

  • You:
    /opsx:explore "我剛剛把 codebase-memory 註冊到 IDE 中。請幫我對這個 5 萬行的專案執行 initial index 建置。"
  • AI:

    好的,為了給 AI 建立完整的程式碼依賴記憶,我將呼叫 index_repository 工具對整個專案進行深度語法樹編譯。

    CM 呼叫: index_repository()
    CM 回傳:

    {
      "status": "completed",
      "filesParsed": 248,
      "totalLinesOfCode": 48200,
      "nodesGenerated": 1824,
      "edgesGenerated": 4921,
      "timeTakenMs": 1820,
      "databasePath": "D:/Repo/TechSpecs/.gemini/codebase-memory.db"
    }

    分析
    哇!全量索引已在 1.82 秒內建置完畢!

    • 解析了 248 個檔案(共 48,200 行代碼)。
    • 生成了 1,824 個語意節點與 4,921 條依賴關係邊。

    圖譜已就緒!現在您可以向我詢問關於這個專案的任何依賴關係,我都能在幾毫秒內給予您精準的回答。