# AGENTS.md บอก Codex ว่าต้องทำงานยังไงแต่ไม่ได้บอกว่ามีอะไรอยู่ในนั้น

Canonical source: https://maguyva.ai/th/for-codex

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).

AGENTS.md กำหนดข้อตกลงในการทำงาน MCP ให้ Codex เอื้อมไปหยิบเครื่องมือได้ Maguyva คือเซิร์ฟเวอร์ MCP ที่มอบแผนที่ของรีโพที่สอบถามได้ให้ Codex ทำให้การแก้ไขครั้งแรกไม่ใช่การเดาโครงสร้างไฟล์

> AGENTS.md คือข้อตกลง MCP คือช่องทางสื่อสาร Maguyva คือแผนที่

## สแต็กที่แบ่งเป็นชั้น

สี่แนวคิด แต่ละอย่างทำหน้าที่ของตัวเอง

### AGENTS.md

Codex ควรทำตัวยังไงในรีโพนี้

### MCP

วิธีที่ Codex เอื้อมไปหยิบเครื่องมือและบริบทจากภายนอก

### Maguyva

เซิร์ฟเวอร์ MCP ที่คืนข้อเท็จจริงของรีโพที่มีหลักฐานอ้างอิง

### เวิร์กสเปซ ไม่ใช่ที่นั่ง

ไม่คิดค่าบริการต่อที่นั่งสำหรับเอเจนต์ [ดูราคา](https://maguyva.ai/th/pricing)

## AGENTS.md คือข้อตกลงในการทำงาน ใช้มันให้เต็มที่

คำสั่งที่ต้องคงอยู่ถาวรควรอยู่ใน [`AGENTS.md`](https://developers.openai.com/codex/guides/agents-md) มันคือที่ที่เหมาะสำหรับ:

- คำสั่งบิลด์ เทสต์ และ lint ที่ Codex ควรรัน
- กฎแบบ “ต้องทำ X เสมอ / ห้ามทำ Y” ที่จำกัดขอบเขตไว้ในไดเรกทอรีหนึ่งๆ
- ข้อตกลงการตั้งชื่อและแนวทางการรีแฟกเตอร์
- ลิงก์ไปยังบันทึกการตัดสินใจและบันทึกสถาปัตยกรรมที่เป็นมาตรฐาน

เขียนให้กระชับ จำกัดขอบเขตไว้ แล้ว commit มันเก็บไว้

แต่ `AGENTS.md` ไม่เคยถูกออกแบบมาให้เป็นดัชนีที่สอบถามได้ของทุกสัญลักษณ์ ไฟล์ และจุดเรียกใช้ในรีโพของคุณ

## จุดที่ AGENTS.md เพียงลำพังกลายเป็นข้อมูลนิ่งเมื่อรีโพใหญ่ขึ้น

สี่รูปแบบความล้มเหลว การ์ดละหนึ่งแบบ

### // ข้อตกลงไม่ใช่ดัชนี

การบอก Codex ว่า*ต้องทำงานยังไง* ไม่ได้บอกว่า*มีอะไรอยู่จริง* การแก้ไขครั้งแรกในแพ็กเกจที่ไม่คุ้นเคยคือการเดาพาธไฟล์และชื่อฟังก์ชัน AGENTS.md ไม่สามารถลิสต์ทุกสัญลักษณ์ได้ และคุณก็ไม่อยากให้มันเป็นแบบนั้นด้วย

### // เอกสารคลาดเคลื่อนจากโค้ด

บล็อกใน AGENTS.md ที่อธิบายโครงสร้างคิวของคุณถูกต้องอยู่จนกว่าจะมีใครเพิ่มคอนซูมเมอร์ใหม่เข้ามา ตอนนี้โค้ดคือแหล่งความจริง ส่วนเอกสารล้าสมัยไปแล้วอย่างมั่นใจ Codex กลับอ่านอันที่ผิดอยู่

### // การเปลี่ยนชื่อคือปัญหาของกราฟ

“มีอะไรอ้างอิงคลาสนี้บ้าง?” ตอบไม่ได้จากไฟล์ markdown Codex ก็ต้อง grep แล้วภาวนาไปทั่วโมโนรีโพ หรือไม่ก็ขอให้คุณวางจุดเรียกใช้ลงในแชท

### // คอนเท็กซ์วินโดว์ไม่ได้มาฟรีๆ

การยัด AGENTS.md จน Codex “รู้พอ” กินโทเคนที่ควรเอาไปใช้คิดวิเคราะห์แทน เกินไม่กี่ KB คุณก็แลกคุณภาพคำตอบกับปริมาณบริบทนิ่งๆ ไปแล้ว

## สามชั้นนี้ประกอบกันยังไง

ผู้ใช้ Codex คิดในรูปแบบนี้อยู่แล้ว หน้านี้แค่ทำให้มันชัดเจนขึ้น

- **AGENTS.md**: ข้อตกลง (Codex ทำตัวยังไง)
- **MCP**: ช่องทางสื่อสาร (วิธีที่มันเอื้อมไปหยิบ)
- **Maguyva**: ข้อเท็จจริงของโค้ดเบส (สิ่งที่มันมองเห็น)

- **AGENTS.md**: Codex ทำตัวยังไงในรีโพนี้
- **MCP**: วิธีที่ Codex เอื้อมไปหยิบเครื่องมือและบริบท [(สเปก)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: สิ่งที่ Codex มองเห็นเมื่อถามคำถามกับโค้ดเบส ผลการค้นหาเชิงความหมาย เชิง AST เชิงกราฟ และเชิงข้อความ พร้อมพาธไฟล์และเลขบรรทัด

> AGENTS.md บอก Codex ว่า*ต้องทำงานยังไง*
> Maguyva มอบ*สิ่งที่ใช้เริ่มทำงานได้*ให้ Codex

## สามเวิร์กโฟลว์

เฉพาะสำหรับ Codex อ้างอิงจากกราฟการเรียกใช้จริง ไม่ใช่การ grep ของ Codex

### 01. เปลี่ยนชื่อคลาสที่ใช้ร่วมกัน โดยหาทุกสิ่งที่พึ่งพามันก่อน

```text
codex> PaymentClient → BillingClient เปลี่ยนชื่อ

graph::callers(PaymentClient)            12 การอ้างอิง ครอบคลุม 7 แพ็กเกจ
graph::importers(src/payments/client.ts)  9 จุดอิมพอร์ต
graph::extends(PaymentClient)             2 คลาสลูก (RetryClient, MockClient)

→ Codex เสนอแผนย้าย 21 จุดแก้ไข พร้อมรายการไฟล์แบบอินไลน์
[exit 0]
```

Codex ถาม Maguyva หาส่วนประกอบที่พึ่งพา*ก่อน*ที่จะเริ่มแก้ไข รายการย้ายที่ได้กลับมาอ้างอิงจากกราฟจริง ไม่ใช่จากความจำของ Codex

### 02. หาการอิมพลีเมนต์จริง ไม่ใช่ test stub

```text
codex> normalizePhoneNumber จัดการ E.164 ยังไง?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← ของจริง
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub
[exit 0]
```

ชื่อบอกอะไรไม่ได้เสมอไป mock บดบังโค้ดจริงได้ Maguyva จัดอันดับการอิมพลีเมนต์จริงให้อยู่เหนือ test mock

### 03. เช็ครัศมีผลกระทบก่อนรีแฟกเตอร์

```text
codex> อะไรเรียก QueueDispatcher.publish บ้าง?

graph::callers(QueueDispatcher.publish)
  3 ครั้งใน src/billing/*    1 ครั้งใน src/audit/*    1 ครั้งใน src/notifications/*
[exit 0]
```

จุดเรียกใช้ข้ามแพ็กเกจโผล่ขึ้นมาให้เห็นทันที การเปลี่ยนแปลงอ้างอิงจากโค้ดที่อิมพอร์ตจริง ไม่ใช่การ grep ของ Codex

## ตั้งค่าใน Codex CLI

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

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

เลือกรีโพที่คุณรู้จักดี เพื่อให้ตรวจสอบคำตอบได้

### 02. เพิ่ม Maguyva เป็นเซิร์ฟเวอร์ MCP ในคอนฟิก Codex ของคุณ

`~/.codex/config.toml`

```text
export MAGUYVA_API_KEY=mgv_xxxx
codex mcp add maguyva --url https://maguyva.tools/mcp --bearer-token-env-var MAGUYVA_API_KEY
```

```toml
[mcp_servers.maguyva]
url = "https://maguyva.tools/mcp"
bearer_token_env_var = "MAGUYVA_API_KEY"
```

### 03. ถามคำถามเดียวที่คุณรู้คำตอบอยู่แล้ว

อย่าเริ่มจากทั้งบริษัทของคุณ เริ่มจากรีโพเดียวและคำถามเดียวที่ตรวจสอบได้

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

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