Skip to content
Tayakorn

Harness Engineering Handbook

LEVEL 2 · คุมให้อยู่

Observability — มองเห็นว่า agent คิดอะไรอยู่

ปล่อย agent ทำงานใหญ่ไว้ตั้งแต่บ่าย ผ่านไปชั่วโมงหนึ่ง คำถามผุดขึ้นสามข้อ: ตอนนี้มันทำอะไรอยู่? ติดหล่มหรือกำลังคืบหน้า? แล้วเปลืองไปเท่าไหร่แล้ว? · ถ้าระบบตอบสามคำถามนี้ไม่ได้ เราไม่ได้ "ใช้" agent อยู่ — เรากำลังภาวนาให้มันเสร็จ

7.1 การมองเห็นสามชั้น

harness ที่โตแล้วให้การมองเห็นเป็นชั้น ๆ — แต่ละชั้นตอบคำถามของคนละคน ในคนละจังหวะ:

① progress narration — เล่าสดว่ากำลังทำอะไร"รันเทสต์รอบ 3 — เหลือแดง 2 ตัว กำลังแก้ mock ที่ผิด"ผู้ใช้ · เรียลไทม์"ตอนนี้มันทำอะไรอยู่?"② transcript / trace — บันทึกดิบครบทุกรอบทุก prompt ที่ประกอบ · ทุก tool call · ทุกผลลัพธ์ ไล่ย้อนได้คนสร้าง harness · ตอน debug"ทำไมมันตัดสินใจแบบนั้น?"③ metrics — ตัวเลขรวมข้ามหลายงานtoken · cost · เวลา · จำนวนรอบ · อัตรางานสำเร็จทีม/เจ้าของระบบ · รายสัปดาห์"โดยรวมดีขึ้นหรือแย่ลง?"ยิ่งลึก ยิ่งขยับจาก "เรื่องเดียว เรียลไทม์" → "หลายงาน มองย้อนหลัง"
FIG 7.1 สามชั้นของการมองเห็น: narration ให้คนตัดสินใจว่าปล่อยต่อหรือเบรก · trace ให้ไล่การตัดสินใจ · metrics ให้เห็นเทรนด์

ชั้นแรกมีของแถมที่คนมองข้าม: 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 ตั้งแต่วันแรก

Read the full book