跳至主要內容

給 Zed 使用者

Zed 很快。代理還是得先找到程式碼。

Zed 代理依據你開啟的檔案和你給的指示工作。Maguyva 為整個程式碼庫建立索引並透過 MCP 回傳,所以代理會直接問某個符號在哪裡,而不是用猜的。

Free 方案:3 個儲存庫, 最多索引 5 萬行儲存庫程式碼,免信用卡。

一筆 context_servers 項目:一個 URL,加一個 Authorization 標頭。

關於 Zed 你需要知道的

四項 Zed 專屬事實,沒有一項困難。

// 設定檔

settings.json

遠端伺服器放在 context_servers 底下。用 zed: open settings file 開啟檔案,或從 Settings → AI → MCP Servers 新增伺服器。

// 傳輸方式

遠端,以 URL 連線

Zed 透過 HTTP 直接連到 Maguyva 的遠端端點。不需要本機程序,也不需要 Node.js。

// 金鑰

直接寫在標頭裡

本指南沒有驗證 Zed 標頭中的環境變數展開,所以金鑰直接寫進 Authorization 標頭。請把它放在使用者設定裡,而不是會提交的檔案裡。

// 核准

工具權限

Zed 預設在每次呼叫工具前都會詢問。可以在 agent.tool_permissions.tools 底下,用 mcp:maguyva:find_symbol 這類鍵,逐一允許 Maguyva 的工具。

專案指示是一份工作約定,儘管用。

# .rules
- 宣告變更完成前,先執行程式碼庫的測試指令。
- 只在被要求修改的套件內編輯。

Zed 只載入一個專案指示檔:在一份以 .rules 開頭、包含 AGENTS.md 與 CLAUDE.md 的固定清單中,第一個符合的那個。個人指示放在 ~/.config/zed/AGENTS.md。適合寫進去的有:

  • 建置、測試與 lint 指令。
  • 代理老是弄錯的慣例。
  • 代理不該碰的目錄。

指示檔告訴代理該怎麼工作。它沒辦法告訴代理,四千個檔案裡有哪些在呼叫它正要修改的那個函式。

開啟的緩衝區不夠用的地方

Zed 代理無法從眼前檔案學到的三件事。

// 開啟的檔案不是整個程式碼庫

代理只看得到你開啟的和它 grep 到的。另一個套件裡同名的輔助函式看起來一模一樣,直到錯的那個被出貨。

// 呼叫端不在畫面上

“改了這個簽章會壞掉什麼?”是圖譜的問題。沒有索引,代理只能一個檔案一個檔案地讀,直到回合數或脈絡用完。

// 脈絡有預算

代理為了摸清狀況而開啟的每個檔案,都在消耗原本能用在變更本身的 token。一個附 file:line 的排序答案,比十次試探性讀取更省。

作為 Zed 脈絡伺服器的 Maguyva

一筆 context_servers 項目讓 Zed 代理獲得:

  • 針對已索引程式碼庫的 11 個工具 語意、結構(AST)、圖譜與文字搜尋,外加符號查找、依賴方與檔案擷取。
  • 附檔案路徑與行號的答案 涵蓋 285+ 種語言,代理第一次就能開對檔案。
  • 隨時保持最新的工具清單 伺服器宣告有變更時,Zed 會重新載入該伺服器的工具,不需要重新啟動。

Zed 給代理一個快速的編輯器。

Maguyva 給代理一張程式碼地圖。

兩種工作流程

先問地圖,再動手編輯。

// workflow 01

在代理開啟分頁之前找到實作

zed agent> 對外 Webhook 的重試策略在哪裡?

find_symbol("retryPolicy")
  src/webhooks/dispatch.ts:41   retryPolicy()   ← 實作
  src/webhooks/__mocks__/dispatch.ts:9   ← 測試替身

→ 代理開啟的是 dispatch.ts:41,而不是測試替身。
[exit 0]

一次排序查詢取代一輪 grep。答案以代理能直接開啟的路徑和行號回傳。

// workflow 02

修改簽章前先查依賴方

zed agent> 幫 fetchInvoice 加一個 timeout 參數

dependency_search("fetchInvoice", dependents)
  分布在 4 個套件中的 7 個呼叫端

→ 代理一次更新全部七個呼叫點。
[exit 0]

影響範圍在第一次編輯前就到手,而不是在建置失敗之後。

在 Zed 中設定

三個步驟。Free 方案:3 個儲存庫, 最多索引 5 萬行儲存庫程式碼,免信用卡。

  1. // step 01

    在 maguyva.ai 索引一個程式碼庫

    挑一個你已經熟悉的,這樣你才能評分答案。

  2. // step 02

    在 Zed 設定的 context_servers 中加入 Maguyva

    ~/.config/zed/settings.json

    {
      "context_servers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer mgv_xxxx"
          }
        }
      }
    }
  3. // step 03

    替換預留位置,然後問一個問題

    把 mgv_xxxx 換成你的 API 金鑰並儲存。問代理一個你已經知道答案的問題,再開啟它引用的檔案。