เลิกเชื่อใจ AI อย่างหลับหูหลับตา: วิธีลดอาการหลอน (Hallucinations) ของ AI Agent
AI agent มักจะทำผิดพลาดอยู่บ่อยครั้ง ไม่ว่าจะเป็นการสร้างโค้ดที่ไม่มีอยู่จริง (hallucinate code) การละเมิดกฎทางธุรกิจ หรือการเลือกใช้เครื่องมือที่ผิดพลาด
คนส่วนใหญ่พยายามแก้ไขปัญหานี้ด้วยการเขียน prompt ให้ดีขึ้น แต่นั่นคือความเข้าใจที่ผิด
หากคุณต้องการ AI agent ที่เชื่อถือได้ คุณต้องออกแบบระบบด้วยข้อจำกัดที่ชัดเจน คุณต้องเปลี่ยนบทบาทจาก "นักพิมพ์" (Typist) ไปเป็น "สถาปนิก" (Architect)
นักพิมพ์ vs. สถาปนิก
ผู้ใช้ส่วนใหญ่ทำตัวเหมือนนักพิมพ์:
- คุณสั่งว่า: "Implement an authentication system."
- AI จะเป็นคนตัดสินใจเรื่องโครงสร้าง, ไลบรารี และการจัดวางโฟลเดอร์เอง
- ทุกการตัดสินใจคือโอกาสที่จะเกิดอาการหลอน
วิศวกรทำตัวเหมือนสถาปนิก:
- คุณกำหนดโครงสร้างและไลบรารีไว้ก่อน
- คุณตั้งข้อจำกัดและกฎเกณฑ์ต่างๆ
- AI มีหน้าที่เพียงแค่เขียนโค้ดภายใต้ขอบเขตที่คุณกำหนดไว้เท่านั้น
AI ไม่ได้หลอนเพราะมันขาดทักษะการเขียนโค้ด แต่มันหลอนเพราะมันพยายาม "เดา" บริบทที่คุณมีอยู่ในหัวแต่ไม่ได้บอกมันออกมา
กลยุทธ์ที่ 1: Context Files
เลิกสั่งงานซ้ำๆ ในทุกแชท แต่ให้ใช้ไฟล์กำหนดค่า (configuration files) เพื่อสร้างกรอบการทำงานที่ถาวรให้กับ AI ซึ่งเครื่องมือแต่ละชนิดก็จะมีมาตรฐานที่แตกต่างกันไป:
• CLAUDE.md สำหรับ Claude Code • AGENTS.md สำหรับระบบนิเวศแบบ open source • .cursorrules สำหรับ Cursor • .copilotrules สำหรับ GitHub Copilot
Pro tip: สร้างไฟล์ AGENTS.md ไว้ที่ส่วนกลางเพียงไฟล์เดียว แล้วใช้ symlinks เพื่อให้ไฟล์อื่นๆ อัปเดตตามโดยอัตโนมัติ
กลยุทธ์ที่ 2: ADR (Architecture Decision Records)
ก่อนจะสั่งให้ agent สร้างอะไรบางอย่าง ให้สร้าง ADR ขึ้นมา เอกสารนี้จะช่วยขจัดความจำเป็นที่ AI จะต้อง "เดา"
ADR ที่ดีควรประกอบด้วย:
- สิ่งที่ต้องสร้างอย่างชัดเจน
- ไฟล์ไหนที่ต้องสร้าง และไฟล์ไหนที่ห้ามแตะต้องโดยเด็ดขาด
- Tech stack และไลบรารีเฉพาะเจาะจงที่จะใช้
- ข้อจำกัดที่ชัดเจน (เช่น "No state in memory")
- รายการสิ่งที่ agent "ไม่ได้รับอนุญาต" ให้ตัดสินใจเอง
เมื่อ Orchestrator ได้รับ ADR การตัดสินใจด้านการออกแบบก็จะเสร็จสิ้นไปแล้ว หน้าที่ของ Developer agent จึงมีเพียงแค่การเปลี่ยนข้อกำหนด (spec) ให้กลายเป็นโค้ด วิธีนี้จะช่วยลดข้อผิดพลาดและทำให้ codebase ของคุณมีความสม่ำเสมอ
ผมกำลังเริ่มทำซีรีส์เกี่ยวกับการสร้าง workflow สำหรับ AI agent ที่เชื่อถือได้ ในตอนต่อๆ ไป ผมจะพูดถึงเรื่องการเขียน system prompt และเทคนิคทางวิศวกรรมขั้นสูง
