# Zed เร็ว แต่เอเจนต์ยังต้องหาโค้ดเอง

Canonical source: https://maguyva.ai/th/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).

เอเจนต์ของ Zed ทำงานจากไฟล์ที่คุณเปิดและคำสั่งที่คุณให้ Maguyva ทำดัชนีทั้งรีโพแล้วส่งกลับผ่าน MCP เอเจนต์จึงถามได้ว่าสัญลักษณ์อยู่ที่ไหน แทนที่จะเดา

> รายการ context_servers เดียว: URL หนึ่งรายการและเฮดเดอร์ Authorization หนึ่งรายการ

## สิ่งที่ต้องรู้เกี่ยวกับ Zed

ข้อเท็จจริงสี่ข้อเฉพาะของ Zed ไม่มีข้อไหนยาก

### settings.json

เซิร์ฟเวอร์ระยะไกลอยู่ใต้ `context_servers` เปิดไฟล์ด้วย `zed: open settings file` หรือเพิ่มเซิร์ฟเวอร์จาก Settings → AI → MCP Servers

### ระยะไกลผ่าน URL

Zed เชื่อมต่อกับ endpoint ระยะไกลของ Maguyva ผ่าน HTTP ไม่มีโปรเซสในเครื่อง ไม่ต้องใช้ Node.js

### เฮดเดอร์แบบตรงตัว

คู่มือนี้ใส่คีย์ลงในเฮดเดอร์ `Authorization` โดยตรง เพราะยังไม่ได้ตรวจสอบที่นี่ว่า Zed ขยายตัวแปรสภาพแวดล้อมในเฮดเดอร์ได้ เก็บไว้ในการตั้งค่าผู้ใช้ ไม่ใช่ในไฟล์ที่คุณ commit

### สิทธิ์ของเครื่องมือ

โดยค่าเริ่มต้น Zed จะถามก่อนเรียกเครื่องมือทุกครั้ง อนุญาตเครื่องมือของ Maguyva ทีละตัวใต้ `agent.tool_permissions.tools` ด้วยคีย์อย่าง `mcp:maguyva:find_symbol`

## คำสั่งของโปรเจกต์คือข้อตกลงในการทำงาน ใช้มันให้เต็มที่

```text
# .rules
- รันคำสั่งทดสอบของรีโพก่อนถือว่างานเสร็จ
- แก้ไขเฉพาะในแพ็กเกจที่ได้รับมอบหมายให้เปลี่ยน
```

Zed โหลดไฟล์คำสั่งโปรเจกต์ไฟล์เดียว: ไฟล์แรกที่ตรงจากรายการตายตัวซึ่งขึ้นต้นด้วย `.rules` และรวม `AGENTS.md` กับ `CLAUDE.md` คำสั่งส่วนตัวใส่ไว้ใน `~/.config/zed/AGENTS.md` ใช้สำหรับ:

- คำสั่ง build ทดสอบ และ lint
- ข้อตกลงที่เอเจนต์ทำผิดซ้ำ ๆ
- ไดเรกทอรีที่เอเจนต์ห้ามแตะ

ไฟล์คำสั่งบอกเอเจนต์ว่าต้องทำงานอย่างไร แต่บอกไม่ได้ว่าไฟล์ไหนในสี่พันไฟล์เรียกฟังก์ชันที่มันกำลังจะเปลี่ยน

## เมื่อบัฟเฟอร์ที่เปิดอยู่ไม่พอ

สามสิ่งที่เอเจนต์ของ Zed เรียนรู้จากไฟล์ตรงหน้าไม่ได้

### // ไฟล์ที่เปิดอยู่ไม่ใช่ทั้งรีโพ

เอเจนต์เห็นสิ่งที่คุณเปิดและสิ่งที่มัน grep เจอ ฟังก์ชันช่วยชื่อเดียวกันในอีกแพ็กเกจดูเหมือนกันทุกอย่าง จนกว่าตัวที่ผิดจะถูกปล่อยออกไป

### // ผู้เรียกไม่ได้อยู่บนหน้าจอ

“ถ้าเปลี่ยนซิกเนเจอร์นี้แล้วอะไรจะพัง?” เป็นคำถามเชิงกราฟ หากไม่มีดัชนี เอเจนต์จะอ่านไฟล์ทีละไฟล์จนหมดรอบหรือหมดบริบท

### // บริบทมีงบประมาณ

ทุกไฟล์ที่เอเจนต์เปิดเพื่อหาทิศทางใช้โทเค็นที่ควรเอาไปใช้กับการแก้ไข คำตอบที่จัดอันดับพร้อม file:line เพียงคำตอบเดียวถูกกว่าการอ่านสำรวจสิบครั้ง

## Maguyva ในฐานะเซิร์ฟเวอร์บริบทของ Zed

รายการ context_servers เดียวให้สิ่งเหล่านี้แก่เอเจนต์ของ Zed:

- **เครื่องมือ 11 รายการบนรีโพที่ทำดัชนีแล้วของคุณ**: การค้นหาเชิงความหมาย เชิงโครงสร้าง (AST) เชิงกราฟ และข้อความ รวมถึงการค้นหาสัญลักษณ์ ส่วนที่พึ่งพา และการดึงไฟล์
- **คำตอบพร้อมพาธไฟล์และหมายเลขบรรทัด**: ครอบคลุม 285+ ภาษา เอเจนต์จึงเปิดไฟล์ที่ถูกต้องตั้งแต่ครั้งแรก
- **รายการเครื่องมือที่อัปเดตอยู่เสมอ**: Zed โหลดเครื่องมือของเซิร์ฟเวอร์ใหม่เมื่อเซิร์ฟเวอร์แจ้งว่ามีการเปลี่ยนแปลง โดยไม่ต้องรีสตาร์ต

> Zed มอบ*เอดิเตอร์ที่รวดเร็ว*ให้เอเจนต์
> Maguyva มอบ*แผนที่ของโค้ด*ให้เอเจนต์

## สองเวิร์กโฟลว์

ถามแผนที่ก่อน แล้วค่อยแก้ไข

### 01. หาการอิมพลีเมนต์จริงก่อนที่เอเจนต์จะเปิดแท็บ

```text
zed agent> นโยบาย retry ของ webhook ขาออกอยู่ที่ไหน?

find_symbol("retryPolicy")
  src/webhooks/dispatch.ts:41   retryPolicy()   ← การอิมพลีเมนต์
  src/webhooks/__mocks__/dispatch.ts:9   ← mock

→ เอเจนต์เปิด dispatch.ts:41 ไม่ใช่ mock
[exit 0]
```

การค้นหาที่จัดอันดับครั้งเดียวแทนการ grep หนึ่งรอบ คำตอบกลับมาเป็นพาธและบรรทัดที่เอเจนต์เปิดได้ทันที

### 02. ตรวจส่วนที่พึ่งพาก่อนเปลี่ยนซิกเนเจอร์

```text
zed agent> เพิ่มอาร์กิวเมนต์ timeout ให้ fetchInvoice

dependency_search("fetchInvoice", dependents)
  ผู้เรียก 7 จุดใน 4 แพ็กเกจ

→ เอเจนต์อัปเดตจุดเรียกทั้งเจ็ดในรอบเดียว
[exit 0]
```

รัศมีผลกระทบมาถึงก่อนการแก้ไขครั้งแรก ไม่ใช่หลัง build ล้มเหลว

## ตั้งค่าใน Zed

สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตรเครดิต

### 01. ทำดัชนีรีโพที่ maguyva.ai

เลือกรีโพที่คุณรู้จักอยู่แล้ว เพื่อให้คุณประเมินคำตอบได้

### 02. เพิ่ม Maguyva ใน context_servers ในการตั้งค่า Zed ของคุณ

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

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

### 03. แทนที่ตัวยึดตำแหน่งแล้วถามคำถามเดียว

เปลี่ยน `mgv_xxxx` เป็นคีย์ API ของคุณแล้วบันทึก ถามเอเจนต์หนึ่งคำถามที่คุณรู้คำตอบอยู่แล้ว จากนั้นเปิดไฟล์ที่ถูกอ้างอิง

[เอกสาร MCP](https://zed.dev/docs/ai/mcp) ของ Zed เองอธิบายเรื่องเซิร์ฟเวอร์บริบท โปรไฟล์เอเจนต์ และสิทธิ์ของเครื่องมือ

## ทำดัชนีรีโพเดียวที่คุณรู้จักดีอยู่แล้ว

เชื่อมต่อ Zed ผ่าน MCP แล้วถามคำถามเดียวที่คุณตรวจสอบได้
