Harness Engineering: กลยุทธ์ประเมินและปรับปรุง AI Coding Agent ให้ทำงานแม่นยำและมั่นคง
9 ก.ย. 2026
เมื่อนักพัฒนาเริ่มสร้างระบบ AI Coding Agent ในช่วงแรก มักจะติดกับดักการรัน Benchmark แบบ End-to-End ทั่วไป เช่น Terminal-Bench หรือ DeepSWE แล้วเฝ้าดูคะแนนรวมที่ขยับขึ้นลงเพียงไม่กี่เปอร์เซ็นต์ โดยที่ไม่สามารถระบุสาเหตุที่แน่ชัดของการเปลี่ยนแปลงนั้นได้
แม้ว่า End-to-End Benchmark จะเป็นมาตรฐานหลักในการวัดประสิทธิภาพภาพรวมและชี้จุดที่ควรตรวจสอบเชิงลึก แต่ความท้าทายสำคัญคือการตรวจสอบเหล่านั้นมีต้นทุนที่สูงมากและใช้เวลานาน
การประเมินเชิงพฤติกรรม (Behavioral evaluations) จึงเป็นตัวชี้วัดความมั่นใจที่ดีกว่า เพื่อยืนยันว่าพฤติกรรมที่คุณคาดหวังเกิดขึ้นจริง และช่วยให้มั่นใจว่าการพัฒนาเดินไปถูกทิศทาง ไม่เกิดการถดถอย (Regressions) เมื่อมีการเปลี่ยนโมเดลใหม่ การประเมินเหล่านี้ทำหน้าที่เป็นคู่หูในการปรับปรุงงานและช่วยให้เข้าใจผลกระทบของการเปลี่ยนแปลงแต่ละส่วนได้ชัดเจน โดยทั่วไปทีมส่วนใหญ่มักประเมิน AI Agent เหมือนนักเรียนทำข้อสอบ ด้วยการส่ง Codebase ชุดใหญ่ให้แล้ววัดผลจากจำนวน Test Case ที่ผ่านหรือตก แต่เมื่อคะแนนลดลง Benchmark เหล่านี้มักตอบไม่ได้ว่าปัญหามีสาเหตุมาจากความมั่นใจเกินไปใน Prompt ที่กำกวม การลืมตรวจสอบงานก่อนส่ง หรือการหลอน (Hallucinate) เรื่องคำสั่ง CLI
การประเมินเชิงพฤติกรรม จึงเปรียบเสมือน Integration Test สำหรับ Agent Harness เมื่อคุณมีชุดการประเมินที่ครอบคลุม คุณจะมีฐานข้อมูลพฤติกรรมที่ต้องการและสามารถปรับปรุง Prompt ซ้ำๆ เพื่อให้บรรลุเป้าหมายนั้นได้
แทนที่จะวัดแค่ว่า Agent แก้ไขไฟล์จำนวนมากได้สำเร็จหรือไม่ การประเมินเชิงพฤติกรรมจะแยกวัดการกระทำที่สังเกตได้ เช่น:
- เมื่อได้รับ Prompt ที่ไม่ชัดเจน Agent เลือกที่จะถามคำถามกลับแทนที่จะเดาเองหรือไม่
- เมื่อแก้ไขไฟล์ Build เสร็จสิ้น Agent ได้รันตัวตรวจสอบในเครื่อง (Local Validator) ก่อนส่งงานหรือไม่
- เมื่อสร้างเอกสาร โมเดลให้ลิงก์ Repository ที่ถูกต้องตามมาตรฐานหรือไม่
ในช่วงเริ่มสร้าง Agent จากศูนย์ คุณควรใช้สัญชาตญาณและการทดลองใช้เอง (Dogfooding) จนกว่า Agent จะสามารถจัดการงานพื้นฐาน เช่น เขียน Boilerplate หรือรันงานทั่วไปได้ การรันระบบประเมินผลในช่วงที่ระบบยังไม่เสถียรอาจยังไม่มีความหมายนัก
การประเมินจะเข้าสู่เฟสที่สองคือ การรับรองความก้าวหน้า และ การป้องกันการถดถอย (Regressions) วัตถุประสงค์หลักไม่ใช่เพียงเพื่อฉลองคะแนนที่เพิ่มขึ้น แต่เพื่อสร้างความมั่นใจว่าการปรับแต่ง Prompt, การเปลี่ยน Tool Schema หรือการอัปเกรดโมเดล จะไม่ทำให้พฤติกรรมหลักของ Agent แย่ลง
เฟรมเวิร์กการประเมินที่แข็งแกร่งจะแยกการตรวจสอบพฤติกรรมออกมาเป็น Unit-style ที่รวดเร็วและแม่นยำ (Deterministic) ซึ่งสามารถรันในเครื่องได้ทันที ช่วยให้คุณปรับปรุง System Prompt หรือเปลี่ยนโมเดลได้อย่างมั่นใจ เพราะจะทราบทันทีหากพฤติกรรมหลักเกิดความเสียหาย
การประเมินเชิงพฤติกรรมจะตรวจสอบขั้นตอนระหว่างทาง เช่น การเรียกใช้เครื่องมือเฉพาะอย่าง มากกว่าการดูแค่ข้อความสุดท้าย:
import pytest
from google.antigravity import Agent, LocalAgentConfig, types
@pytest.mark.asyncio
async def test_agent_uses_web_search_for_live_weather():
"""Assert that the agent consults ground truth rather than guessing."""
config = LocalAgentConfig()
async with Agent(config) as agent:
response = await agent.chat("What's the weather like in Mountain View, California?")
tools = [call.name async for call in response.tool_calls]
# Assert behavior, not output prose
assert types.BuiltinTools.SEARCH_WEB in tools, (
"Agent answered from memory without consulting live search."
)นอกจากนี้ คุณยังสามารถทำ Prompt Engineering แบบอัตโนมัติได้ โดยตั้ง Loop ให้ LLM ปรับแต่ง System Prompt ของตัวเองจนกว่าจะผ่านการทดสอบที่เคยตก โดยมีชุดทดสอบที่เหลือทำหน้าที่เป็นราวกั้นในสไตล์ CI/CD เพื่อไม่ให้กระทบฟีเจอร์เดิม
สำหรับผู้ที่เริ่มต้น ผมแนะนำ Loop การทดสอบ 3 ขั้นตอน ดังนี้:
- เลือกรูปแบบความผิดพลาดมาหนึ่งอย่าง: เช่น การลืมรัน Unit Test ก่อนส่งงาน และตั้งเป็นเป้าหมายหลัก
- เขียนการตรวจสอบที่ยืดหยุ่น: สำหรับงานง่ายให้เช็คผลลัพธ์ที่ตายตัว แต่สำหรับงานซับซ้อนที่ Agent อาจเลือกเส้นทางที่คาดไม่ถึง ให้ใช้ LLM-as-a-judge เพื่อประเมินความสำเร็จและความปลอดภัยของผลลัพธ์แทนการบังคับลำดับเครื่องมือ
- สร้างการประเมินแบบ Batch อัตโนมัติ: แทนที่จะวัดผลจากการรันครั้งเดียวที่มีความไม่แน่นอน ให้รันเป็น Batch เพื่อดูอัตราการผ่านโดยรวม (Pass Rate) ซึ่งช่วยให้ติดตามทิศทางของการพัฒนาได้แม่นยำกว่า
# Run local behavioral suite in under 5 seconds
pytest evals/behavioral/ -vสุดท้ายนี้ AI Agent ไม่ได้ต้องการแค่คะแนน Benchmark ที่สูงขึ้น แต่ต้องการระบบประเมินที่คอยกำกับให้ทำงานได้ถูกต้อง คุณต้องเลิกปฏิบัติกับโมเดลเหมือนกล่องดำ และเริ่มปฏิบัติกับระบบประเมินเหมือนซอฟต์แวร์มาตรฐานที่มีการทำ Unit Test และ Integration Test อย่างเป็นระบบ
แม้การประเมินเชิงพฤติกรรมจะเป็นเสาหลัก แต่ก็ไม่ได้มาแทนที่ End-to-End Benchmark ทั้งสองส่วนจะเสริมกันโดย Macro Benchmark จะตรวจสอบเป้าหมายสุดท้าย ส่วน Micro Behavioral Eval จะเป็นคู่หูที่ช่วยให้การพัฒนาฟีเจอร์ใหม่หรือการเปลี่ยนโมเดลเป็นไปได้อย่างรวดเร็วและปลอดภัย

ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
