วิธีที่ถูกต้องในการสร้าง AI Architecture
เมื่อก่อนผมเคยคิดว่าการทำให้ AI assistant ฉลาดขึ้นหมายถึงการเพิ่มเครื่องมือเข้าไปใน loop เดิม มันก็ได้ผลอยู่พักหนึ่ง แต่หลังจากนั้น assistant ของผมต้องทำงานปกติของผู้ใช้ เช่น ทำงานต่อจากแชท, ตอบคำถามเกี่ยวกับสถานะ หรือจดจำ workflow
ปัญหาไม่ใช่เรื่องที่ว่า assistant ของผมสามารถเรียกใช้เครื่องมือได้มากแค่ไหน แต่เป็นเรื่องของสถาปัตยกรรม (architecture) สถาปัตยกรรมแบบเดิมนั้นเรียบง่าย: user message -> assistant loop -> tools -> answer แบบนี้ใช้ได้สำหรับการทำ demo แต่ไม่ใช่สำหรับ resident assistant
resident assistant จำเป็นต้องรู้ว่าข้อความนั้นเป็นงานใหม่, การติดตามงาน หรือการยกเลิก มันต้องหลีกเลี่ยงการแย่งการควบคุมหน้าจอ (desktop) จากงานอื่น และต้องจดจำขั้นตอนการทำงานได้โดยไม่ต้องใช้ transcript เก่าๆ
ผมจึงเลิกมองว่า assistant ของผมเป็นเพียง agent ตัวเดียว และเริ่มปฏิบัติกับมันในฐานะ local control plane ตอนนี้สถาปัตยกรรมของผมเป็นแบบนี้:
- Experience Plane: ดูแลส่วนที่ผู้ใช้กำลังสื่อสารอยู่
- Assistant Control Plane: ตัดสินใจว่านี่คืองานประเภทไหน
- Runtime Execution Plane: ส่วนที่การเขียนโค้ดเกิดขึ้น
- Proxy / Model Access Plane: จัดการงานในส่วนของ provider
ผมยังมี Observation Plane และ Memory / Policy Plane อีกด้วย plane เหล่านี้ช่วยให้ assistant ของผมทำงานได้อย่างมีสติและจดจ่อกับงานที่ได้รับมอบหมาย
การปรับปรุงที่ยิ่งใหญ่ที่สุดมาจากการทำให้ assistant ของผมใช้ข้อมูลจากการสังเกต (observations) แทนที่จะใช้ raw logs สิ่งนี้ช่วยให้ assistant ของผมเห็นข้อเท็จจริงที่กระชับ เช่น "Task X กำลังรอการอนุมัติ" แทนที่จะต้องอ่าน transcript ยาวเหยียด
ผมเรียนรู้ว่า "การจดจำ" ไม่ใช่เรื่องเดียวกับการยัดประวัติการแชท (chat history) ลงไปใน prompt ให้มากขึ้น สำหรับ assistant ของผม หน่วยความจำ (memory) นั้นเป็นแบบ file-based และมีการกำหนดขอบเขต (scoped) มันสามารถจัดเก็บ workflow, ข้อเท็จจริง หรือการอ้างอิง และเรียกคืนมาใช้เมื่อจำเป็นได้
หากคุณกำลังสร้าง agent รอบๆ เครื่องมือที่มีอยู่ คุณกำลังใส่ทุกอย่างไว้ใน loop เดียว หรือคุณเริ่มที่จะแยกส่วน control, execution, observation และ memory ออกจากกันแล้วหรือยัง?
Source: https://dev.to/codekingai/my-ai-assistant-needed-a-control-plane-not-a-bigger-loop-15aa Optional learning community: https://t.me/GyaanSetuAi