what i've learned today

Agent harness

2026-11-11aiagentharness

Harness แปลตรงตัวคือ “สายรัด/บังเหียน” ที่ใช้ควบคุมม้า

แล้วอะไรคือ โครงที่ครอบสิ่งหนึ่งไว้เพื่อควบคุม ขับเคลื่อน หรือทดสอบมัน(?)

ก่อนอื่นต้องเข้าใจก่อนว่า ตัวโมเดล LLM ทำได้แค่รับข้อความเข้า แล้วพิมพ์ข้อความตอบออกมาแค่นั้นจริง ๆ มันเปิดไฟล์เองไม่ได้ ค้นเว็บเองไม่ได้ รันโค้ดเองไม่ได้, Harness คือโค้ดที่ครอบโมเดลไว้ ทำให้มันกลายเป็น agent ที่ทำงานได้จริง

สมมติเราสั่งว่า “ช่วยแก้ bug ในไฟล์ app.ts” สิ่งที่เกิดขึ้นคือ

  1. harness ส่งข้อความของคุณไปให้โมเดล
  2. โมเดลตอบกลับมาเป็นข้อความว่า “ขออ่านไฟล์ app.ts หน่อย”
  3. harness เห็นคำขอนี้ ก็ไปเปิดไฟล์ให้จริง ๆ แล้วส่งเนื้อหาไฟล์กลับไปให้โมเดล
  4. โมเดลอ่านแล้วตอบว่า “แก้บรรทัด 42 เป็นแบบนี้”
  5. harness ก็ไปแก้ไฟล์ให้จริง

นี่คือเหตุผลที่ว่า Claude Code, Cursor, Codex CLI และ Aider หลายตัวใช้โมเดลเดียวกันได้ แต่ทำงานได้ดีไม่เท่ากัน เพราะ harness ต่างกัน จึงมีคนพูดว่า “model + harness = agent”

หน้าที่หลักของ Harness ถ้าพูดแบบทางการ คือ

  • Agent loop: ส่ง prompt ให้โมเดล รับคำตอบ ถ้าโมเดลขอเรียก tool ก็รัน tool นั้น แล้วส่งผลลัพธ์กลับไปให้โมเดล วนซ้ำจนงานเสร็จ
  • Tools: เตรียมเครื่องมือให้โมเดลใช้ เช่น อ่านหรือเขียนไฟล์ รัน shell ค้นเว็บ หรือ MCP server
  • Context management: จัดการ system prompt, ประวัติการคุย, การย่อ context เมื่อยาวเกิน และ memory
  • Permissions/safety: กำหนดว่าคำสั่งไหนต้องขออนุญาตก่อน และรันใน sandbox หรือไม่
  • UI/การแสดงผล: เช่น terminal, หน้าแชต หรือ IDE

Linked from

Nothing links here yet.

← all notes