Theme / v0.10.8

Codebase Memory

程式碼記憶與知識圖譜 MCP

指令詳解

get_graph_schema 工具詳解

如何使用 get_graph_schema 獲取圖譜底層 Schema 結構,理清節點類型與關係邊定義

指令用途

大語言模型(LLM)在使用 query_graph 進行 Cypher 圖查詢時,必須事先知道圖譜中定義了哪些 節點標籤 (Node Labels) 以及 關係類型 (Relationship Types)。如果沒有這些元數據(Metadata),AI 就會憑空猜測關係名稱,導致寫出錯誤的 Cypher 語句而執行失敗。

get_graph_schema 專為提供 圖譜結構描述 而生。它回傳當前圖譜中所有有效的節點類型(如 Class, Method, Interface)以及邊關係類型(如 CALLS, IMPLEMENTS, EXTENDS),是 AI 助手在進行語意圖查詢前必須優先調用的引導工具。


運作流程

  1. 架構查詢:讀取圖譜底層的元數據字典。
  2. 提取模型結構:列出所有的 Node properties(節點屬性)與 Edge direction(邊方向性)。
  3. 回傳與格式化:以標準圖 Schema 描述回傳,方便 AI 進行 Cypher 語句生成。

實戰對話範例

範例:獲取圖譜 Schema 以便生成 Cypher 查詢

  • You:
    /opsx:explore "我想寫一個 Cypher 來查詢類別關係。請先幫我查詢圖譜 Schema。"
  • AI:

    好的,為了寫出 100% 正確的 Cypher 語句,我將首先調用 get_graph_schema 獲取圖的結構定義。

    CM 呼叫: get_graph_schema()
    CM 回傳:

    {
      "nodeLabels": ["Project", "Directory", "File", "Class", "Interface", "Method", "Field"],
      "relationshipTypes": ["CONTAINS", "DEPENDS_ON", "IMPLEMENTS", "EXTENDS", "CALLS", "AFFECTS"],
      "nodeProperties": {
        "Class": ["name", "qualifiedName", "filePath", "startLine", "endLine"],
        "Method": ["name", "qualifiedName", "filePath", "startLine", "endLine", "isAsync"]
      }
    }

    分析
    圖譜 Schema 定義非常清晰:

    • 類別節點為 Class,包含 qualifiedName 屬性。
    • 方法節點為 Method,與類別是 CONTAINS(包含)關係,方法間是 CALLS(呼叫)關係。

    現在我可以使用這些精確的標籤,為您撰寫查詢呼叫關係的 Cypher 語句了。