Agent คือ Model + Harness. Harness engineering คือวิธีการที่เราสร้างระบบที่ควบคุม Model เพื่อให้มันทำงานในแบบที่เราต้องการ เปรียบ Model คือสมองที่มีความรู้และ Harness คือสิ่งที่สั่งการสมองให้ทำตามที่สั่ง
นิยามของ Harness
Harness คือส่วนของโค้ด การตั้งค่า และตรรกะการทำงานที่ใช้ควบคุมการทำงานของ Model เพราะถ้า Model เปล่าๆยังไม่สารถเรียกว่า Agent ได้หากปราศจาก state, การเรียกใช้เครื่องมือ, feedback, loops และข้อบังคับต่างๆที่ Harness กำหนดเอาไว้
Harness ประกอบไปด้วย
- พร้อมท์ของระบบ
- เครื่องมือ, สกิล, MPCs และคำสั่งกำกับการใช้งาน
- ชุดโครงสร้างพื้นฐาน(ไฟล์ระบบ, เบราว์เซอร์)
- ตรรกะการทำงาน (การสร้าง subAgent, การส่งต่องาน, การ route โมเดล)
- Hooks/Middleware สำหรับการกำหนดขั้นตอนการทำงาน(compaction, continuation, lint checks)

Harness Engineering ควบคุมพฤติกรรม
Harness Engineering ช่วยให้ผู้ใช้ใส่ความรู้, ข้อบังคับ, ขั้นตอนการทำงานให้กับ Agent เพื่อเป็นไกด์นำทาง และเมื่อโมเดลมีทำงานได้เป็นระเบียบขึ้น Harness ยังใช้ในการแก้ไขปรับปรุงให้โมเดลทำงานที่ซับซ้อนขึ้นกว่าเดิมได้ ถ้าเราอยากให้โมเดลทำงานใดๆ เราก็เข้าไปปรับแต่ง Harness เพื่อกำหนดแนวทางให้โมเดลทำงานตามที่เราต้องการ
การจัดการเนื้อหาและความสามารถในการจดจำด้วย Filesystem
โมเดลส่วนใหญ่จะทำงานอยู่ในกรอบที่จำกัด ก่อนที่จะมี Filesystem ผู้ใช้จะต้องป้อนข้อมูลให้โมเดลโดยตรง ซึ่งอาจจะดูจุกจิกในการใช้และไม่มีปะสิทธิภาพ Filesystem เลยถูกนำมาใช้เพื่อแก้ปัญหาดังกล่าว
Harness ที่มีทั้ง Filesystem, เครื่องมือสำหรับการจัดการไฟล์
- Agent มีพื้นที่การทำงานสำหรับอ่านข้อมูล โค้ด และเอกสาร
- การเพิ่มข้อมูลและการนำข้อมูลมาใช้ – Agent สามารถเก็บข้อมูลไว้ใช้ในงานอื่นได้
- การทำงานร่วมกันของผู้ใช้และ Agent ผ่านไฟล์ข้อมูลที่ใช้ด้วยกันอย่างเป็นระบบ เพิ่มประสิทธิการทำงานให้มากขึ้น
Bash + Code สอนให้โมเดลใช้เครื่องมือ
การใช้ Bash + Code เหมือนกับการที่เราเอาคอมพิวเตอร์ไปให้โมเดลใช้ ให้โมเดลได้ค้นหาเครื่องมือที่เหมาะสม ค้นหาข้อมูล หรือค้นหาสิ่งอื่นๆที่จำเป็นกับงานโดยไม่ต้องพึ่งพาผู้ใช้ ความหมายคือทำให้โมเดลทำงานด้วยตัวเองอัตโนมัตินั่นเอง
Sandbox กับเครื่องมือสำหรับการดำเนินงานและตรวจสอบ
หลังจากเราให้ความสามารถในการคิดเองและพื้นที่ทำงานกับ Agent แล้ว แต่ทั้งหมดนี้ต้องเกิดขึ้นที่ไหนสักแห่ง การรันโค้ดที่ Agent สร้างบนเครื่อง local มีความเสี่ยง และ environment เดี่ยวๆ บนเครื่อง local ก็รองรับงานขนาดใหญ่ไม่ได้
Sandbox ให้สภาพแวดล้อมที่ปลอดภัยให้ agent ทำงาน แทนที่จะรันบนเครื่อง local โดยตรง Harness สามารถเชื่อมต่อกับ Sandbox และเพื่อรันโค้ด ตรวจสอบไฟล์ ติดตั้ง dependency และทำงานให้สำเร็จ
โมเดลไม่ได้กำหนดสภาพแวดล้อมสำหรับการรันงานของตัวเองตั้งแต่แรก การตัดสินใจว่า agent จะรันที่ไหน มีเครื่องมืออะไรบ้าง เข้าถึงอะไรได้บ้าง และจะตรวจสอบงานของตัวเองอย่างไร ทั้งหมดอยู่ในขั้นตอนการออกแบบ Harness
Memory & Search ช่วยให้โมเดลจดจำและเรียนรู้
Agent ควรจดจำข้อมูลที่เคยเห็นได้และสามารถค้นคว้าข้อมูลที่ไม่รู้จักได้เอง
โดยปกตินั้นโมเดลจะทำงานแค่ในกรอบของข้อมูลที่เราให้ ถ้าอยากให้โมเดลทำงานอื่นเพิ่มเติมเราก็ต้องไปหาข้อมูลมาป้อนให้โมเดล (context injection)
ในเรื่องของ Memory ก็ยังคงใช้ Filesystem เป็นหลักและ Harness ก็รองรับไฟล์มาตรฐานของ memory เช่น AGENTS.md ที่มีหน้าที่ในการป้อนข้อมูลให้กับ Agent เมื่อเริ่มใช้งานและเมื่อ Agent มีการแก้ไขไฟล์นี้ Haness ก็จะบันทึกการแก้ไขและอัปเดตเอาไว้ใช้ครั้งต่อๆไป ที่เรียกกันว่า continual learning (การเรียนรู้ต่อเนื่อง)
Knowledge cutoff หรือคือการที่ไม่สามารถเรียนรู้เพิ่มเติมนอกเหนือจากข้อมูลที่ผู้ใช้ป้อนให้ เช่น เวอร์ชั่นใหม่ของไลเบอลี่ ข้อมูลที่ใหม่กว่าแต่ด้วย Web Search และเครื่องมือ MCP เช่น Context7 ช่วยให้ agent เข้าถึงข้อมูลที่อยู่นอกเหนือจากนั้นได้
Context Rot ทำให้โมเดลสับสน
ประสิทธิภาพของ Agent ไม่ควรลดน้อยถอยลง
Context Rot คือการที่โมเดลทำงานกับข้อมูลหลายๆข้อมูลเป็นระยะเวลานึงและมีการเก็บค่า context window (Token) ไว้มากเกินไปจนเต็มทำให้เกิดข้อผิดพลาดหรือความถูกต้องของคำตอบน้อยลง Harness จึงมีวิธีป้องกันไม่ให้เกิดขึ้น
- Compaction การลดการใช้ context window ให้น้อยที่สุด
- Tool call offloading การนำเอาเครื่องมือที่ไม่ได้ใช้งานออกไป
- progressive disclosure การค่อยๆนำเครื่องมือมาใช้งาน

โดยสรุปของ Agent Harness
” Agent = Model + Harness “
Harness คือสิ่งที่คอยควบคุมการทำงานของโมเดล การกำหนดแนวทางการทำงาน เครื่องมือในการทำงาน การมอบความสามารถในการคิด การมอบสิทธิ์ในการดำเนินงานต่างๆ และการกำหนดลักษณะนิสัยของ Agent นั้นๆให้ทำงานได้ตรงตามแบบที่เราต้องการมากที่สุดและทั้งยังช่วยให้เราได้สามารถดึงประสิทธิภาพของโมเดลมาใช้สูงสุด
พอโมเดลเก่งขึ้นเรื่อยๆ หลายอย่างที่ harness เคยต้องช่วยทำ เช่น วางแผน ตรวจงานตัวเอง ทำงานยาวๆ ได้ต่อเนื่อง โมเดลจะเริ่มทำเองได้ ไม่ต้องคอยสั่งคอยป้อนให้เหมือนเดิม
ทุกวันนี้ harness ทำหน้าที่ปะรอยรั่วของโมเดล แต่ในขณะเดียวกันก็ช่วยจัดระบบรอบๆ โมเดลให้ทำงานได้ดีขึ้นด้วย ไม่ว่าโมเดลไหน ถ้ามี environment ที่ดี เครื่องมือที่ใช่ มี state เก็บไว้ และมี loop ตรวจงาน มันก็ทำงานได้มีประสิทธิภาพขึ้นเสมอ
เรียบเรียงโดย ภูดิศ โภคามาตย์
อ้างอิง
https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents








