กายวิภาคของ Agent Harness

คุณสร้างแชทบอทขึ้นมาตัวหนึ่ง คุณเพิ่มเครื่องมือเข้าไปไม่กี่อย่างและสร้างลูปง่ายๆ มันทำงานได้ดีสำหรับการสาธิต (demo) แต่พอคุณพยายามจะนำไปใช้งานจริง (production) ทุกอย่างกลับพังทลายลง

โมเดลลืมขั้นตอนที่ผ่านมา การเรียกใช้เครื่องมือ (tool calls) ล้มเหลวโดยไม่มีการแจ้งเตือน และหน้าต่างบริบท (context window) ก็เต็มไปด้วยข้อมูลที่ไร้ประโยชน์

ปัญหาไม่ได้อยู่ที่โมเดลของคุณ แต่มันอยู่ที่โครงสร้างพื้นฐาน (infrastructure) รอบๆ ตัวมัน

โครงสร้างพื้นฐานนี้เรียกว่า agent harness

Agent คือพฤติกรรม ส่วน harness คือกลไกการทำงาน หากคุณไม่ใช่โมเดล คุณก็คือ harness

ให้ลองนึกภาพว่า LLM ดิบๆ เปรียบเสมือน CPU ซึ่งไม่มีทั้ง RAM, ดิสก์ และ I/O ส่วน harness ก็คือระบบปฏิบัติการ (operating system) ที่ทำหน้าที่จัดเตรียมหน่วยความจำ เครื่องมือ และตรรกะต่างๆ เพื่อทำให้โมเดลสามารถใช้งานได้จริง

Harness ระดับที่ใช้งานจริง (production-grade) ประกอบด้วย 12 องค์ประกอบหลัก:

• Orchestration Loop: นี่คือจังหวะการทำงาน (heartbeat) ทำหน้าที่จัดการวงจร Thought-Action-Observation • Tool Layer: นี่คือมือที่ใช้ทำงาน โดย harness จะจัดการเรื่องการลงทะเบียนเครื่องมือ (tool registration), การตรวจสอบความถูกต้อง (validation) และการสั่งการ (execution) • Memory: รวมถึงประวัติระยะสั้นและการจัดเก็บข้อมูลระยะยาวที่ต่อเนื่องกันในแต่ละเซสชัน (sessions) • Context Management: ป้องกันปัญหา context rot โดยการบีบอัดหรือสรุปข้อมูล • Prompt Assembly: ทำหน้าที่สร้าง input ที่แม่นยำเพื่อให้โมเดลเห็นในแต่ละขั้นตอน • Output Classification: ตัดสินใจว่าโมเดลต้องการจะสนทนาหรือต้องการใช้เครื่องมือ • State Management: ช่วยให้ agent สามารถกลับมาทำงานต่อได้หลังจากเกิดข้อผิดพลาดหรือการขัดจังหวะ • Error Handling: ดักจับความล้มเหลวเพื่อไม่ให้ข้อผิดพลาดสะสมจนบานปลาย • Guardrails: ทำหน้าที่เหมือนกับดัก (tripwires) เพื่อหยุดการกระทำที่ไม่ปลอดภัยหรือไม่ถูกต้อง • Permission Enforcement: แยกแยะระหว่างสิ่งที่โมเดลต้องการทำ กับสิ่งที่ได้รับอนุญาตให้ทำ • Verification Loops: ช่วยให้โมเดลตรวจสอบงานของตัวเองเพื่อเพิ่มคุณภาพ • Agent Handoffs: จัดการวิธีการที่ agent ตัวหนึ่งส่งต่องานไปยังอีกตัวหนึ่ง

เป้าหมายของวิศวกรรมที่ดีคือการทำให้ harness มีความบาง (thin) มากที่สุดเท่าที่จะเป็นไปได้ เมื่อโมเดลฉลาดขึ้น คุณก็ควรจะต้องการโครงร่าง (scaffolding) น้อยลง

เมื่อ agent ของคุณล้มเหลว อย่าไปโทษโมเดล แต่ให้กลับมาดูที่ harness ของคุณ

Source: https://dev.to/aniruddhaadak/the-anatomy-of-an-agent-harness-1n1j

Optional learning community: https://t.me/GyaanSetuAi