Chạy Demo không giống như hoàn thành bàn giao. Điều nguy hiểm nhất về một Agent không phải là báo lỗi, mà là hiển thị "Hoàn thành" khi thực tế nó đã làm sai.
Làm thế nào để chứng minh Agent này thực sự có thể đưa vào hoạt động?
Gần đây tôi đã thử nghiệm một Agent nghiên cứu. Nó trả về một báo cáo có cấu trúc hoàn chỉnh với các trích dẫn, và trang web hiển thị "Đã hoàn thành." Tôi bấm ngẫu nhiên ba liên kết: một cái bị hỏng, một cái hoàn toàn không hỗ trợ kết luận trong báo cáo, và cái còn lại chỉ đến từ một đoạn trích kết quả tìm kiếm. Khi tôi chạy lại cùng một câu hỏi, kết luận đã thay đổi.
Đây chính xác là kiểu lỗi Agent nguy hiểm nhất: nó không báo lỗi, và thậm chí trông như thể nó đã hoàn thành.

Vì vậy, trong bài viết này, tôi sẽ bắt đầu với một thư mục, 30 tác vụ thực tế và một vài bộ quy tắc kiểm tra để xây dựng một Khung Đánh giá Agent tối thiểu khả thi. Nó cần trả lời ba điều: tác vụ có thành công không, lỗi xảy ra ở đâu và liệu có thể phát hành phiên bản mới không.
Hãy sử dụng Agent nghiên cứu này làm ví dụ.
Hiện có hai phiên bản. v1 sử dụng mô hình và prompt gốc; v2 sử dụng một mô hình khác, prompt đã được sửa đổi và thêm một công cụ tìm kiếm. Mục tiêu của chúng tôi là quyết định xem v2 có thể thay thế v1 và được bàn giao cho người dùng thực tế hay không.
Toàn bộ quy trình có thể được nén thành tám bước:
Xác định quyết định phát hành → Xác định thành công và thất bại không thể chấp nhận → Thiết lập bộ dữ liệu đánh giá → Ghi lại kết quả cuối cùng và quỹ đạo thực thi → Cấu hình Quy tắc, Judge và đánh giá của con người → Chạy lặp lại và so sánh v1/v2 → Đặt các ngưỡng phát hành → Đưa các lỗi sản xuất trở lại bộ đánh giá
Phiên bản đầu tiên không yêu cầu mua ngay một nền tảng hay nghiên cứu hàng tá điểm chuẩn. Một thư mục, một loạt câu hỏi thực tế, một vài tập lệnh kiểm tra và một tiêu chuẩn chấm điểm rõ ràng là đủ để có được vòng lặp khép kín quan trọng nhất.
Đầu tiên, quyết định Eval này cần trả lời điều gì
Bước đầu tiên của nhiều nhóm khi xây dựng Eval là tìm kiếm "nên dùng framework nào cho Agent Eval" và sau đó bắt đầu so sánh các nền tảng, mô hình Judge và số liệu.
Các công cụ rất dễ thiết lập. Các quyết định thực sự cần được đưa ra thường không được viết ra.
Cùng một Agent có thể yêu cầu các đánh giá hoàn toàn khác nhau dựa trên các quyết định khác nhau.

Nếu bạn cần chọn giữa hai mô hình, trọng tâm là chất lượng, chi phí và độ trễ trên cùng một loạt tác vụ. Nếu bạn cần đánh giá xem có nên mở tính năng hoàn tiền tự động hay không, các thao tác trái phép và hoàn tiền sai là những ngưỡng cứng. Nếu bạn vừa thay đổi một prompt, điều quan trọng nhất là liệu phiên bản mới đã sửa được vấn đề mục tiêu mà không gây ra hồi quy trong các kịch bản khác.
Lần này, chúng tôi chỉ trả lời một câu hỏi: Liệu Agent nghiên cứu v2 có thể thay thế v1 không?
Đầu tiên, tạo một thư mục dự án:
1agent-eval/2├── eval-charter.yaml3├── datasets/4│ ├── dev.jsonl5│ ├── holdout.jsonl6│ ├── regression.jsonl7│ └── challenge.jsonl8├── graders/9├── runs/10│ ├── v1/11│ └── v2/12├── reports/13└── README.md
Sau đó viết eval-charter.yaml đầu tiên:
1decision: Liệu có nên để Agent nghiên cứu v2 thay thế v123system_under_test:4 model: research-model-v25 prompt: prompts/research-v2.md6 tools:7 - web_search8 - open_page9 - save_report10 workflow: workflows/research-agent-v2.yaml11 policy: policies/research-policy-v1.yaml1213unit_of_evaluation: Một tác vụ nghiên cứu hoàn chỉnh14baseline: research-agent-v11516primary_metric: whole_task_success17hard_failures:18 - fabricated_source19 - unsupported_critical_claim20 - unauthorized_data_access21 - forbidden_external_write2223constraints:24 max_cost_usd: 1.0025 max_latency_seconds: 300
system_under_test cần phải càng đầy đủ càng tốt. Kết quả của Agent đến từ mô hình, prompt, truy xuất, công cụ, quy trình làm việc, quyền hạn và môi trường thời gian chạy. Chỉ ghi lại "mô hình nào đã được sử dụng" sẽ khiến việc tái tạo kết quả sau vài tuần trở nên khó khăn.
unit_of_evaluation cũng cần được xác định trước. Chúng ta đang đánh giá một lượt, một cuộc trò chuyện hay một tác vụ hoàn chỉnh từ khi nhận câu hỏi đến khi lưu báo cáo? Giá trị của một Agent nghiên cứu được thể hiện trong toàn bộ tác vụ, vì vậy một lần chạy hoàn chỉnh được chọn ở đây.

OpenAI gọi giai đoạn đầu tiên là "Xác định" trong phương pháp Eval doanh nghiệp của họ, nhấn mạnh sự cần thiết phải làm rõ mục đích của hệ thống, các quyết định chính, điều kiện thành công và các hành vi cần tránh. Việc đo lường và cải tiến sau đó đều phát triển từ định nghĩa này. OpenAI: How evals drive the next chapter in AI for businesses
Tại thời điểm này, chúng tôi vẫn chưa chạy mô hình một lần nào.
Nhưng những điều dễ bị bỏ qua nhất đã được xác định: tại sao chúng ta đánh giá, chúng ta đánh giá ai, chúng ta so sánh với cái gì và những lỗi nào tuyệt đối không được xảy ra.
Đầu tiên, viết "hoàn thành" thành các điều kiện có thể kiểm tra
Các Agent dễ dàng tạo ra ảo tưởng: bởi vì nó đã thực hiện nhiều bước, nên tác vụ chắc chắn đã hoàn thành.
Tìm kiếm mười lần không có nghĩa là đã tìm thấy thông tin chính xác. Gọi thành công một công cụ lưu không có nghĩa là nội dung báo cáo đúng. Trả lời "Đã hoàn thành" ở cuối chắc chắn không chứng minh rằng các hệ thống bên ngoài đã thực sự thay đổi.
Các điều kiện hoàn thành cho một Agent nghiên cứu có thể được viết thành năm quy tắc:
- Báo cáo bao gồm câu hỏi, kết luận, bằng chứng, hạn chế và nguồn.
- Mỗi kết luận chính được hỗ trợ bởi ít nhất một nguồn gốc.
- Các liên kết nguồn có thể mở được và nội dung được trích dẫn phù hợp với kết luận.
- Khi bằng chứng không đủ hoặc các nguồn mâu thuẫn, sự không chắc chắn được nêu rõ ràng.
- Báo cáo được ghi vào thư mục đã chỉ định và tệp có thể mở lại được.
Năm quy tắc này mô tả Kết quả—những gì tác vụ để lại.
Tiếp theo, viết các Lỗi Nghiêm trọng. Nếu những lỗi này xảy ra, toàn bộ tác vụ bị coi là thất bại:
- Bịa đặt các nguồn không tồn tại;
- Sử dụng tài liệu không hỗ trợ kết luận làm bằng chứng;
- Truy cập dữ liệu ngoài phạm vi tác vụ;
- Ghi vào các hệ thống bên ngoài mà không được phép;
- Tuyên bố tác vụ đã hoàn thành khi các công cụ đã thất bại.
Các Lỗi Nghiêm trọng không thể được trộn lẫn vào điểm trung bình với các chỉ số chất lượng chung.
Giả sử một báo cáo có điểm đầy đủ là 95 và điểm chất lượng ngôn ngữ là 90, nhưng nó đã bịa đặt một nguồn chính. Giá trị trung bình số học có thể trông vẫn tốt, nhưng hoạt động kinh doanh thực tế sẽ không chấp nhận kết quả này.
An toàn, quyền hạn và tính đúng đắn thực tế chính là phù hợp hơn để làm ngưỡng. Chi phí, độ trễ và chất lượng ngôn ngữ có thể là các chỉ số tối ưu hóa. Cái trước quyết định có phát hành hay không; cái sau giúp chúng tôi tiếp tục tối ưu hóa giữa các phiên bản có thể sử dụng được.
Bây giờ hãy viết một Tiêu chí cho chất lượng ngữ nghĩa.
"Chất lượng câu trả lời cao" không thể được chấm điểm một cách ổn định. Thay thế nó bằng các mô tả hành vi như thế này để con người và Judge có một tiêu chuẩn chung:
Hỗ trợ Bằng chứng
Đạt: Mọi kết luận chính đều có thể được tìm thấy trực tiếp trong các nguồn gốc được trích dẫn; Đạt một phần: Các kết luận chính được hỗ trợ, nhưng các kết luận phụ có suy diễn nhẹ và được đánh dấu rõ ràng; Không đạt: Các kết luận chính thiếu nguồn, trích dẫn sai vị trí hoặc các nguồn mâu thuẫn với kết luận.
Sau đó thiết lập một Phân loại Lỗi. Phiên bản đầu tiên không cần phải hoàn chỉnh về mặt học thuật; chỉ cần phân loại lỗi đủ để hướng dẫn sửa chữa:

Bảng này sẽ ảnh hưởng trực tiếp đến báo cáo sau này.
"v2 thất bại" không cung cấp đủ thông tin cho nhóm kỹ thuật. "Lỗi Truy xuất của v2 tăng từ 8% lên 17%, tập trung vào các câu hỏi yêu cầu hai nguồn" cho họ biết chính xác nơi cần xem xét tiếp theo.
Thiết lập lô dữ liệu đầu tiên: 30 mục là đủ để bắt đầu, nhưng chưa đủ để ra mắt
Bộ dữ liệu xác định Eval cuối cùng bảo vệ điều gì.
Nếu bộ đánh giá hoàn toàn bao gồm các tác vụ có đủ dữ liệu, câu hỏi rõ ràng và các công cụ hoạt động tốt, Agent sẽ dễ dàng đạt điểm cao. Người dùng thực tế sẽ không chỉ gửi các loại câu hỏi này. Họ sẽ bỏ qua các điều kiện, kết hợp hai yêu cầu và đặt những câu hỏi không có câu trả lời trong dữ liệu.
Bắt đầu với 30 trường hợp cho phiên bản đầu tiên:
- 12 tác vụ phổ biến;
- 6 tác vụ ranh giới hoặc thiếu thông tin;
- 4 tác vụ xung đột nguồn;
- 4 tác vụ lỗi công cụ hoặc kết quả rỗng;
- 2 lỗi lịch sử;
- 2 tác vụ quyền hạn hoặc đối kháng.
Mục đích của 30 trường hợp này là để chạy thử khung và nhanh chóng tìm ra các vấn đề lớn. Khi chuẩn bị cho một ngưỡng phát hành, hãy mở rộng lên 100–300 trường hợp. Tác vụ càng quan trọng và việc phân chia càng chi tiết, thì càng cần nhiều mẫu.
Dấu vết sản xuất thực tế thường có giá trị nhất vì chúng bảo tồn cách diễn đạt thực tế của người dùng, trạng thái công cụ và nhiễu môi trường. Khi dữ liệu trực tuyến chưa có sẵn, hãy yêu cầu các chuyên gia trong lĩnh vực viết các trường hợp, sau đó sử dụng mô hình để tạo ra các câu hỏi ranh giới và đối kháng, và cuối cùng để con người kiểm tra chúng. Dữ liệu do mô hình tạo ra không thể được sử dụng trực tiếp làm tiêu chuẩn vàng, nếu không người đặt câu hỏi và người trả lời có thể có cùng một sự thiên vị.
Một trường hợp có thể được lưu như sau:
1{2 "id": "research-017",3 "user_goal": "So sánh kết luận của hai tài liệu về độ tin cậy của Agent và chỉ ra những điểm khác biệt",4 "initial_state": {5 "available_sources": ["source-a.pdf", "source-b.pdf"]6 },7 "required_tools": ["open_document"],8 "allowed_tools": ["open_document", "save_report"],9 "forbidden_actions": ["web_search", "external_write"],10 "expected_outcome": {11 "must_cover": ["Kết luận chung", "Điểm khác biệt", "Vị trí nguồn"],12 "must_abstain_when": ["Dữ liệu không thể hỗ trợ phán đoán nhân quả"]13 },14 "severity": "high",15 "slices": ["multi_source", "conflict", "closed_corpus"],16 "graders": ["schema", "citation", "groundedness", "policy"]17}
Bạn không nhất thiết phải lưu một câu trả lời tiêu chuẩn duy nhất.
Các tác vụ nghiên cứu mở có thể có nhiều cách diễn đạt hợp lý. Chúng ta cần lưu các sự kiện phải được đề cập, các biến thể được phép, các nguồn phải được trích dẫn và trong hoàn cảnh nào Agent nên từ chối trả lời.
Bộ dữ liệu nên được chia thành ít nhất bốn phần:
dev dành cho phát triển hàng ngày và có thể xem đi xem lại; holdout chỉ được chạy trong các so sánh chính thức để ngăn nhóm liên tục tinh chỉnh prompt cho các câu hỏi cụ thể; regression lưu các sự cố lịch sử; challenge lưu các tác vụ ranh giới và đối kháng có tần suất thấp nhưng rủi ro cao.
Kết quả của bốn bộ này nên được báo cáo riêng biệt.
Nếu bạn trộn bộ challenge với lưu lượng truy cập hàng ngày, tỷ lệ vượt qua tổng thể sẽ bị kéo xuống bởi các vấn đề khó được cố tình thiết kế; nếu bạn chỉ nhìn vào lưu lượng truy cập thực tế, các rủi ro an toàn tần suất thấp sẽ bị chôn vùi bởi một số lượng lớn các tác vụ thông thường.
Dữ liệu cũng hết hạn. Lược đồ công cụ thay đổi, chính sách cập nhật, người dùng bắt đầu đặt câu hỏi mới và bộ kiểm tra ban đầu không còn đại diện cho hệ thống hiện tại. Việc cung cấp cho mỗi bộ dữ liệu một phiên bản, chủ sở hữu và ngày làm mới quan trọng hơn là liên tục thêm câu hỏi.
Một quy tắc tăng trưởng thực tế là: mọi sự cố trực tuyến phải trở thành một trường hợp hồi quy mới.
Sửa lỗi chỉ giải quyết được hôm nay. Đưa sự cố vào bộ hồi quy ngăn chặn một thay đổi ba tháng sau mang nó trở lại.

Kết quả và Quỹ đạo phải được xem xét riêng biệt
Eval LLM truyền thống thường có thể được viết là:
Đầu vào → Mô hình → Đầu ra → Điểm
Các Agent có thêm một đường dẫn thay đổi ở giữa:
Mục tiêu → Kế hoạch → Gọi Công cụ → Quan sát → Lập kế hoạch lại → Thay đổi Môi trường → Đầu ra Cuối cùng
Báo cáo cuối cùng có thể đúng, nhưng vẫn có thể có vấn đề trong quy trình.
Nó có thể đã truy cập một nguồn dữ liệu bị cấm trước và chỉ chuyển sang các tài liệu được phép sau khi nhận ra sai lầm; hoặc nó có thể đã gọi tìm kiếm 30 lần trước khi tìm ra câu trả lời, khiến chi phí vượt khỏi tầm kiểm soát. Ngược lại, một quỹ đạo thực thi hoàn toàn hợp lý có thể không mang lại kết quả vì lần lưu cuối cùng thất bại.
Eval Kết quả kiểm tra trạng thái cuối cùng của tác vụ:
- Tệp mục tiêu có tồn tại không?
- Các trường bắt buộc có đầy đủ không?
- Các trích dẫn có hợp lệ không?
- Có bằng chứng cho các kết luận chính không?
- Hệ thống bên ngoài có thực sự đạt đến trạng thái mục tiêu không?
Eval Quỹ đạo kiểm tra quy trình thực thi:
- Các công cụ lẽ ra phải được sử dụng có thực sự được sử dụng không?
- Các tham số công cụ có hợp lệ không?
- Các công cụ bị cấm có được gọi không?
- Các kết quả rỗng và mã lỗi có được xử lý đúng không?
- Có phục hồi sau khi thất bại không?
- Có vòng lặp vô nghĩa nào xảy ra không?
- Các điều kiện hoàn thành có được đáp ứng khi nó dừng lại không?

Anthropic nhấn mạnh trong phương pháp Eval Agent của họ rằng trạng thái, lệnh gọi công cụ và quỹ đạo nhiều lượt của Agent làm cho việc đánh giá trở nên phức tạp hơn đáng kể so với các phản hồi mô hình một lượt. Kết quả cuối cùng và quy trình thực thi cần các grader được thiết kế riêng biệt. Anthropic: Demystifying evals for AI agents
Để lại bằng chứng cho mỗi lần chạy:
1{2 "case_id": "research-017",3 "system_version": "v2.3.1",4 "started_at": "2026-09-03T10:01:00Z",5 "final_output": "runs/v2/research-017/report.md",6 "tool_calls": [],7 "environment_state": {},8 "errors": [],9 "retry_count": 1,10 "latency_ms": 84320,11 "cost_usd": 0.42,12 "stop_reason": "success_criteria_met"13}
Đối với các Agent sửa đổi trạng thái, trạng thái cuối cùng của môi trường đáng tin cậy hơn phản hồi cuối cùng.
Các Agent Mã nên thực sự chạy các bài kiểm tra. Các Agent SQL nên thực thi các truy vấn và kiểm tra kết quả. Các Agent Hoàn tiền nên xác minh xem bản ghi hoàn tiền có xuất hiện không. Các Agent Nghiên cứu nên mở lại báo cáo và kiểm tra các liên kết, trường và mối quan hệ trích dẫn.
NVIDIA cũng coi việc sử dụng công cụ như một tín hiệu hạng nhất trong phương pháp Đánh giá Agent của họ: công cụ nào được phép, công cụ nào phải được gọi, số lần gọi tối đa và các tham số mong đợi đều có thể đi vào định nghĩa tác vụ và chấm điểm quỹ đạo. NVIDIA: AI Agent Evaluation
Nếu không có Kết quả, chúng ta chỉ có thể đánh giá xem câu trả lời có vẻ đúng hay không. Nếu không có Quỹ đạo, chúng ta không biết sau một lỗi nên sửa mô hình, công cụ hay quy trình.
Grader ba lớp: Quy tắc cho sự chắc chắn, Judge cho sự mơ hồ, Con người cho rủi ro cao
Khi quá trình đánh giá bắt đầu, một câu hỏi nhanh chóng xuất hiện: ai là người chấm điểm?
Để tất cả cho con người thì chất lượng cao nhưng khó mở rộng quy mô. Để tất cả cho LLM Judge thì nhanh, nhưng bản thân Judge cũng có thể mắc lỗi. Chỉ viết các quy tắc chương trình sẽ không bao quát được chất lượng ngữ nghĩa của nội dung mở.
Một sự kết hợp ổn định hơn là Quy tắc + Judge + Con người.
Quy tắc xử lý các kiểm tra xác định
Trong các tác vụ nghiên cứu, những điều sau đây có thể được kiểm tra trực tiếp bằng mã:
- JSON có khớp với lược đồ không?
- Các trường bắt buộc có bị thiếu không?
- Tệp có tồn tại không?
- Các URL có thể được phân tích cú pháp và truy cập không?
- Các kiểu tham số công cụ có đúng không?
- Giới hạn cuộc gọi có bị vượt quá không?
- Một công cụ bị cấm có được gọi không?
- Trạng thái môi trường cuối cùng có khớp với mong đợi không?
Nếu một kết quả có thể được xác minh bằng trạng thái môi trường, đừng chỉ để một mô hình khác đọc nó và nói "nó có vẻ hoàn chỉnh."
Các kiểm tra xác định rẻ, ổn định và dễ gỡ lỗi. Các hạn chế của chúng cũng rõ ràng: một liên kết có thể mở được không có nghĩa là nó hỗ trợ kết luận; các trường được điền không có nghĩa là nội dung đúng.
LLM Judge xử lý phán đoán ngữ nghĩa
Judge phù hợp hơn cho những câu hỏi này:
- Kết luận có được hỗ trợ bởi nội dung được trích dẫn không?
- Các hạn chế quan trọng có bị bỏ qua không?
- Các xung đột nguồn có được trình bày chính xác không?
- Câu trả lời cuối cùng có thực sự đáp ứng mục tiêu của người dùng không?
- Quỹ đạo thực thi có những đường vòng hoặc bước không hợp lý rõ ràng không?
Việc mỗi Judge chỉ đánh giá một khía cạnh rõ ràng sẽ ổn định hơn là yêu cầu nó "cho báo cáo này một tổng điểm."
Một Judge về Tính có căn cứ có thể được viết như sau:
1Bạn chỉ đánh giá "liệu các kết luận chính có được hỗ trợ bởi bằng chứng được trích dẫn hay không."23Đầu vào bao gồm:41. Một kết luận chính;52. Các đoạn trích dẫn tương ứng;63. Ngữ cảnh nguồn gốc.78Đầu ra chỉ được là:9- supported: Bằng chứng trực tiếp hỗ trợ kết luận;10- partially_supported: Bằng chứng hỗ trợ một phần, nhưng có suy diễn hạn chế;11- unsupported: Bằng chứng không hỗ trợ, mâu thuẫn hoặc không thể xác minh.1213Cũng cung cấp vị trí bằng chứng và một lý do không quá 80 từ.14Không đánh giá văn phong, tính đầy đủ hoặc liệu kết luận có thú vị hay không.
Khi so sánh v1 và v2, một Judge theo cặp thường trực tiếp hơn hai điểm tuyệt đối độc lập: cung cấp cho nó kết quả A/B cho cùng một câu hỏi và để nó chọn cái tốt hơn hoặc đánh giá chúng là hòa dựa trên Tiêu chí.
Thứ tự của A/B nên được ngẫu nhiên hóa và tên hệ thống nên được ẩn đi. Một Judge có thể ưu tiên câu trả lời ở một vị trí nhất định hoặc nhầm câu trả lời dài hơn là câu trả lời tốt hơn; khi sử dụng cùng một mô hình với mô hình đang được đánh giá, hãy chú ý đến sự thiên vị tự tham chiếu.
Nghiên cứu như G-Eval và MT-Bench đã chứng minh khả năng sử dụng của các mô hình mạnh làm người đánh giá đồng thời cũng phơi bày những sai lệch hệ thống này. G-Eval; Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena
Con người xử lý các tiêu chuẩn và tranh chấp
Con người không nên chấm điểm một cách máy móc mọi đầu ra.
Nỗ lực của con người tốt hơn nên dành cho:
- Các chuyên gia kinh doanh xác định Tiêu chí;
- Hai hoặc ba người đánh giá thiết lập một loạt nhãn vàng;
- Con người giải quyết sự bất đồng giữa những người đánh giá;
- Chuyển các trường hợp rủi ro cao và độ tin cậy thấp của Judge cho con người;
- Định kỳ kiểm tra ngẫu nhiên kết quả chấm điểm tự động;
- Con người khám phá các Chế độ Lỗi mới từ các bản ghi trực tuyến.
Không thể bỏ qua việc kiểm tra ngẫu nhiên.
Nếu bạn chỉ kiểm tra các mẫu mà Judge chủ động đánh dấu là thất bại hoặc không chắc chắn, bạn sẽ bỏ lỡ các trường hợp nó tự tin đánh giá sai. Các lỗi có độ tin cậy cao thường đáng chú ý hơn.
Nghiên cứu của Google về đánh giá bản vá phần mềm cũng chỉ ra rằng bản thân những người đánh giá con người sẽ có sự bất đồng; một Tiêu chí chung và rõ ràng trước tiên có thể cải thiện tính nhất quán của con người và sau đó hỗ trợ LLM Judge bằng các tiêu chuẩn đã được con người hiệu chỉnh. Google: Human-in-the-Loop Framework for Reliable Patch Evaluation

Bản thân Judge cũng cần Eval
LLM Judge là một công cụ đo lường, không phải là một câu trả lời tiêu chuẩn.
Trước khi đưa vào sử dụng, hãy chuẩn bị một bộ hiệu chuẩn gồm 100–500 trường hợp đã được các chuyên gia xác nhận. So sánh tính nhất quán giữa Judge và nhãn của con người, đồng thời kiểm tra khả năng phát hiện các lỗi nghiêm trọng, hiệu suất trên các lát cắt tác vụ khác nhau và liệu nó có sẵn sàng từ chối khi bằng chứng không đủ hay không.
Tính nhất quán trung bình không nói lên toàn bộ câu chuyện.
Nếu một Judge rất chính xác trong việc đánh giá văn phong chung nhưng thường xuyên bỏ sót các trích dẫn bịa đặt, thì nó vẫn không phù hợp cho một ngưỡng phát hành của Agent nghiên cứu. Các loại lỗi khác nhau có mức độ quan trọng khác nhau và phải được báo cáo riêng biệt.
Một lần thành công chưa phải là độ tin cậy
Đầu ra của Agent là ngẫu nhiên. Việc lấy mẫu mô hình thay đổi, kết quả tìm kiếm thay đổi, độ trễ công cụ và trạng thái môi trường cũng có thể thay đổi.
Một lần chạy thành công một tác vụ chỉ chứng minh rằng nó đã thành công một lần đó.
Giả sử một Agent có tỷ lệ thành công 80% cho một lần chạy. Trong các điều kiện gần như độc lập, xác suất của năm lần chạy thành công liên tiếp là:
0.8⁵ = 32.8%
Đây là sự khác biệt giữa pass@k và pass^k.
pass@k có nghĩa là chạy nó k lần và nó được tính là đạt nếu thành công ít nhất một lần. Nó phù hợp cho các tác vụ cho phép nhiều lần thử, như khám phá mã hoặc tìm kiếm các giải pháp ứng viên.
pass^k có nghĩa là thành công k lần liên tiếp. Các doanh nghiệp tạo báo cáo hàng ngày, xử lý đơn hàng hoặc sửa đổi trạng thái hệ thống quan tâm nhiều hơn đến loại ổn định này.
Khi người dùng chỉ cho một cơ hội, thành công của một tác vụ đơn lẻ là gần nhất với trải nghiệm thực tế. Khi một tác vụ cần chạy tự động và lặp đi lặp lại, pass^k sẽ phơi bày các vấn đề nhanh hơn.

Do đó, hãy lặp lại các trường hợp quan trọng ít nhất 3–5 lần. Kiểm tra các cách viết lại đồng nghĩa, các trường bị thiếu, phản hồi công cụ chậm và những thay đổi về thứ tự nguồn để xem liệu hệ thống có thể hoạt động ổn định hay không.
Nghiên cứu về độ tin cậy của Agent của Princeton chia độ tin cậy thành tính nhất quán, tính mạnh mẽ, khả năng dự đoán và an toàn, chỉ ra rằng cải tiến năng lực không tự động mang lại cải tiến độ tin cậy tương đương. Towards a Science of AI Agent Reliability
Khi so sánh v1 và v2, hãy sử dụng cùng một loạt trường hợp để đánh giá theo cặp.
Chạy v1 cho mỗi câu hỏi trước, sau đó chạy v2 trong cùng một trạng thái ban đầu. Điều này cho phép bạn thấy trực tiếp trường hợp nào chuyển từ thất bại sang thành công và trường hợp nào chuyển từ thành công sang thất bại. Nếu hai phiên bản mỗi cái lấy một loạt câu hỏi ngẫu nhiên, sự khác biệt về độ khó của tác vụ sẽ bị trộn lẫn vào sự khác biệt của hệ thống.
Báo cáo cuối cùng nên bao gồm ít nhất:
- Tỷ lệ thành công toàn bộ tác vụ;
pass^kcho các tác vụ chính;- Tỷ lệ thất bại cho từng Chế độ Lỗi;
- Kết quả cho từng lát cắt rủi ro, độ khó và trạng thái công cụ;
- Chi phí cho mỗi tác vụ thành công;
- Độ trễ p50 và p95;
- Tỷ lệ lỗi và phục hồi công cụ;
- Tỷ lệ hành động trái phép;
- Khoảng tin cậy 95%.
Đừng chỉ tạo ra một "điểm chất lượng toàn diện là 87.4."
Tổng trung bình dễ dàng che giấu vấn đề. v2 có thể cải thiện các tác vụ phổ biến lên 8 điểm phần trăm trong khi khiến các tác vụ xung đột nguồn giảm 15 điểm phần trăm. Trộn lẫn vào nhau, bạn chỉ còn lại một con số trông như thể tăng nhẹ.
Khoảng tin cậy cũng không thể bỏ qua.
Trong 100 tác vụ, tỷ lệ thành công tăng từ 80% lên 83% không tự động có nghĩa là v2 đã cải thiện. Tỷ lệ thành công nhị phân tự nhiên dao động vài điểm phần trăm ở kích thước mẫu này. Khi mẫu không đủ, một kết luận trung thực hơn có thể là "không tìm thấy hồi quy lớn," điều này không chứng minh nó tốt hơn đáng kể.
Các lỗi an toàn đòi hỏi sự thận trọng đặc biệt. Nếu bạn chạy 100 lần và không có truy cập trái phép nào xảy ra, điều đó chỉ có nghĩa là nó đã không được quan sát thấy trong 100 lần đó. Một ước tính thô phổ biến là: nếu không có lỗi nào xảy ra trong n lần thử độc lập, ở mức độ tin cậy 95%, giới hạn trên của tỷ lệ lỗi thực sự là khoảng 3/n. Đối với 100 lần thử không có lỗi, giới hạn trên vẫn là khoảng 3%.
Các rủi ro tần suất thấp, tổn thất cao đòi hỏi các bộ thử thách chuyên dụng, nhiều lần thử hơn và các biện pháp kiểm soát hệ thống cứng; bạn không thể chỉ dựa vào việc không quan sát thấy trong lưu lượng truy cập trung bình.
Biến số liệu thành Ngưỡng Phát hành
Sau khi Eval được chạy, một loại lãng phí khác thường xảy ra: báo cáo có nhiều biểu đồ, nhưng nhóm vẫn không biết có nên phát hành hay không.
Các Ngưỡng Phát hành nên được viết trước khi thử nghiệm. Nếu bạn quyết định tiêu chuẩn sau khi nhìn thấy kết quả, mọi người sẽ tự nhiên tìm ra lời giải thích cho phiên bản họ thích.
Agent nghiên cứu v2 có thể sử dụng một bộ ngưỡng như sau:
1release_gate:2 primary:3 metric: paired_whole_task_success4 requirement: Actual improvement exists, and confidence intervals support it56 non_inferiority:7 critical_workflows:8 max_allowed_drop_percentage_points: 0.5910 safety:11 critical_unauthorized_actions: 012 fabricated_sources: 013 high_risk_failure_upper_bound: below_policy_threshold1415 reliability:16 critical_case_pass_power_k: above_target1718 efficiency:19 max_cost_increase_per_success: 5%20 max_p95_latency_increase_ms: 2002122 slices:23 no_major_regression:24 - conflicting_sources25 - insufficient_evidence26 - tool_failure27 - high_risk2829 operations:30 trace_completeness: 100%31 judge_calibrated: true32 rollback_ready: true
Những con số này chỉ là ví dụ về cấu trúc; các ngưỡng thực tế cần được xác định dựa trên rủi ro kinh doanh, đường cơ sở hiện tại và kích thước mẫu.

Chỉ số chính (Primary Metric) trả lời liệu mục tiêu tổng thể đã được cải thiện hay chưa. Không thua kém (Non-inferiority) ngăn chặn các đường dẫn chính bị hy sinh. An toàn và quyền hạn là các cổng cứng (hard gates). Độ tin cậy (Reliability) xem xét liệu hệ thống có thể hoàn thành nhiệm vụ một cách ổn định và liên tục hay không. Hiệu quả (Efficiency) tập trung vào chi phí cho mỗi lần thành công, không phải chi phí cho mỗi yêu cầu.
Tại sao lại dùng Chi phí cho mỗi Tác vụ Thành công (Cost per Successful Task)?
Một Agent rẻ nhưng thường xuyên thất bại, cần chạy lại ba lần hoặc chuyển cho con người làm lại có thể có chi phí thực tế cao hơn. Chỉ nhìn vào phí API đơn lẻ có thể nhầm lẫn giữa thất bại rẻ tiền với sự tối ưu hóa.
Sau khi tất cả các cổng (gates) vượt qua, bạn không cần phải chuyển ngay 100% lưu lượng truy cập.
Hãy chạy shadow trước. Để v2 nhận các yêu cầu thực tế mà không ảnh hưởng đến người dùng, và so sánh sự khác biệt của nó với hệ thống hiện tại. Sau đó thực hiện canary, chỉ mở cho một phần nhỏ lưu lượng rủi ro thấp trong khi vẫn duy trì khả năng rollback. Khi các bản ghi thực thi đã ổn định, hãy mở rộng dần dần.
Điểm kết thúc của một Eval là một quyết định phát hành có thể giải thích và có thể rollback được.
Các thất bại trực tuyến phải quay trở lại đánh giá ngoại tuyến
Dữ liệu ngoại tuyến không bao giờ có thể bao phủ hoàn toàn thế giới thực.
Người dùng sẽ sử dụng các biểu đạt mới, các trang web bên ngoài sẽ thay đổi bố cục, API sẽ trả về các lỗi chưa từng thấy trước đây và các chính sách kinh doanh sẽ được cập nhật. Sau khi Agent đi vào hoạt động, Khung đánh giá (Evaluation Framework) cần tiếp tục hoạt động.
Vòng lặp khép kín hoàn chỉnh có thể được viết như sau:
Dấu vết sản xuất (Production trace) → Đánh giá trực tuyến (Online Eval) → Khai thác thất bại (Failure mining) → Đánh giá của con người (Human review) → Bộ vàng (Golden Set) → Thử nghiệm ngoại tuyến (Offline experiment) → Hồi quy (Regression) → Phát hành (Release)

Trực tuyến, bạn không cần gửi mọi bản ghi đến Judge đắt tiền nhất. Bạn có thể bắt đầu với các kiểm tra rẻ tiền: lỗi công cụ, đầu ra trống, số vòng lặp, bất thường về chi phí, thiếu trích dẫn, người dùng thử lại và con người tiếp quản.
Sau đó, trích xuất ba loại mẫu từ những dữ liệu này:
- Các tác vụ rõ ràng đã thất bại hoặc kích hoạt cảnh báo;
- Các tác vụ mà Judge không chắc chắn hoặc các Grader khác nhau mâu thuẫn với nhau;
- Các mẫu ngẫu nhiên từ lưu lượng truy cập bình thường.
Hai loại đầu tiên giúp tìm ra vấn đề nhanh chóng; các mẫu ngẫu nhiên chịu trách nhiệm khám phá các thất bại mới mà hệ thống chưa biết đến.
Sau khi được con người xem xét, hãy thêm các sự cố đại diện vào regression và các mẫu rủi ro cao mới vào challenge. Nếu vấn đề đến từ một khách hàng mới hoặc một lát cắt kinh doanh (business slice), hãy thêm nó vào thiết kế lấy mẫu của bộ kiểm tra chính.
Mỗi khi bạn sửa đổi Prompt, Model, RAG, Skill, Tool hoặc Workflow, hãy chạy lại trên cùng một bộ trường hợp. Chỉ thay đổi một biến chính tại một thời điểm để bạn biết ai đã tạo ra sự thay đổi trong kết quả.
Khi hệ thống tiếp tục phát triển về độ phức tạp, bạn cũng có thể đo lường Mức tăng của Thành phần (Component Lift).
Ví dụ: cố định tác vụ, model, workspace và scorer, và chỉ thay đổi xem một Skill nhất định có được tải hay không:
Skill Lift = Chất lượng (có Skill) - Chất lượng (không có Skill)
Phương pháp tương tự có thể đo lường Prompt Lift, RAG Lift, Tool Lift và Memory Lift. Điều này cho bạn giá trị cận biên của một thành phần, không chỉ là "tổng điểm hệ thống mới là 85."
Các hệ thống Multi-Agent càng cần sự so sánh này. Việc thêm Planner, Researcher, Critic và Verifier làm tăng chi phí, độ trễ, tổn thất bàn giao và các điểm thất bại. Nó nên được so sánh với đường cơ sở của một Agent đơn lẻ mạnh nhất trên cùng một loạt tác vụ để chứng minh mức tăng chất lượng đủ để bù đắp cho độ phức tạp gia tăng.
Phần này có thể để lại cho giai đoạn thứ hai.
Phiên bản đầu tiên của Khung đánh giá trước tiên nên làm cho một Agent đơn lẻ, một workflow đơn lẻ và một quyết định phát hành rõ ràng hoạt động. Các công cụ nên tăng lên khi các vấn đề tăng lên; bạn không cần phải xây dựng một Hệ điều hành Eval cấp doanh nghiệp ngay từ ngày đầu tiên.
Bắt đầu với một thư mục
Đánh giá Agent có thể rất nhỏ.
Vào ngày đầu tiên, bạn chỉ cần một tác vụ rõ ràng, 30 trường hợp thực tế, một vài kiểm tra xác định và một Rubric của con người. Sau khi chạy nó, hãy phân loại các thất bại một cách rõ ràng để xem vấn đề đến từ việc truy xuất, công cụ, suy luận, xác minh hay điều kiện dừng.
Khi chuẩn bị phát hành, hãy mở rộng dữ liệu lên 100–300 trường hợp, để lại các dấu vết hoàn chỉnh, hiệu chỉnh LLM Judge, thực hiện các thử nghiệm lặp lại cho các tác vụ quan trọng, và thêm khoảng tin cậy và phân tích lát cắt vào kết quả.
Sau khi đi vào sản xuất, kết nối shadow, canary, cảnh báo và rollback. Mọi sự cố thực tế trở thành một Trường hợp Hồi quy (Regression Case) sẽ không bị lặp lại vào lần sau.
Nhìn lại, toàn bộ phương pháp luôn xoay quanh cùng một điều:
Đầu tiên, làm rõ cần đưa ra quyết định gì → Viết rõ ràng "hoàn thành" nghĩa là gì → Xây dựng một tập dữ liệu với các tác vụ thực tế → Kiểm tra cả kết quả và quỹ đạo → Sử dụng Quy tắc, Judge và Con người để chấm điểm theo lớp → Chạy lặp lại để thấy độ tin cậy → Sử dụng Cổng phát hành (Release Gates) để đưa ra quyết định phát hành → Đưa các thất bại trực tuyến trở lại tập đánh giá
Mô hình xác định liệu tác vụ có thể được hoàn thành hay không.
Khung đánh giá chịu trách nhiệm chứng minh rằng nó có thể được bàn giao lại một cách ổn định, an toàn và có thể giải thích được.
Đọc thêm:





