- คู่มือที่สรุปแนวทางการพัฒนาในยุคของ coding agent อย่าง Claude Code และ Codex พร้อมนำเสนอ แพตเทิร์นวิศวกรรมรูปแบบใหม่ สำหรับการทำงานร่วมกับเอเจนต์
- อธิบายผ่านหลากหลายแพตเทิร์นว่า ในสภาพแวดล้อมที่ ต้นทุนการเขียนโค้ดลดลงอย่างมาก เราควรเปลี่ยนนิสัยการพัฒนาและเวิร์กโฟลว์อย่างไร
- จัดหมวดหมู่ ประเด็นสำคัญของการพัฒนาแบบยึดเอเจนต์เป็นศูนย์กลาง อย่างเป็นระบบ เช่น หลักการ การทดสอบ ความเข้าใจโค้ด และการออกแบบพรอมป์ต์
- แต่ละแพตเทิร์นอยู่ในรูปแบบ เอกสารแพตเทิร์นที่เน้นการใช้งานจริง พร้อมตัวอย่างโค้ด วิธีทำงาน และกรณีใช้งานของพรอมป์ต์
- เป็นแหล่งอ้างอิงเชิงปฏิบัติสำหรับนักพัฒนาในยุค coding agent ที่ต้องการ ออกแบบสภาพแวดล้อมการเขียนโค้ดแบบเอเจนต์อย่างเป็นระบบและรักษาคุณภาพงาน
ภาพรวมของ Agentic Engineering Patterns
- คู่มือที่รวบรวมแนวทางวิศวกรรมที่มีประสิทธิภาพเมื่อพัฒนาร่วมกับ coding agent (Claude Code, OpenAI Codex ฯลฯ)
- ดูบทความแนะนำ Writing about Agentic Engineering Patterns
- เป็นเอกสารที่มีโครงสร้างแบบค่อย ๆ เพิ่ม แพตเทิร์น (chapter) หลายรายการอย่างต่อเนื่อง คล้ายรูปแบบ “Design Patterns”
- เน้นประเด็นการเปลี่ยนแปลงของ เวิร์กโฟลว์และวิธีตัดสินใจของนักพัฒนา ในสภาพแวดล้อมที่ต้นทุนการเขียนโค้ดลดลงมาก
- ดำเนินการในรูปแบบเนื้อหาแบบ guide ที่อัปเดตได้ ไม่ใช่บทความบล็อก และมีแผนจะขยายต่อเนื่อง
1. หลักการ
-
- การมาถึงของ AI coding agent ทำให้ ต้นทุนการเขียนโค้ดเบื้องต้นลดลงจนแทบเป็นศูนย์
- ในอดีต การเขียนโค้ดมีต้นทุนสูงจึงเน้นการออกแบบและวางแผนก่อน แต่ตอนนี้สามารถใช้ แนวทางทดลองไอเดียด้วยโค้ดได้ทันที
- แม้ต้นทุนการสร้างโค้ดจะลดลง แต่ โค้ดที่ดี (เช่น การทดสอบ ความสามารถในการบำรุงรักษา) ก็ยังมีต้นทุนอยู่
-
- ทรัพย์สินสำคัญของนักพัฒนาคือ “การสะสมความรู้ว่าอะไรทำได้บ้าง”
- เน้นนิสัยการ เก็บสะสมกรณีแก้ปัญหาและการทดลองโค้ดเล็ก ๆ ในรูปแบบที่นำกลับมาใช้ซ้ำได้
- โค้ดและตัวอย่างที่สะสมไว้เช่นนี้สามารถใช้เป็น ข้อมูลนำเข้าที่ทรงพลังเมื่อสั่งให้ coding agent สร้างฟีเจอร์ใหม่
-
- แม้จะเป็นโค้ดที่เอเจนต์สร้างขึ้น ก็ไม่ควร แชร์หรือส่ง PR โดยไม่รีวิว ซึ่งถือเป็น anti-pattern ที่ควรหลีกเลี่ยง
- คำอธิบาย PR ที่เอเจนต์เขียนก็ต้อง ให้มนุษย์ตรวจสอบและแก้ไขด้วยตนเอง
- เพื่อไม่ให้เสียเวลาผู้รีวิวโค้ด ควรแนบ การทดสอบ ขั้นตอนตรวจสอบ และเหตุผลของตัวเลือกในการพัฒนา ไปด้วย
2. การทดสอบและ QA
-
- การพัฒนาแบบทดสอบก่อน (TDD) เป็น แพตเทิร์นการพัฒนาที่มีประสิทธิภาพเป็นพิเศษเมื่อใช้ร่วมกับ coding agent
- เมื่อเขียนเทสต์ก่อน เอเจนต์จะสามารถ สร้างโค้ดให้สอดคล้องกับเทสต์ ได้
- แม้ใช้พรอมป์ต์เพียงเล็กน้อย ก็ยังช่วยให้ สร้างโค้ดที่แม่นยำและเชื่อถือได้
-
- เมื่อต้องทำงานกับ coding agent นั้น การทดสอบอัตโนมัติไม่ใช่ทางเลือก แต่เป็นสิ่งจำเป็น
- ในสภาพแวดล้อมที่ต้นทุนการเขียนเทสต์ลดลง เอเจนต์สามารถ สร้างและแก้ไขเทสต์ได้อย่างรวดเร็ว
- ก่อนที่โค้ดจะรันจริง เราไม่อาจรับประกันได้ว่าจะทำงานถูกต้อง จึงยิ่งทำให้การทดสอบสำคัญ
3. ความเข้าใจโค้ด
-
- แพตเทิร์นการทำความเข้าใจโครงสร้างของโค้ดหรือโปรเจกต์ที่เอเจนต์สร้างขึ้น โดย อ่านเรียงลำดับตั้งแต่ต้นจนจบ
- แม้เป็นโปรเจกต์เล็ก ก็สามารถ เรียนรู้เทคโนโลยีและโครงสร้างใหม่ ๆ ผ่านการไล่ตามลำดับการทำงานของโค้ด
- ตอบข้อกังวลที่ว่า AI สร้างโค้ดอาจทำให้การเรียนรู้ช้าลง โดยชี้ว่า การสำรวจโค้ดเองก็เป็นโอกาสในการเรียนรู้ได้
-
- วิธีการขอคำอธิบายจากเอเจนต์ผ่านการสนทนา เมื่อพยายามทำความเข้าใจโค้ดหรือระบบ
- ค่อย ๆ ทำความเข้าใจ หลักการทำงานและโครงสร้างของโค้ด ผ่านการตั้งคำถามซ้ำ
- เป็นแพตเทิร์นที่ขยายกระบวนการทำความเข้าใจโค้ดไปสู่ รูปแบบการเรียนรู้เชิงโต้ตอบ
4. พรอมป์ต์แบบมีคำอธิบายประกอบ
-
- มีตัวอย่างพรอมป์ต์สำหรับสร้าง เครื่องมือปรับแต่ง GIF โดยใช้ WebAssembly และ Gifsicle
- นำเสนอวิธีการสร้าง เครื่องมือหน้าเดียว ที่รวม HTML, JavaScript และ CSS
- อธิบายวิธีใช้ coding agent ผ่าน พรอมป์ต์จริงและตัวอย่างโค้ด
5. ภาคผนวก
-
- รวม ตัวอย่างพรอมป์ต์สำหรับ coding agent ที่ใช้งานจริง
- สรุป แพตเทิร์นพรอมป์ต์เชิงปฏิบัติ ที่ใช้ได้กับงานหลากหลายประเภท
- มี เทมเพลตที่ใช้งานได้จริง สำหรับการทำงานร่วมกับเอเจนต์
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ดูเหมือนว่าเรากำลังจะทำเรื่องเดิมซ้ำอีกครั้ง
เอาแนวคิดง่าย ๆ และสมเหตุสมผล — เช่น "เขียนเทสต์ก่อน", "สร้างโมดูลเล็ก ๆ ที่นำมาประกอบกันได้" — ไปห่อด้วยชื่อที่ซับซ้อน แล้วก็น่าจะสร้างเป็น อุตสาหกรรมที่ปรึกษา ขึ้นมาอีก
แต่รอบนี้เป้าหมายคือ “เครื่องจักรที่พูดได้” โลกที่แค่สั่งด้วยคำพูดก็พอ
อยากถาม Simon ว่า — “ในโลกที่โค้ดราคาถูกลง เราควรทำ code review อย่างไร?”
คนในทีมเข้าหาแบบ “มันใช้ได้ก็โอเคแล้วนี่” โดยที่ยังไม่เข้าใจโครงสร้าง รีวิวก็ยิ่งใหญ่ขึ้นเรื่อย ๆ และฉันกลายเป็นคอขวด ก็กำลังคิดเรื่อง ใช้ AI reviewer เป็นตัวแทน อยู่เหมือนกัน แต่ก็ไม่ชอบที่ความรู้สึกแบบมนุษย์จะหายไป
ฉันใช้ AI เป็นหลักกับ โค้ด boilerplate หรือช่วยแก้ปัญหาเรื่องเอกสาร
เคยลองงานแบบ agent แล้ว แต่ผลลัพธ์ยังไม่น่าเชื่อถือพอ ขณะที่บางคนกลับบอกว่า “ตอนนี้แทบไม่ได้เขียนโค้ดเองแล้ว” ช่องว่างนี้น่าสนใจดี
ช่วงนี้กำลังทดลอง ลูปการเขียนโค้ดแบบ agent
ตัวอย่างเช่น ใน โปรเจกต์ fesh เป้าหมายคือ “บีบอัด Linux binary ให้เล็กลง” เป็นปัญหาที่มีเทสต์ชัดเจน จึงเหมาะกับลูป AI
สิ่งที่เรียนรู้มีดังนี้:
อยากให้ในส่วนของเทสต์พูดถึงปัญหา ‘เทสต์แบบเติมเต็มตัวเอง’ ที่ LLM สร้างขึ้น ด้วย
บางครั้งเทสต์ไม่ได้ตรวจสอบอะไรจริงเลย หรือแย่กว่านั้นคือผ่านได้ด้วย ค่าที่ hardcode ไว้ มนุษย์ต้องคอยชี้นำ AI ให้มี วินัยในการเขียนเทสต์อย่างเข้มงวด
ทุกครั้งที่มี LLM รุ่นใหม่ออกมา ก็รู้สึกเหมือนบทเรียนเดิม ถูกทำให้ใช้ไม่ได้ทั้งหมด
โครงสร้างซับซ้อนที่สร้างขึ้นมาเพื่อเลี่ยงข้อจำกัดของโมเดลเก่าอย่าง LangChain พอหลัง GPT-3.5 มาก็ดูไม่จำเป็นแล้ว อีกไม่นาน agent เดี่ยวตัวเดียว อาจพอสำหรับจัดการทุกอย่างก็ได้
ดูบทความที่เกี่ยวข้อง
มีจุดหนึ่งที่มักหายไปจากการถกเรื่อง agent engineering
บทเรียนส่วนใหญ่มักถูกพูดราวกับเป็น ความจริงสากล แต่ในความเป็นจริงมันขึ้นกับขนาดทีม ระดับความ成熟ของ codebase ระดับของเทสต์ และระดับการยอมรับความเสี่ยง สิ่งสำคัญคือ ต้องบอกให้ชัดว่า “แพตเทิร์นนี้ใช้ได้เมื่อไร”
ทุกวันนี้มี “framework สำหรับ agent team” โผล่มาวันละเป็นสิบ ๆ ตัว
มันเป็นช่วง ทดลองอย่างสับสนวุ่นวาย คล้ายวิศวกรรมซอฟต์แวร์ยุคแรก แต่สุดท้ายจะมีบางแพตเทิร์นกลายเป็นมาตรฐาน
ทีมของเราเจอว่าการ เข้าหาแบบทีมมนุษย์ ได้ผลดี — เริ่มจากเขียน spec ของผลิตภัณฑ์ ก่อน จากนั้นให้ AI ช่วยขัดเกลา แล้วค่อยส่งต่อบนฐานนั้นไปยัง โฟลว์ของ agent ที่แยกบทบาทกัน
วันนี้ฉันสอนในวิชาปริญญาตรีเรื่องวิวัฒนาการของสถาปัตยกรรม CPU·GPU
ในอดีต Moore’s Law ทำให้ฮาร์ดแวร์แก้ทุกอย่างได้ แต่ตอนนี้ ความขนาน คือหัวใจ
แนวคิดที่ Simon พูดว่า “โค้ดมีราคาถูก” ก็เป็น การเปลี่ยนกระบวนทัศน์ แบบเดียวกัน
เหมือนกับที่ยุคฮาร์ดแวร์แบบขนานทำให้โค้ดที่มีประสิทธิภาพเปลี่ยนไปโดยสิ้นเชิง ในยุค AI กระบวนการพัฒนาเองก็จะเปลี่ยนไป คนที่เข้าใจเรื่องนี้ก่อนจะได้เปรียบระดับ 10 ถึง 100 เท่า
ในทีมของเรา ‘ลูปที่มีการตรวจสอบโดยมนุษย์เป็นระยะ’ ใช้งานได้จริงที่สุด
agent แบบอัตโนมัติเต็มรูปแบบมักผ่านเทสต์ แต่กลับไปทำลาย เงื่อนไขคงอยู่โดยนัย
ดังนั้นเราจึงให้มนุษย์เข้ามาก่อนถึง การตัดสินใจที่ย้อนกลับไม่ได้
แต่การทำให้ AI เข้าใจว่า “อะไรคือสิ่งที่ย้อนกลับไม่ได้” ก็เป็นโจทย์อีกข้อหนึ่ง
นอกจากเอกสารอย่าง CLAUDE.md แล้ว เรายังกำลังมองหาวิธีที่เป็นระบบในการถ่ายทอด กฎโดยนัยของ codebase ด้วย