標籤: 本機向量搜尋

  • Argyph:在本機幫 AI 裝上程式碼大腦

    Argyph:在本機幫 AI 裝上程式碼大腦

    📌 本文重點

    • Argyph 把你的專案變成本機「程式碼大腦」
    • 三層索引:檔案、symbol graph、向量檢索完全離線
    • 可接 Claude / MCP,協助 debug、refactor、大型專案導覽

    你可以把 Argyph 想成「替你的 AI 助理裝一個本機程式碼大腦」,讓它在大專案裡不再只會 grep 和亂抓檔案。

    Argyph GitHub 專案連結原始 Reddit 介紹


    為什麼需要一個「程式碼大腦」?

    一般 AI 助理(包含 Claude、各種 MCP 代理)在大專案裡常見幾個痛點:

    • 只會用關鍵字搜尋(grep),找不到真正關鍵的函式或類別
    • 動不動就把整個檔案塞進 context,還是看不懂整個呼叫鏈
    • 要用語義查詢,就得把程式碼丟上雲端向量庫,卡在隱私與延遲

    Argyph 解決的是:在完全本機的前提下,讓 AI 可以精準定位「哪個函式、在哪個檔、被誰呼叫」,再搭配向量檢索補上語義理解

    💡 關鍵: Argyph 讓 AI 在本機就能理解整個專案結構,不必依賴雲端向量庫或大量 context 塞資料。


    核心功能:三層索引的本機程式碼大腦

    1. 檔案索引:先搞清楚專案長什麼樣

    Argyph 的第一層是「檔案清單」,會掃描整個專案,把所有檔案路徑與基本資訊建成索引。

    你可以立刻拿來做這些事:

    • 問 AI:列出這個 monorepo 裡所有包含 payment 的資料夾與檔案,幫我分類前端 / 後端 / infra
    • 快速導覽:請 AI 幫你列出「所有 migration 檔」、「所有含 config 的檔案」,再逐步打開看

    這一層幾乎等於「強化版 tree + grep」,但 AI 不用自己亂找,它有一份完整的檔案地圖可以參考。

    2. Symbol Graph:函式、類別、呼叫鏈一次串起來

    第二層是重點:Argyph 用 tree-sitter 解析程式碼,建立一個 symbol graph(符號圖)

    • 每個函式、類別、變數變成一個節點
    • 誰呼叫誰、誰繼承誰、誰 import 誰,變成邊

    這代表 AI 不再只看到「文字」,而是有:

    • get_user() 在哪個檔、哪一行
    • 它被哪些 API handler 呼叫
    • 這個 class 的 method 被哪些 service 用到

    你可以這樣用:

    • 問:列出所有呼叫 process_payment 的函式,照檔案列出並解釋呼叫差異
    • 問:幫我畫出 UserService 相關的呼叫鏈,從 HTTP handler 到 DB 層

    這對 debug / refactor / 新人 onboarding 都很實用,因為 AI 能「走呼叫鏈」,不是只看單一檔案。

    💡 關鍵: 有了 symbol graph,AI 可以沿著呼叫鏈追蹤影響範圍,適合用在風險評估與大規模重構。

    3. 向量索引:在本機做語義搜尋

    第三層是向量索引:

    • Argyph 內建向量資料庫與嵌入模型
    • 完全離線,不需要任何 API key

    這允許你用自然語言查詢「概念」而不是關鍵字,例如:

    • 找出專案裡所有處理權限驗證的邏輯,依風險高低幫我摘要
    • 幫我找所有寫死 API key 或憑證的地方,並列出檔案與行號

    向量搜尋是建立在 symbol graph 之上的:AI 可以先找到語義上相近的函式,再搭配呼叫鏈,給出比較完整的分析。

    💡 關鍵: 語義搜尋結合 symbol graph,讓 AI 查的是「概念 + 實際呼叫點」,而不只是模糊的文字相似度。


    適合誰用?三個具體場景

    1. 大型專案導覽與理解舊 codebase

    如果你正在接手一個幾萬行、幾百個檔的專案:

    • 問 AI:幫我整理這個專案的主要模組結構,列出每個模組的 entry point
    • 問 AI:找出所有 user login 流程相關的函式與檔案,畫出流程順序

    實際效果:你不用一個一個資料夾展開找,只要問問題,AI 會用 Argyph 的索引幫你拉出結構化的地圖

    2. 搭配 Claude / MCP 做 refactor 或 bug trace

    Argyph 是一個 MCP server,可以直接接在支援 MCP 的代理上,例如:

    • Claude Desktop / Claude for Web(啟用 MCP)
    • 其他支援 MCP 的本機代理

    實際操作可以是:

    • 問:這個 bug 是某個 API 回傳格式變了,幫我找出所有依賴該 API 回傳結果的地方,評估改動風險
    • 問:我要把舊的 logging library 換成新的,列出所有使用舊 library 的呼叫點,並給我一個逐步 refactor 計畫

    AI 會:

    1. 用 symbol graph 找到所有相關函式與呼叫點
    2. 用向量搜尋補充語義相似的地方(例如命名不一致的 logging)
    3. 把結果給你看,或協助生成 patch(視你的代理能力而定)

    3. 公司內部需要嚴格保護原始碼

    很多團隊不願意把全專案丟上雲端向量庫(法遵 / NDA / 產業規範等):

    • Argyph 是單一 binary,本機跑、不會把程式碼傳到任何外部服務
    • 只做只讀索引:不會幫你修改、commit 或執行程式碼

    適合:

    • 金融、醫療等需嚴格控管原始碼的公司
    • 只允許在內網跑工具的團隊
    • 想先在個人機器上試驗「AI + codebase」的工程師

    你可以放心地讓 AI 在專案裡查來查去,但知道一切都留在你自己的機器或公司網路


    和一般 AI 助理 / 雲端向量庫怎麼比?

    如果你現在已經在用「AI + 專案」的工具,可以參考這個比較。

    名稱 核心功能 免費方案 適合誰
    一般 AI 助理(無) 單純依靠上下文 + grep 視服務而定 小專案、單檔問題
    雲端向量檢索工具 把程式碼上傳雲端做語義搜尋 多有免費層級 不介意程式碼上雲端的團隊
    Argyph 本機三層索引(檔案 + symbol + 向量) 開源免費 想要本機、隱私保護又要強檢索的工程師

    怎麼開始:從安裝到接上 Claude / MCP

    以下是一條「最快能跑起來」的路徑,你可以照著做。

    步驟 1:安裝 Argyph(Rust 單一 binary)

    1. 前往 GitHub Releases
    2. 下載對應你系統的 binary(macOS / Linux / Windows)
    3. 將檔案改名為 argyph(可選),並移到你的 $PATH 例如:
    chmod +x argyph
    mv argyph /usr/local/bin/
    

    若你有 Rust 環境,也可以選擇 cargo install(以官方 README 為準)。

    步驟 2:對你的專案建立索引

    在專案根目錄執行:

    cd /path/to/your/project
    argyph index
    

    接著會發生:

    1. 立即建立檔案索引(可用來問檔案結構)
    2. 持續建立 symbol graph(可用來問呼叫鏈)
    3. 背景生成向量索引(可用來做語義搜尋)

    你可以邊等邊用,因為 Argyph 的設計是每一層建好就能用,不必等全部完成。

    步驟 3:在 Claude / MCP 代理中啟用 Argyph

    以 Claude(支援 MCP)為例,整體步驟大致如下(細節以官方文件為準):

    1. 打開 Claude 的 MCP 設定檔,例如 mcp.config.json
    2. 加入一個 Argyph server 設定:
    {
      "servers": {
        "argyph": {
          "command": "argyph",
          "args": ["server"],
          "env": {
            "ARGYPH_PROJECT_ROOT": "/path/to/your/project"
          }
        }
      }
    }
    
    1. 重新啟動 Claude 或重新載入 MCP 設定

    之後在 Claude 裡,你可以直接用自然語言要求它「用 Argyph 的 context」來回答與專案相關的問題(多數 MCP 代理會自動挑選需要的工具)。


    實用查詢範例:馬上能用的 prompt

    你可以照抄以下查詢,稍微改一下專案名就能套用。

    範例 1:找出所有調用某 API 的地方並總結風險

    「請用 Argyph 的索引幫我:
    1. 找出專案裡所有呼叫 createPaymentSession 的地方,列出檔案路徑與行數。
    2. 對每個呼叫點,說明它在什麼情境被呼叫(例如:checkout、訂閱續費)。
    3. 總結如果我修改這個 API 的回傳格式,可能影響的功能與風險。」

    範例 2:整理某個 domain 的完整呼叫鏈

    「這個專案是單一體 monolith,請用 Argyph 的 symbol graph 幫我:
    1. 找出所有跟 user onboarding 相關的函式與 class。
    2. 以『從 HTTP endpoint → service layer → DB layer』的順序,列出呼叫鏈。
    3. 幫我總結每一層主要職責,方便我之後 refactor。」


    總結:把 AI 當「懂專案的夥伴」,而不是「會寫程式的 autocomplete」

    Argyph 的價值在於:讓 AI 真正理解你的專案結構,而不是在一堆檔案裡瞎猜

    如果你有一個中大型 codebase,又想保持程式碼只待在本機或公司內網,建議可以:

    1. 把 Argyph 裝起來
    2. 對你的主專案掃一輪索引
    3. 在 Claude / MCP 代理裡接上它,從「幫我畫出這個專案的主要模組」這種問題開始試

    你會發現,AI 從「會寫程式」變成了「懂這個專案的同事」。

    🚀 你現在可以做的事

    • Argyph GitHub Releases 下載並安裝 argyph binary
    • 在你主要的專案根目錄執行 argyph index 建立三層索引
    • 打開你的 mcp.config.json,加入 Argyph server 設定並在 Claude / MCP 裡實際問幾個專案問題