LLM call đơn chỉ cần chấm output cuối. Agent chạy nhiều bước — chọn tool, gọi tool, quan sát, lặp — nên một đáp án cuối đúng vẫn có thể đến từ quá trình sai (gọi thừa tool, đi đường vòng tốn kém). Vì vậy đánh giá agent gồm hai tầng:
1. Đánh giá kết quả (outcome) — tác vụ có hoàn thành đúng không? Metric: task success rate, đúng đáp án cuối, đạt trạng thái đích. Có thể chấm bằng ground truth, LLM-as-judge, hoặc kiểm tra tác dụng phụ (bản ghi DB được tạo đúng chưa).
2. Đánh giá trajectory (quá trình) — chuỗi bước có hợp lý không?
- Tool-selection accuracy — mỗi bước có chọn đúng tool không (so với tool kỳ vọng): tool đúng / tổng tool call.
- Argument accuracy — tham số truyền vào tool có đúng không.
- So khớp trajectory với một trajectory tham chiếu ở nhiều mức: strict (đúng chuỗi, đúng thứ tự), unordered (đủ tool, thứ tự tự do), superset/subset (cho phép/cấm tool thừa) — subset giúp bắt agent gọi tool không cần thiết.
- Hiệu quả — số bước, số token, chi phí, độ trễ; agent lòng vòng vô ích dù ra đúng vẫn là lỗi.
Cách làm: log toàn bộ trace (bước, tool call, reasoning), rồi dùng evaluator (heuristic, LLM-judge có rubric, hoặc so trajectory tham chiếu) như LangSmith/agentevals. Kết hợp cả outcome và trajectory để biết agent đúng vì lý do đúng, không phải ăn may.