เมื่อได้ลองสร้าง AI Agent ที่อิงกับ LLM ขึ้นมาใช้งานจริง
พอถึงจุดหนึ่งก็มักจะชนกำแพงแบบเดิมซ้ำ ๆ อยู่เสมอ
- เห็นชัดว่าโมเดลฉลาดขึ้นแล้ว
- แต่การทำงานจริงยังคงไม่เสถียร
- อธิบายไม่ได้ว่าทำไมมันถึงทำงานแบบนั้น
- แม้ป้อนอินพุตเดียวกัน ผลลัพธ์ก็ยังต่างกัน
ดังนั้นโดยทั่วไปเรามักสรุปกันแบบนี้
“แปลว่าโมเดลยังไม่ดีพอ ลองใช้โมเดลที่ใหญ่กว่านี้ดู”
แต่สิ่งที่ผมรู้สึกได้จากการลองผิดลองถูกมาหลายครั้งคือ
แก่นของปัญหาไม่ใช่ความฉลาดของโมเดล
แต่คือ ‘โลก (World)’ ที่ Agent ทำงานอยู่ ไม่ได้ถูกออกแบบไว้
แก่นแท้ของปัญหา: โลกมีอยู่แค่ในหัวของโมเดล
ในสถาปัตยกรรม Agent จำนวนมาก
สิ่งอย่างสถานะ กฎ และความเป็นไปได้ของการกระทำ
ล้วนถูกฝังไว้อย่างเป็นนัยอยู่ในการอนุมานของโมเดลทั้งหมด
กล่าวคือ
- อะไรทำได้บ้าง
- ทำไมบางการกระทำถึงล้มเหลว
- สถานะเปลี่ยนไปเมื่อไร
ทั้งหมดนี้เราคาดหวังให้โมเดล “จำและอนุมานให้เอง”
ในโครงสร้างแบบนี้
ไม่ว่าโมเดลจะดีขึ้นแค่ไหน
ก็ยังยากที่จะได้มาซึ่งความสามารถในการดีบัก การทำซ้ำได้ และการอธิบายได้
เปลี่ยนมุมมอง: World-Centric Architecture
ดังนั้นในบทความนี้จึงขอพลิกมุมมอง
โดยเสนอแนวทางออกแบบ Agent แบบ ยึดโลกเป็นศูนย์กลาง (World-Centric)
แทนที่จะเป็นแบบ ยึดความฉลาดของโมเดลเป็นศูนย์กลาง (Intelligence-Centric)
แนวคิดหลักนั้นเรียบง่ายมาก
- โลกต้องมีอยู่อย่างชัดเจนนอกตัวโมเดล
- สถานะต้องถูกตรึงไว้เป็น Snapshot
- การเปลี่ยนสถานะต้องเกิดขึ้นได้ผ่านเส้นทางเดียวเท่านั้นคือ Patch/Apply
- คำถามว่า “การกระทำนี้ทำได้หรือไม่?” ต้องถูกคำนวณเชิงโครงสร้าง
และหลักการที่สำคัญที่สุดคือประโยคนี้
> ความฉลาดต้องไม่ลงมือทำเอง แต่ทำได้เพียงเสนอเท่านั้น
โมเดลอาจเสนอได้ว่า “อยากลองทำอะไร”
แต่ไม่มีสิทธิ์ในการเปลี่ยนสถานะจริง
ทำไมเรื่องนี้ถึงสำคัญ?
ในโครงสร้างแบบนี้จะเกิดสิ่งที่น่าสนใจขึ้น
- การกระทำที่เป็นไปไม่ได้จะไปไม่ถึงขั้นตอนการรันตั้งแต่แรก
- ความล้มเหลวจะถูกอธิบายด้วยเหตุผลเชิงโครงสร้าง ไม่ใช่เพราะ “โมเดลโง่”
- ต่อให้การเลือกการกระทำเป็นแบบสุ่ม ระบบก็จะไม่พัง
เพราะว่า
ความถูกต้องสอดคล้อง (correctness) ไม่ได้ถูกค้ำประกันโดยการอนุมานของโมเดล
แต่ถูกค้ำประกันโดยกฎของโลกและโมเดลสถานะ
ผมมองว่านี่เป็นแนวทางที่ใกล้กับ
“ระบบที่นำไปใช้งานจริงได้” มากกว่าการเป็นเดโมสำหรับงานวิจัย
บทความนี้ไม่ใช่อะไร
- บทสอนเฟรมเวิร์ก Agent ตัวใหม่ ❌
- บทความเปรียบเทียบประสิทธิภาพโมเดล ❌
- เรื่องราวเกี่ยวกับ Prompt Engineering ❌
แต่สิ่งที่ผมอยากโยนคำถามคือ
> “ทำไมเราถึงกำลังสร้าง AI Agent ให้ไม่เสถียรแบบนี้กันอยู่?”
ผมเองก็อยากรู้ว่าแนวทางนี้
เมื่อมองจากมุมของ state machine, workflow engine, DSL หรือแม้แต่มุมมองแบบ PL
มันจะถูกมองอย่างไร
และก็ยินดีรับฟังความเห็นหรือคำวิจารณ์จากมุมที่ว่า
“ท้ายที่สุดแล้ว สิ่งนี้ลดรูปได้เป็นอะไรกันแน่?”
ยังไม่มีความคิดเห็น