← Harness Engineering Handbook
LEVEL 2 · คุมให้อยู่
Observability — มองเห็นว่า agent คิดอะไรอยู่
ปล่อย agent ทำงานใหญ่ไว้ตั้งแต่บ่าย ผ่านไปชั่วโมงหนึ่ง คำถามผุดขึ้นสามข้อ: ตอนนี้มันทำอะไรอยู่? ติดหล่มหรือกำลังคืบหน้า? แล้วเปลืองไปเท่าไหร่แล้ว? · ถ้าระบบตอบสามคำถามนี้ไม่ได้ เราไม่ได้ "ใช้" agent อยู่ — เรากำลังภาวนาให้มันเสร็จ
7.1 การมองเห็นสามชั้น
harness ที่โตแล้วให้การมองเห็นเป็นชั้น ๆ — แต่ละชั้นตอบคำถามของคนละคน ในคนละจังหวะ:
ชั้นแรกมีของแถมที่คนมองข้าม: narration ที่ดีไม่ใช่ log แต่คือสัญญาระหว่างทาง — บอกทั้ง "ทำอะไร" และ "เพราะอะไร" สั้น ๆ ให้ผู้ใช้เบรกได้ตั้งแต่เห็นทิศทางเพี้ยน ไม่ใช่มารู้ตอนงานเสร็จผิดโจทย์ไปแล้วครึ่งชั่วโมง
7.2 ทำไม trace สำคัญกว่า log ธรรมดา
debug โปรแกรมปกติ = ไล่หา "บรรทัดที่ผิด" เพราะโค้ดวิ่งเหมือนเดิมทุกครั้ง · debug agent เป็นคนละกีฬา: มันคือการ debug การตัดสินใจ — และการตัดสินใจของโมเดลขึ้นกับสิ่งที่มันเห็นในวินาทีนั้นทั้งหมด ถ้าไม่ได้เก็บ context ที่ประกอบตอนนั้นไว้ ก็ไม่มีทางตอบว่าทำไมมันเลือกทางนั้น — รันซ้ำก็ไม่ช่วย เพราะมันไม่ deterministic
ตัวอย่างจริงที่เจอกันบ่อย: agent แก้ไฟล์ผิดตัว · log ธรรมดาบอกแค่ edit config.py — จบ ด่าโมเดลได้อย่างเดียว · แต่ trace เผยว่ารอบก่อนหน้า ผลค้นหาคืนไฟล์ชื่อคล้ายกันสองตัว (config.py, config_prod.py) โดยไม่มีข้อมูลช่วยแยก — โมเดลเลือกตัวแรกอย่างสมเหตุสมผลจากข้อมูลที่มี · อาการโผล่ที่พฤติกรรม แต่สาเหตุอยู่ใน context — และทางแก้คือปรับ harness (ให้ผลค้นบอก path เต็ม + คำอธิบาย) ไม่ใช่รอโมเดลรุ่นใหม่
✅ สรุปบทที่ 7 — สามชั้นการมองเห็น: progress narration (ผู้ใช้ · เรียลไทม์) → transcript/trace (คนสร้าง harness · ไล่ย้อนการตัดสินใจ) → metrics (ทีม · เทรนด์ข้ามงาน) · debug agent = debug การตัดสินใจ ไม่ใช่ debug โค้ด — ต้องเห็นว่าโมเดลเห็นอะไรตอนตัดสินใจ · อาการโผล่ที่พฤติกรรม สาเหตุอยู่ใน context · เก็บ transcript ตั้งแต่วันแรก