ตัวสร้าง AGENTS.md
กรอกแบบฟอร์มเดียวเพื่อสร้าง AGENTS.md ที่ระบุคำสั่ง แนวทาง และข้อจำกัดที่ห้ามละเมิด นอกจากนี้ยังได้กฎที่กำหนดขอบเขตตามพาธสำหรับ Cursor, GitHub Copilot, Claude Code, Cline และ Devin Desktop รวมถึงไฟล์เชื่อมต่อสำหรับเครื่องมือที่ไม่อ่าน AGENTS.md โดยอัตโนมัติ
เครื่องมือแต่ละตัวค้นหาไฟล์คำสั่งจากที่ใด →
# เว็บแอป Acme
เว็บแอปสำหรับลูกค้า มีส่วนผู้ดูแลระบบและ REST API ขนาดเล็ก
## สแต็ก
Next.js, React, TypeScript, pnpm
## คำสั่ง
- ติดตั้ง: `pnpm install`
- เรียกใช้ในเครื่อง: `pnpm dev`
- ทดสอบ: `pnpm test`
- Lint และตรวจสอบชนิดข้อมูล: `pnpm lint && pnpm tsc --noEmit`
- Build: `pnpm build`
## รูปแบบโค้ด
- ทำตามรูปแบบที่ linter กำหนด และอย่าแก้ไขไฟล์ที่ไม่เกี่ยวข้อง
- เขียนฟังก์ชันขนาดเล็กที่มีอินพุตและเอาต์พุตชัดเจน และจำกัด side effect ไว้ที่ขอบเขตของระบบ
- ขออนุญาตก่อนเพิ่ม dependency ใหม่
- อธิบายเหตุผลของโค้ดที่ไม่ชัดเจนในทันที ไม่ใช่อธิบายว่าแต่ละบรรทัดทำอะไร
## การทดสอบ
- เพิ่มหรือแก้ไข test สำหรับทุกพฤติกรรมที่เปลี่ยน
- รันคำสั่งทดสอบและแก้ไข test ที่ล้มเหลวก่อนแจ้งว่าทำเสร็จ
- อย่าลบหรือข้าม test ที่ล้มเหลวเพื่อให้ test suite ผ่าน
## Commit และ pull request
- เขียนหัวข้อ commit เป็นคำสั่ง และให้มีความยาวไม่เกิน 72 อักขระ
- จำกัดแต่ละ pull request ให้มีการเปลี่ยนแปลงเพียงเรื่องเดียว และระบุวิธีทดสอบไว้ในคำอธิบาย
- รัน lint และ test ก่อนทุก commit
## ห้าม
- ห้าม commit secret, API key หรือไฟล์ .env
- ห้ามแก้ไขไฟล์ที่สร้างขึ้นโดยอัตโนมัติใน src/generated/ ด้วยตนเอง ให้สร้างไฟล์เหล่านั้นใหม่แทน
- ห้ามรันคำสั่งฐานข้อมูลที่ทำลายข้อมูลกับ production
- ห้าม force-push ไปยัง main หรือเขียนประวัติที่ใช้ร่วมกันใหม่
กฎเดียวกันสำหรับห้าเครื่องมือ
---
description: แนวทางสำหรับไฟล์ที่ตรงกับ glob นี้
globs: app/**/*.tsx
alwaysApply: false
---
ทำตามรูปแบบที่ไฟล์ข้างเคียงในโฟลเดอร์นี้ใช้อยู่ ฟังก์ชันที่ export ทุกฟังก์ชันต้องมี docstring และ test ในไฟล์ test ที่ตรงกัน
---
applyTo: "app/**/*.tsx"
---
ทำตามรูปแบบที่ไฟล์ข้างเคียงในโฟลเดอร์นี้ใช้อยู่ ฟังก์ชันที่ export ทุกฟังก์ชันต้องมี docstring และ test ในไฟล์ test ที่ตรงกัน
---
paths:
- "app/**/*.tsx"
---
ทำตามรูปแบบที่ไฟล์ข้างเคียงในโฟลเดอร์นี้ใช้อยู่ ฟังก์ชันที่ export ทุกฟังก์ชันต้องมี docstring และ test ในไฟล์ test ที่ตรงกัน
---
paths:
- "app/**/*.tsx"
---
ทำตามรูปแบบที่ไฟล์ข้างเคียงในโฟลเดอร์นี้ใช้อยู่ ฟังก์ชันที่ export ทุกฟังก์ชันต้องมี docstring และ test ในไฟล์ test ที่ตรงกัน
---
trigger: glob
globs: app/**/*.tsx
---
ทำตามรูปแบบที่ไฟล์ข้างเคียงในโฟลเดอร์นี้ใช้อยู่ ฟังก์ชันที่ export ทุกฟังก์ชันต้องมี docstring และ test ในไฟล์ test ที่ตรงกัน
วิธีเขียนไฟล์คำสั่งให้ได้ผล
วางคำสั่งที่แน่นอนไว้ช่วงต้นไฟล์
ระบุคำสั่งติดตั้ง ทดสอบ และ lint ที่ใช้จริง พร้อม flags ไว้ช่วงต้นไฟล์ ระบุ stack และเวอร์ชันให้ชัดเจน และยกตัวอย่างโค้ดสั้น ๆ หากอธิบายด้วยข้อความแล้วอาจคลุมเครือ
เขียนข้อห้ามให้ชัดเจน
ระบุให้ตรงไปตรงมาว่า agent ห้ามทำอะไร เช่น แตะต้อง secrets โค้ดที่ vendored ไว้ หรือ production การห้าม commit secrets เป็นข้อจำกัดที่มีประโยชน์ซึ่งพบบ่อยที่สุดในไฟล์ที่ GitHub ตรวจสอบ
เขียนคำสั่งแต่ละข้อให้ตรวจสอบได้
คำสั่ง Run npm test before committing ตรวจสอบได้ แต่ test your changes ตรวจสอบไม่ได้ ลบข้อกำหนดที่ขัดแย้งกัน เพราะเมื่อมีข้อความสองบรรทัดที่ไม่ตรงกัน model อาจเลือกทำตามข้อใดข้อหนึ่ง
เขียนให้สั้นและแยกตาม path
Anthropic แนะนำให้แต่ละไฟล์มีไม่เกิน 200 บรรทัด และ Cursor แนะนำให้แต่ละ rule มีไม่เกิน 500 บรรทัด ย้ายคำแนะนำเฉพาะส่วนไปไว้ใน rule ที่กำหนดขอบเขตตาม path เพื่อให้โหลดเฉพาะเมื่อมีการแก้ไขไฟล์เหล่านั้น การใช้ imports ช่วยจัดระเบียบไฟล์ แต่ไม่ได้ลดค่าใช้จ่ายด้าน context
ไม่ต้องระบุสิ่งที่ agent รู้อยู่แล้ว
การศึกษาที่ทดสอบ coding agent สี่ตัวพบว่าไฟล์ context ไม่ได้เพิ่มอัตราความสำเร็จของงานอย่างสม่ำเสมอ และเพิ่มค่าใช้จ่ายในการ inference มากกว่า 20% ไฟล์ที่เขียนด้วย LLM ส่งผลเสียเล็กน้อย ส่วนภาพรวม repository ไม่ได้ช่วยอะไร ดังนั้นให้ระบุเฉพาะข้อกำหนดที่ไม่ชัดเจนในตัวเอง เช่น เครื่องมือเฉพาะที่ต้องใช้
เพิ่ม rule เมื่อเกิดข้อผิดพลาดซ้ำ
เริ่มจากกฎไม่กี่ข้อ แล้วเพิ่มเมื่อพบว่า agent ทำผิดแบบเดิมมากกว่าหนึ่งครั้ง อ้างอิงไฟล์ที่มีอยู่แล้วเป็นตัวอย่าง แทนการวางคู่มือสไตล์ทั้งชุด
คำถามเกี่ยวกับ AGENTS.md
Claude Code อ่าน AGENTS.md หรือไม่?
อ่านได้ตั้งแต่ v2.1.277 โดยค่าเริ่มต้นจะอ่าน AGENTS.md หรือ .claude/AGENTS.md ก็ต่อเมื่อไม่มี CLAUDE.md, .claude/CLAUDE.md หรือ CLAUDE.local.md ใน working directory หรือไดเรกทอรีระดับบน การตั้งค่า claude-md-and-agents-md จะโหลดทั้งสองไฟล์ และ CLAUDE.md ที่มี @AGENTS.md ใช้งานได้กับทุกเวอร์ชัน
AGENTS.md ต้องมี frontmatter หรือหัวข้อที่กำหนดไว้หรือไม่?
ไม่จำเป็น AGENTS.md เป็น Markdown ธรรมดา ไม่มีฟิลด์ที่บังคับ และใช้หัวข้อแบบใดก็ได้ เว็บไซต์ agents.md แนะนำส่วนต่าง ๆ เช่น ภาพรวมโปรเจกต์ คำสั่ง build และ test สไตล์โค้ด การทดสอบ หมายเหตุด้านความปลอดภัย และแนวทางสำหรับ pull request
จะใช้ AGENTS.md ใน monorepo ได้อย่างไร?
วาง AGENTS.md ไว้ที่ root หนึ่งไฟล์ และวางอีกไฟล์ไว้ในแต่ละ package ที่ต้องมีกฎเฉพาะของตัวเอง agent จะอ่านไฟล์ที่อยู่ใกล้กับโค้ดที่กำลังแก้ไขที่สุด และหากมีกฎขัดแย้งกัน จะยึดตามไฟล์นั้น ตอนที่ agents.md บันทึกข้อมูลนี้ repository หลักของ OpenAI มีไฟล์ดังกล่าว 88 ไฟล์
จะให้ Gemini CLI อ่าน AGENTS.md ได้อย่างไร?
Gemini CLI ยังคงใช้ GEMINI.md เป็นค่าเริ่มต้น เพิ่ม AGENTS.md ใน context.fileName ใน .gemini/settings.json เช่น ["AGENTS.md", "GEMINI.md"] เรียกใช้ /memory show เพื่อตรวจสอบว่าโหลดไฟล์ใดบ้าง
coding agent ใดบ้างที่รองรับ AGENTS.md?
เราตรวจสอบเอกสารของ OpenAI Codex, Claude Code, Cursor, GitHub Copilot, Devin Desktop, Cline และ OpenClaw ซึ่งอ่านไฟล์นี้ได้โดยตรง ส่วน Gemini CLI และ Aider ต้องเพิ่ม config หนึ่งบรรทัด เว็บไซต์ agents.md ระบุว่ามีเครื่องมือที่รองรับทั้งหมด 23 รายการ รวมถึง Zed, Warp, goose, opencode, Jules และ JetBrains Junie
ใครเป็นผู้ดูแลรูปแบบ AGENTS.md?
OpenAI มอบ AGENTS.md ให้กับ Agentic AI Foundation ซึ่งเป็นกองทุนภายใต้การกำกับของ Linux Foundation ที่ประกาศเมื่อ 2025-12-09 พร้อมกับ MCP และ goose เว็บไซต์ agents.md ระบุว่ามีโปรเจกต์โอเพนซอร์สมากกว่า 60k โปรเจกต์ที่ใช้รูปแบบนี้