เราเขียนบล็อกเรื่องการสร้าง AI agent มาสามสิบกว่าตอนแล้ว แต่ละตอนจับปัญหาคนละเรื่อง ตอนหนึ่งว่าด้วยการกันไม่ให้มันกุเรื่อง ตอนหนึ่งเรื่องเก็บความจำให้เชื่อถือได้ อีกตอนเรื่องเส้นแบ่งว่าเมื่อไหร่ควรปล่อยให้มันลงมือเอง จนวันหนึ่งลองเอาทุกตอนมาวางเรียงกันดู ถึงเพิ่งเห็นว่ามันไม่ใช่สามสิบเรื่องที่แยกจากกัน แต่เป็นชิ้นส่วนของสิ่งเดียวกัน คือ AI agent ที่เอาไปใช้งานจริงแล้วไม่พัง
คำว่า demo ในที่นี้คือสิ่งที่เราเห็นกันจนชินตามคอร์สสอนหรือคลิป YouTube พิมพ์ prompt ทีเดียว AI ก็ทำงานให้ดูจบในคลิปสั้น ๆ แต่นั่นยังไม่ใช่ agent มันเป็นแค่การถามครั้งเดียวตอบครั้งเดียว ส่วน agent คือตัวที่รับเป้าหมายไปแล้ววางแผนและลงมือทำเองหลายขั้นต่อเนื่องจนจบงาน
เรื่องที่คนไม่ค่อยพูดกันคือ demo แบบนั้นมันง่าย ใคร ๆ ก็ทำได้ แต่พอเอาของอันเดียวกันไปรันจริงทุกวัน มันเริ่มลืมสิ่งที่เพิ่งทำไปเมื่อวาน เริ่มเติมข้อมูลที่ไม่มีใครบอก เริ่มลงมือทำสิ่งที่ไม่ควรทำ พอเปิดสองงานพร้อมกันก็เขียนทับกันเอง ทุกอาการที่ว่ามา ล้วนมาจากการขาดส่วนประกอบสำคัญไปหนึ่งอย่าง
ลองนึกภาพ agent ที่ใช้งานได้จริงเป็นเหมือนตึกที่ประกอบจากหลายชั้นวางซ้อนกัน แต่ละชั้นรับหน้าที่คนละอย่าง ขาดชั้นไหนไป agent ก็พังในแบบของชั้นนั้น บทความนี้คือแผนที่ของทั้งเจ็ดชั้น 7 ชั้นที่แยก agent ที่รันโชว์สนุกในคลาสเรียนหรือ workshop ออกจาก agent ที่เอาไปใช้งานจริงแล้วไม่พัง แต่ละชั้นเราเขียนลงลึกไว้เป็นตอนแยกจากงานจริงแล้ว ลิงก์ไว้ให้ตามอ่านต่อได้
ก่อนอื่น ลองค้นคำว่า "ai agent architecture" ในกูเกิลดู สิ่งที่เจอส่วนใหญ่คือ diagram ทฤษฎีชนิดของ agent แบบในตำรา reactive agent, deliberative agent, BDI agent ของพวกนี้มีประโยชน์ตอนสอบ แต่พอเอา agent ออกไปทำงานจริง สิ่งที่ทำให้มันพังไม่ใช่ว่าเลือกชนิดไหน มันคือชั้นที่ตำราไม่ได้วาดให้ ความจำ รั้ว การพิสูจน์ผล นี่คือสถาปัตยกรรมที่ production ต้องการจริง ๆ
ชั้นที่ 1เครื่องยนต์ไม่ใช่ตัว agent
คนที่เพิ่งเริ่มลงมือสร้าง agent มักคิดว่า agent คือโมเดล เลือก Claude หรือ GPT ก็จบ แต่พอสร้างจริงจะเห็นว่าโมเดลเป็นแค่ชิ้นส่วนหนึ่ง เหมือนเครื่องยนต์ในรถ สำคัญก็จริง แต่มันไม่ใช่ทั้งคัน ตัว agent จริง ๆ คือทุกอย่างที่ห่อรอบเครื่องยนต์ไว้ ทั้งกติกา ความจำ เครื่องมือ
รั้วของชั้นนี้คือ อย่าผูกตัวเองไว้กับโมเดลเดียว ถ้าออกแบบให้ตัว agent กับเครื่องยนต์เป็นคนละชิ้น วันที่มีโมเดลใหม่ถูกกว่าเก่งกว่า หรือวันที่เจ้าเดิมขึ้นราคา คุณก็แค่ถอดเปลี่ยน ไม่ต้องรื้อทั้งระบบ และงานคนละแบบก็ใช้เครื่องยนต์คนละขนาดได้ งานตัดสินใจยาก ๆ ใช้โมเดลตัวใหญ่ งานซ้ำ ๆ ง่าย ๆ ใช้โมเดลเล็กในเครื่องตัวเองที่แทบไม่มีค่าใช้จ่าย
อ่านต่อ: แยกตัวตน เครื่องยนต์ และการสั่งงานออกจากกัน · เลือกขนาดโมเดลให้พอดีกับงาน · คิดค่าใช้จ่ายจริงของเครื่องยนต์
ชั้นที่ 2การสั่งงานหลายตัว
agent ตัวเดียวทำงานทีละอย่างคือ demo พองานจริงโตขึ้น คุณอยากแบ่งงานใหญ่ออกเป็นชิ้นเล็ก ให้ agent หลายตัวทำพร้อมกัน แล้วมีตัวหนึ่งคุมภาพรวม นี่คือชั้นการสั่งงาน (orchestration) และมันเปิดปัญหาใหม่ที่ตอนรันตัวเดียวไม่เคยเจอ
รั้วที่คนข้ามบ่อยที่สุดในชั้นนี้คือ การกันไม่ให้ agent เหยียบกันเอง พอเปิดสองตัวทำงานในที่เดียวกัน มันเขียนทับไฟล์กันเอง ผลออกมาปนกันจนเชื่อไม่ได้ ตัวที่คุมต้องแยกพื้นที่ให้แต่ละตัวก่อน ไม่ใช่หน้าที่ของ agent ลูกที่จะระวังกันเอง เป็นหน้าที่ของตัวคุม และค่าใช้จ่ายที่แพงที่สุดมักไม่ใช่ตัว agent แต่คือคนที่ต้องนั่งเฝ้าคอยสั่งทีละงาน ตรงนี้ต่างหากที่ต้องออกแบบให้มันเดินเองได้
อ่านต่อ: ส่วนที่แพงไม่ใช่ตัว agent · แบ่งงานให้ทีม agent ทำขนานกัน · การแยกพื้นที่เป็นหน้าที่ของตัวคุม · ใช้บอร์ดงานเป็นช่องส่งงานให้ agent
ชั้นที่ 3ความจำ
agent ที่ไม่มีความจำจะเริ่มต้นจากศูนย์ทุกครั้งที่เปิดใหม่ ถามซ้ำเรื่องที่เพิ่งบอกไป ลืมกติกาที่ตกลงกันเมื่อวาน ความจำจึงไม่ใช่ของเสริม มันเป็นชั้นที่ต้องออกแบบ และมีสองอย่างที่ต่างกัน คือกฎ (ของที่ต้องรู้ทุกครั้ง) กับข้อมูล (ของที่ค่อยหยิบมาตอนต้องใช้) ปนกันเมื่อไหร่ก็พังทั้งคู่ กฎหาย หรือบริบทล้นจนช้า
รั้วของชั้นนี้คือ ความจำก็โกหกได้ ต้องเป็นความจำที่เชื่อได้ ถ้า agent หยิบความจำผิดชิ้นมาตอบ มันก็มั่นใจเสียด้วย เพราะฉะนั้นสิ่งที่จำต้องมีต้นทางให้อ้างกลับได้ ไฟล์คือของจริง เครื่องมือค้นเป็นแค่ทางลัด และของที่ยังไม่ได้เขียนลงไฟล์ ถือว่ายังไม่มี
อ่านต่อ: ออกแบบความจำที่เชื่อได้ · แยกกฎออกจากข้อมูล · สองไฟล์ที่ส่งความรู้ให้ทั้งทีม · ชั้นเก็บความจำที่เราใช้จริง · ป้อนความรู้เข้าคลังโดยไม่ให้ AI กุเรื่อง
ชั้นที่ 4เครื่องมือกับทักษะ
โมเดลลำพังทำได้แค่พิมพ์ข้อความออกมา จะให้มันอ่านไฟล์ ยิง API ส่งข้อความ ต้องต่อเครื่องมือให้ นี่คือชั้นที่ agent ลงมือกับโลกจริง และของฟรีในชั้นนี้ไม่ได้ฟรีจริง ทุกเครื่องมือที่ต่อเข้าไปกินพื้นที่บริบทของโมเดล และเปิดช่องให้โจมตีเพิ่มขึ้นหนึ่งช่อง
รั้วของชั้นนี้มีสองอัน อันแรก ตรวจเครื่องมือก่อนติดตั้ง ไม่ใช่ติดตามกระแส เครื่องมือที่ติดไว้แต่ไม่เคยเรียกใช้ คือพื้นที่บริบทที่เสียไปเปล่า ๆ อันที่สอง แยกงานให้ถูกฝั่ง งานที่ต้องได้ผลเป๊ะทุกครั้ง เช่น การวนซ้ำ การคิดเลข ให้เขียนเป็นโค้ดที่ผลตายตัว ส่วนงานที่ต้องอ่านแล้วตัดสินใจค่อยปล่อยให้โมเดลทำ เอาโมเดลไปคิดเลขเมื่อไหร่ได้ผลไม่ซ้ำเดิมเมื่อนั้น
อ่านต่อ: ตรวจปลั๊กอินก่อนติดตั้ง · เครื่องมือที่ติดไว้แต่ไม่เคยเรียก · แยกโค้ดผลตายตัวออกจากการตัดสินใจ · skill คืออะไร · ต่อ agent ข้ามเครื่องโดยไม่เปิดพอร์ต
ชั้นที่ 5รั้ว จุดที่แยก production ออกจาก demo
ถ้าให้เลือกชั้นเดียวที่แยก demo ออกจากของจริง เราเลือกชั้นนี้ demo ทุกอันสมมติว่าทุกอย่างเป็นไปตามแผน แต่ production คือการเตรียมรับตอนที่มันไม่เป็นตามแผน รั้วคือชุดกติกาที่กันไม่ให้ agent ทำในสิ่งที่ไม่ควร และมันมีหลายด่าน
- ตอนไหนลงมือเอง ตอนไหนต้องถามก่อน งานที่ย้อนกลับได้ปล่อยให้มันทำ งานที่ย้อนไม่ได้ต้องให้คนเคาะ นี่คือเส้นแบ่งที่ต้องขีดไว้ล่วงหน้า
- ข้อความไม่ใช่คำสั่ง แค่มีคนพิมพ์อะไรเข้ามา ไม่ได้แปลว่า agent ต้องทำตาม ต้องมีด่านตรวจว่าใครสั่งและสั่งให้ทำอะไร
- ข้อมูลลับต้องไม่รั่วออกไป ข้อมูลส่วนตัวหรือของลูกค้าต้องไม่ถูกส่งขึ้นไปที่ที่ไม่ควร รู้ให้ชัดว่าเครื่องมือแต่ละตัวส่งอะไรออกไปบ้าง
- อย่าเชื่อความมั่นใจของโมเดลเดียว โมเดลตอบผิดแบบมั่นใจได้ ของสำคัญให้คนละเครื่องยนต์ช่วยดู มุมที่ต่างกันจับจุดบอดที่เหมือนกันไม่ได้
อ่านต่อ: ตอนไหน AI ลงมือเอง ตอนไหนต้องถาม · ข้อความไม่ใช่คำสั่ง · ด่านป้องกันไม่ให้ข้อมูลรั่ว · ทำไม AI ถึงโกหกคุณ · ให้ AI ต่างค่ายช่วยกันจับผิด
ชั้นที่ 6การพิสูจน์ผล
agent เขียนโค้ดหรือทำงานเสร็จแล้วบอกว่า "เรียบร้อย" คุณเชื่อได้แค่ไหน ชั้นนี้คือการพิสูจน์ว่ามันทำถูกจริง และกับดักที่ใหญ่ที่สุดคือตัวเครื่องมือตรวจเองก็โกหกได้
รั้วของชั้นนี้คือ อย่าเชื่อเครื่องหมายถูกจนกว่าจะพิสูจน์ว่ามันจับผิดเป็น ตัวตรวจที่ตายไปแล้ว กับตัวตรวจที่ผ่านเพราะไม่มีอะไรผิดจริง หน้าตาเหมือนกันเป๊ะ ต้องลองใส่ของผิดที่รู้อยู่แล้วเข้าไป ดูว่ามันจับได้ไหมก่อน แล้วของสำคัญให้คนละเครื่องยนต์รีวิว ไม่ใช่ให้ตัวที่เขียนตรวจงานตัวเอง
อ่านต่อ: ให้เครื่องยนต์อีกตัวรีวิวโค้ด · พิสูจน์ว่าตัวตรวจของคุณจับผิดเป็น · จับพฤติกรรมเดิมไว้ก่อนแก้
ชั้นที่ 7การถูกค้นเจอ
พอ agent ทำงานได้แล้ว ชั้นสุดท้ายคือการทำให้คนและ agent ตัวอื่นเข้าถึงมันได้ เว็บของคุณทุกวันนี้ไม่ได้ถูกอ่านแค่โดยคน แต่ถูกอ่านโดยเครื่องมือค้นหาที่ใช้ AI และ agent ที่ไปดึงข้อมูลมาตอบด้วย
รั้วของชั้นนี้คือ คุมว่าใครเข้ามาอ่านได้ และวางโครงให้เครื่องอ่านรู้เรื่อง เลือกได้ว่าจะให้บอตตัวไหนเข้ามาเก็บข้อมูล และจัดหน้าเว็บให้มีโครงสร้างที่ทั้งคนและเครื่องหยิบไปใช้ต่อได้ ไม่ใช่แค่สวยสำหรับสายตาคน
อ่านต่อ: ทำเว็บให้ agent อ่านรู้เรื่อง · ให้ AI มองเห็นเว็บของคุณ · คุมบอต AI ทีละตัวบน Cloudflare
สรุปเริ่มจากชั้นไหนดี
สถาปัตยกรรมไม่ใช่ diagram ที่วาดครั้งเดียวจบ มันคือชุดของรั้วที่คุณค่อย ๆ เพิ่มเข้าไปทุกครั้งที่ demo ง่าย ๆ เจอโลกจริง ทบทวนอีกทีทั้ง 7 ชั้น
- เครื่องยนต์ ถอดเปลี่ยนได้ อย่าผูกกับโมเดลเดียว
- การสั่งงานหลายตัว แยกพื้นที่ก่อน ไม่งั้นเหยียบกันเอง
- ความจำ แยกกฎออกจากข้อมูล และต้องเชื่อได้
- เครื่องมือกับทักษะ ตรวจก่อนติด แยกงานผลตายตัวออกจากงานตัดสินใจ
- รั้ว ตอนไหนถาม ข้อความไม่ใช่คำสั่ง ข้อมูลไม่รั่ว อย่าเชื่อโมเดลเดียว
- การพิสูจน์ผล ตัวตรวจต้องจับผิดเป็นก่อนถึงเชื่อ
- การถูกค้นเจอ คุมว่าใครอ่านได้ วางโครงให้เครื่องเข้าใจ
ไม่ต้องสร้างครบทั้ง 7 ชั้นตั้งแต่วันแรก เริ่มจากชั้นที่กำลังเป็นปัญหาของคุณอยู่ตอนนี้ ถ้า agent กุเรื่องบ่อย เริ่มที่ชั้นรั้วกับความจำ ถ้ามันช้าและแพง เริ่มที่เครื่องยนต์กับเครื่องมือ ถ้ารันหลายตัวแล้วผลปนกัน เริ่มที่การสั่งงาน แต่ละชั้นด้านบนมีตอนที่ลงลึกไว้แล้ว เลือกชั้นที่ตรงกับปัญหาของคุณ แล้วตามไปอ่านได้เลย
- ทั้ง 7 ชั้นในบทความนี้ เราเขียนแยกเป็นตอนจากงานจริงมาแล้ว ลิงก์ไว้ในแต่ละชั้นด้านบน บทความนี้เป็นแผนที่ที่โยงทุกตอนเข้าด้วยกัน
- AGENTS.md ในฐานะมาตรฐานไฟล์กติกาสำหรับ agent: agents.md