เจาะประเด็น
Coding / Agent
"agent.md" ไฟล์เดียว ที่จะทำให้ AI เขียนโค้ดไม่มั่วอีกต่อไป
ฟาเบียง แซงลาร์ด เปิดสูตรลับจัดระเบียบโปรเจกต์ให้ LLM ทำงานได้ตรงใจ ลดความเพ้อเจ้อของ AI ลงได้จริง
ทีมข่าว เอไอไทย.com
⏱ อ่าน 5 นาที
ถ้าโค้ดที่ AI เขียนให้มัน "ดูดีแต่ใช้งานไม่ได้" สักที ปัญหาอาจไม่ได้อยู่ที่โมเดล แต่อยู่ที่เราไม่เคยบอกมันว่าบริบทของโปรเจกต์คืออะไร
เรื่องนี้มันเริ่มจากความหงุดหงิดระดับชาติของนักพัฒนาสายฮาร์ดคอร์อย่าง ฟาเบียง แซงลาร์ด (Fabien Sanglard) คนที่เขียนเกมและอีมิวเลเตอร์จนเป็นตำนาน เขาเจอปัญหาเดียวกันกับที่พวกเราทุกคนเจอ — ให้ AI ช่วยเขียนโค้ดทีไร ผลลัพธ์ที่ได้ออกมามัน "ผ่านๆ ตา" แต่พอลงมือใช้งานจริงปุ๊บพังปั๊บ ไม่ใช่เพราะ AI โง่ แต่เพราะมันไม่รู้บริบทของโปรเจกต์เราเลยต่างหาก
ลองนึกภาพตามนะ — คุณจ้างช่างมาสร้างบ้าน แต่ดันลืมบอกเขาว่าบ้านหลังนี้จะอยู่บนพื้นที่ลาดชันแค่ไหน วัสดุที่ใช้ต้องทนความชื้นแค่ไหน หรือห้องไหนต้องรับน้ำหนักเป็นพิเศษ ช่างก็จะสร้างบ้านออกมา "ตามสเปกทั่วไป" ที่เรียนมา ซึ่งมันอาจจะสวย แต่ไม่เหมาะกับบ้านคุณเลยสักนิด
AI เขียนโค้ดก็เป็นแบบนั้นเป๊ะๆ มันถูกเทรนมาด้วยโค้ดนับล้านล้านบรรทัดจากทั่วโลก มันรู้จัก "รูปแบบทั่วไป" ของการเขียนโค้ด แต่ไม่รู้จัก "รูปแบบเฉพาะ" ของโปรเจกต์คุณ — ไม่รู้ว่าโค้ดเบสของคุณมีสถาปัตยกรรมแบบไหน มีกฎบังคับอะไรบ้าง หรือมีอะไรที่ "ห้ามทำเด็ดขาด" เป็นมรดกตกทอดมาจากอดีต
แซงลาร์ดเลยเสนอวิธีแก้ที่เรียบง่ายจนน่าหัวเราะ — แค่สร้างไฟล์ agent.md ไว้ในโปรเจกต์ แล้วเขียนทุกอย่างที่ AI ควรรู้ลงไป ไม่ว่าจะเป็นภาพรวมของโปรเจกต์ สถาปัตยกรรมที่ใช้ กฎการเขียนโค้ด ข้อจำกัดต่างๆ หรือแม้แต่ "กับดัก" ที่เคยเจอมาแล้วในอดีต ให้มันอ่านไฟล์นี้ก่อนเริ่มทำงานทุกครั้ง
ฟังดูเหมือนง่ายใช่ไหม? แต่เชื่อเถอะว่านักพัฒนาส่วนใหญ่ไม่เคยทำแบบนี้มาก่อน เราเปิดเทอร์มินัลแล้วสั่ง AI ไปเลยว่า "เขียนฟังก์ชันนี้ที" โดยไม่เคยให้บริบทอะไรเลย แล้วก็มานั่งด่าโมเดลว่าโง่เวลามันเขียนออกมาไม่ตรงใจ ทั้งที่จริงๆ แล้วเราต่างหากที่ขี้เกียจ
ในบทความของเขา แซงลาร์ดได้ยกตัวอย่างโครงสร้างของ agent.md ที่เขาใช้จริงในโปรเจกต์ของตัวเอง ซึ่งมันไม่ได้ซับซ้อนอะไรเลย แค่บอกว่าโปรเจกต์นี้คืออะไร ใช้เทคนิคอะไร มีโครงสร้างไฟล์ยังไง และที่สำคัญที่สุดคือ "อะไรที่ไม่ควรทำ" — เพราะ AI มันจะได้ไม่ไปสร้างปัญหาใหม่แทนที่จะแก้ปัญหาที่มีอยู่
สิ่งที่ผมชอบที่สุดในแนวคิดนี้คือมันไม่ใช่การ "แฮก" หรือ "เจาะระบบ" อะไรทั้งนั้น มันคือการสื่อสารกับ AI อย่างที่มันควรจะเป็น — เหมือนการปฐมนิเทศพนักงานใหม่ไง เราไม่ปล่อยให้เด็กจบใหม่เดินเข้าออฟฟิศแล้วบอกว่า "เออ ไปทำงานเลย" โดยไม่บอกอะไรเลย แล้วมานั่งหัวเสียทีหลังว่าทำไมงานมันออกมาเพี้ยน
ลดความมั่วของ AI ได้จริง
การให้บริบทที่ชัดเจนช่วยลดการเดาสุ่มของโมเดลลงได้เยอะ เพราะมันไม่ต้องคาดเดาว่าโปรเจกต์นี้ต้องการอะไรอีกต่อไป
ประหยัดเวลาโค้ดรีวิว
เมื่อ AI เขียนโค้ดได้ตรงสเปกตั้งแต่วินาทีแรก ทีมก็ไม่ต้องเสียเวลาไล่แกะว่ามันทำอะไรลงไป หรือมานั่งแก้ให้เข้าที่เข้าทาง
ไม่ต้องลบไฟล์ทิ้งบ่อย
ใครที่ใช้ AI เขียนโค้ดเป็นประจำจะรู้ดีว่าครึ่งหนึ่งของเวลามันเสียไปกับการลบแล้วให้เขียนใหม่ agent.md ช่วยลดเหตุการณ์ "ลบแล้วเขียนใหม่" ลงได้เยอะ
ต้องยอมรับว่าผมไม่ได้คิดถึงเรื่องนี้มาก่อนเลย จนกระทั่งอ่านบทความของแซงลาร์ดจบแล้วถึงได้ตบเข่า — เออ จริงว่ะ เรามัวแต่โทษว่า AI "ไม่เข้าใจเรา" ทั้งที่เราไม่เคยพยายามให้มันเข้าใจเลยด้วยซ้ำ มันเหมือนกับที่เราบ่นแฟนว่า "ไม่รู้ใจ" ทั้งที่เราไม่เคยบอกความต้องการของตัวเองให้ฟังเลยแม้แต่คำเดียว
แน่นอนว่านี่ไม่ใช่ทางออกสำหรับทุกปัญหา เพราะต่อให้มี agent.md ที่ละเอียดแค่ไหน AI ก็ยังผิดพลาดได้อยู่ดี แต่อย่างน้อยมันก็ช่วยยกระดับคุณภาพของงานโดยรวมขึ้นมาได้จริง — เหมือนการเขียนเอกสาร requirement ให้ชัดเจนก่อนเริ่มโปรเจกต์ ซึ่งเป็นสิ่งที่นักพัฒนาสาย Agile ชอบมองข้ามมาตลอด
และที่สำคัญที่สุด แนวคิดนี้ไม่ได้จำกัดอยู่แค่การเขียนโค้ด เพราะจริงๆ แล้วมันใช้ได้กับทุกอย่างที่เราจ้าง AI มาทำ — จะให้มันสรุปเอกสาร เขียนอีเมล หรือวิเคราะห์ข้อมูล การบอกบริบทให้ชัดเจนตั้งแต่แรกจะช่วยให้ผลลัพธ์ดีขึ้นเสมอ นี่คือทักษะ "AI Communication" ที่คนยุคนี้ต้องมีติดตัวไว้
ถ้าคุณยังคิดว่า AI เขียนโค้ดไม่ได้เรื่อง ขอให้ลองถามตัวเองก่อนว่า "เราเคยบอกมันหรือยังว่าอะไรคือสิ่งที่ถูกต้อง" — agent.md อาจไม่ใช่คำตอบสุดท้ายของทุกปัญหา แต่มันคือจุดเริ่มต้นของการทำงานร่วมกับ AI อย่างที่ควรจะเป็น: ให้ข้อมูลที่ดี แล้วคุณจะได้ผลลัพธ์ที่ดี นี่แหละคือกติกาข้อแรกของการใช้ AI ในยุคนี้
ที่มา: Hacker News (Coding/Agent) — อ่านต้นฉบับ
ความคิดเห็น 3
กำลังโหลดความคิดเห็น...