# Zed rất nhanh. Agent vẫn phải tự tìm mã.

Canonical source: https://maguyva.ai/vi/for-zed

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Agent của Zed làm việc dựa trên các tệp bạn mở và chỉ dẫn bạn đưa ra. Maguyva lập chỉ mục toàn bộ repo và trả lại qua MCP, nên agent hỏi một ký hiệu nằm ở đâu thay vì đoán.

> Một mục context_servers: một URL và một header Authorization.

## Những điều cần biết về Zed

Bốn điều riêng của Zed. Không có gì khó.

### settings.json

Server từ xa nằm dưới `context_servers`. Mở tệp bằng `zed: open settings file`, hoặc thêm server từ Settings → AI → MCP Servers.

### Từ xa, qua URL

Zed kết nối tới endpoint từ xa của Maguyva qua HTTP. Không có tiến trình cục bộ, không cần Node.js.

### Một header nguyên văn

Hướng dẫn này đặt khóa thẳng vào header `Authorization`, vì việc mở rộng biến môi trường trong header của Zed chưa được kiểm chứng ở đây. Hãy giữ nó trong cài đặt người dùng, không phải trong tệp bạn commit.

### Quyền dùng công cụ

Mặc định Zed hỏi trước mỗi lần gọi công cụ. Cho phép từng công cụ của Maguyva dưới `agent.tool_permissions.tools`, với khóa như `mcp:maguyva:find_symbol`.

## Chỉ dẫn dự án là một thỏa thuận làm việc. Cứ dùng nó.

```text
# .rules
- Chạy lệnh test của repo trước khi coi một thay đổi là xong.
- Chỉ sửa trong package mà bạn được yêu cầu thay đổi.
```

Zed nạp một tệp chỉ dẫn dự án: tệp khớp đầu tiên trong một danh sách cố định bắt đầu bằng `.rules` và bao gồm `AGENTS.md` cùng `CLAUDE.md`. Chỉ dẫn cá nhân đặt trong `~/.config/zed/AGENTS.md`. Hãy dùng nó cho:

- Lệnh build, test và lint.
- Quy ước mà agent cứ làm sai.
- Thư mục agent không được động vào.

Tệp chỉ dẫn cho agent biết cách làm việc. Nó không thể cho biết trong bốn nghìn tệp, tệp nào gọi hàm mà agent sắp thay đổi.

## Khi buffer đang mở không còn đủ

Ba điều agent của Zed không thể học được từ các tệp trước mặt nó.

### // tệp đang mở không phải là repo

Agent thấy những gì bạn mở và những gì nó grep được. Một hàm helper trùng tên ở package khác trông y hệt cho tới khi bản sai được phát hành.

### // nơi gọi không nằm trên màn hình

“Đổi signature này thì cái gì hỏng?” là một câu hỏi đồ thị. Không có chỉ mục, agent đọc từng tệp một cho tới khi hết lượt hoặc hết ngữ cảnh.

### // ngữ cảnh có ngân sách

Mỗi tệp agent mở để định hướng đều tốn token mà nó không thể dùng cho thay đổi. Một câu trả lời được xếp hạng kèm file:line rẻ hơn mười lần đọc dò đường.

## Maguyva làm context server của Zed

Một mục context_servers mang lại cho agent của Zed:

- **11 công cụ trên repo đã lập chỉ mục của bạn**: tìm kiếm ngữ nghĩa, cấu trúc (AST), đồ thị và văn bản, cùng tra cứu ký hiệu, thành phần phụ thuộc và truy xuất tệp.
- **Câu trả lời kèm đường dẫn tệp và số dòng**: trên 285+ ngôn ngữ, nên agent mở đúng tệp ngay từ đầu.
- **Danh sách công cụ luôn cập nhật**: Zed nạp lại công cụ của một server khi server thông báo có thay đổi, không cần khởi động lại.

> Zed cho agent *một trình soạn thảo nhanh*.
> Maguyva cho agent *bản đồ của mã*.

## Hai quy trình làm việc

Hỏi bản đồ trước, rồi mới sửa.

### 01. Tìm phần triển khai trước khi agent mở tab

```text
zed agent> chính sách retry cho webhook gửi đi nằm ở đâu?

find_symbol("retryPolicy")
  src/webhooks/dispatch.ts:41   retryPolicy()   ← triển khai
  src/webhooks/__mocks__/dispatch.ts:9   ← mock

→ Agent mở dispatch.ts:41, không phải mock.
[exit 0]
```

Một lần tra cứu có xếp hạng thay cho một vòng grep. Câu trả lời trả về là đường dẫn và số dòng mà agent mở được ngay.

### 02. Kiểm tra thành phần phụ thuộc trước khi đổi signature

```text
zed agent> thêm tham số timeout vào fetchInvoice

dependency_search("fetchInvoice", dependents)
  7 nơi gọi trên 4 package

→ Agent cập nhật cả bảy nơi gọi trong một lượt.
[exit 0]
```

Phạm vi ảnh hưởng có trước lần sửa đầu tiên, không phải sau khi build thất bại.

## Cài đặt trong Zed

Ba bước. Gói Free: 3 repository, Tối đa 50K dòng repo đã index, không cần thẻ tín dụng.

### 01. Lập chỉ mục một repo tại maguyva.ai

Chọn một repo bạn đã biết, để bạn có thể đánh giá các câu trả lời.

### 02. Thêm Maguyva vào context_servers trong cài đặt Zed

`~/.config/zed/settings.json`

```json
{
  "context_servers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer mgv_xxxx"
      }
    }
  }
}
```

### 03. Thay placeholder và đặt một câu hỏi

Thay `mgv_xxxx` bằng khóa API của bạn rồi lưu. Hỏi agent một câu mà bạn đã biết câu trả lời, sau đó mở tệp được trích dẫn.

[Tài liệu MCP](https://zed.dev/docs/ai/mcp) của chính Zed nói về context server, hồ sơ agent và quyền dùng công cụ.

## Lập chỉ mục một repo mà bạn đã biết rõ.

Kết nối Zed qua MCP, rồi đặt một câu hỏi bạn có thể kiểm tra.
