# Evaluating AI Agents: khoá ngắn dạy chấm riêng router, skill và cả luồng agent

> Tỉ lệ lỗi chung không cho biết agent hỏng ở đâu; khoá của DeepLearning.AI và Arize dạy cách chấm riêng từng thành phần để tìm ra chỗ hỏng.

Bản gốc: https://fdetimes.net/vi/sach-khoa-hoc/khoa-hoc-evaluating-ai-agents-deeplearning-ai-arize/

Một agent chăm sóc khách hàng trả lời sai 30 trên 100 câu hỏi. Chỉ nhìn con số đó thì bạn chưa biết phải sửa gì: có thể router chọn nhầm skill, cũng có thể router chọn đúng nhưng skill làm hỏng việc. *Evaluating AI Agents*, khoá ngắn của DeepLearning.AI làm cùng Arize AI, dạy cách tìm ra lỗi nằm ở chỗ nào.

Khoá được DeepLearning.AI giới thiệu trên trang cộng đồng ngày 19/2/2025. Người dạy là John Gilhuly, Head of Developer Relations, và Aman Khan, Director of Product, cả hai đều làm ở Arize AI.

Với một FDE, giá trị của khoá không nằm ở công cụ. Nó nằm ở cách suy nghĩ khi agent hỏng ngay tại chỗ khách hàng, trong lúc mọi người đang chờ bạn giải thích nguyên nhân.

## Khoá dạy gì, và dạy cho ai?

Ý tưởng xuyên suốt của khoá là chấm điểm agent ở hai tầng: từng thành phần riêng lẻ, và cả luồng từ đầu đến cuối. Với mỗi thành phần, người học chọn evaluator, bộ ví dụ kiểm thử và metric phù hợp, sau đó cải tiến dần qua nhiều vòng, cả lúc đang phát triển lẫn khi agent đã chạy production.

Evaluator có hai dạng chính: viết bằng code, hoặc dùng LLM-as-a-Judge. Khoá còn dạy hai kỹ năng đi kèm: gắn observability (tracing) để thấy từng bước agent đã đi và debug được nó, và tổ chức việc đánh giá thành các experiment để cải thiện cả chất lượng đầu ra lẫn trajectory, tức chuỗi bước agent đi qua để ra được câu trả lời.

Yêu cầu đầu vào thấp: người học chỉ cần biết Python cơ bản, có kinh nghiệm viết prompt cho LLM thì tốt nhưng không bắt buộc. Repo GitHub đi kèm do ksm26 duy trì (không phải trang chính thức của DeepLearning.AI) gọi đây là khoá thực hành, trong đó người học kiểm thử các thành phần con như skill và quyết định của router bằng ví dụ thật.

## Ý thứ nhất: tách lỗi định tuyến khỏi lỗi thực thi

Trở lại agent trả lời sai 30 trên 100 câu. Đây là ví dụ giả định để thấy phương pháp hoạt động thế nào. Giả sử agent có ba skill: tra cứu đơn hàng, xử lý hoàn tiền và giải đáp chính sách.

Tài liệu Arize AX mô tả việc chấm router bắt đầu từ một câu hỏi đơn giản: với input này, router có chọn đúng skill không? Giả sử bạn chấm thấy router chọn đúng 85 câu. Vậy 15 câu đã sai ngay từ bước định tuyến.

Khi chấm skill, tài liệu Arize khuyên mặc định rằng skill đã được gọi đúng, nên bạn chỉ chấm skill trên 85 câu này. Nếu 70 câu ra kết quả tốt thì 15 câu còn lại là lỗi thực thi. Mức 30% lỗi giờ được tách thành hai nhóm 15 câu, và mỗi nhóm cần một cách sửa khác hẳn nhau.

Với lỗi định tuyến, chỗ nên thử trước là mô tả skill cho rõ hơn hoặc thêm ví dụ cho router. Lỗi thực thi thì nằm trong chính skill: prompt, công cụ, hoặc dữ liệu skill lấy về. Nếu chỉ nhìn tỉ lệ đầu-cuối, bạn dễ sửa prompt router cả tuần trong khi phần lỗi còn lại vẫn nằm nguyên trong skill.

**Điểm mấu chốt:** Một tỉ lệ lỗi chung chỉ cho biết agent đang hỏng, không cho biết hỏng ở bước nào.

## Ý thứ hai: chọn evaluator theo việc cần chấm

Repo đi kèm liệt kê ba loại evaluator: metric viết bằng code, LLM-as-a-judge, và chú thích của con người. Ví dụ trên cho thấy mỗi loại hợp với một việc. Chấm router chỉ cần so tên skill router đã chọn với tên skill đúng, nên một hàm so khớp bằng code là đủ: rẻ, nhanh và kết quả không đổi giữa các lần chạy.

Chấm câu trả lời về chính sách hoàn tiền thì khó hơn nhiều, vì không có đáp án duy nhất để so khớp. Đây là chỗ dùng LLM-as-a-Judge. Nhưng một judge chưa được kiểm tra thì chưa đáng tin, nên chú thích của con người là lớp thứ ba.

Bạn nhờ chuyên gia phía khách hàng chấm tay vài chục câu, rồi so với điểm của judge. Ở các dự án FDE, bước này còn có thêm một lợi ích: khách hàng tham gia định nghĩa thế nào là "đúng", nên họ dễ tin vào bộ đánh giá hơn.

## Ý thứ ba: tracing đi trước, experiment đi sau

Bạn không chấm được router nếu không thấy router đã chọn gì. Vì vậy observability là điều kiện để làm mọi thứ ở trên, không phải phần phụ.

Khi đã có trace cho từng bước, mỗi lần sửa prompt hay đổi model, hãy chạy lại trên đúng bộ ví dụ cũ như một experiment. Nhờ vậy bạn đặt được đầu ra và trajectory của bản mới cạnh bản cũ, thay vì đoán bằng mắt.

Việc nên làm đầu tiên khi đến chỗ khách hàng là bật tracing trước khi sửa bất cứ thứ gì, vì không có trace thì mọi kết luận về nguyên nhân lỗi chỉ là phỏng đoán.

Trước khi học, hãy tự kiểm tra xem mình có đang mắc lỗi nào dưới đây không. Đây là những lỗi suy ra trực tiếp từ phương pháp của khoá:

| Lỗi thường gặp | Nên làm thay vào đó |
|---|---|
| Chỉ theo dõi tỉ lệ lỗi đầu-cuối | Chấm riêng router và từng skill, rồi vẫn đo cả luồng |
| Chấm skill trên cả những câu router đã chọn sai | Chỉ chấm skill trên các câu router chọn đúng |
| Dùng LLM-as-a-Judge để so tên skill | Viết một hàm so khớp bằng code |
| Tin điểm của judge mà chưa đối chiếu | So với vài chục câu do con người chấm tay |
| Sửa prompt rồi thử vài câu bằng mắt | Chạy experiment trên cùng bộ ví dụ, so trước và sau |

Bài tập nhỏ: lấy ví dụ 100 câu ở trên, giả sử bạn sửa mô tả skill và router chọn đúng 95 câu, trong đó skill làm tốt 80 câu. Hãy tính lại lỗi định tuyến và lỗi thực thi. Đáp án là 5 và 15: tỉ lệ lỗi chung giảm, nhưng lỗi trong skill vẫn chưa hề được đụng tới.

## Nên học lúc nào, và đưa vào CV thế nào?

Khoá hợp nhất với kỹ sư đã tự dựng được một agent đơn giản và đang thấy nó hỏng mà không rõ hỏng ở đâu. Nếu bạn chưa từng viết agent có router, hãy làm một bản nhỏ trước rồi mới học, vì các bài thực hành sẽ có ý nghĩa hơn nhiều khi bạn đã có lỗi thật của chính mình để soi vào.

Học xong, nên đọc thêm phần đánh giá agent trong tài liệu Arize AX để nắm chắc quy tắc tách router khỏi skill.

Về nghề nghiệp, khi đọc mô tả công việc FDE, hãy để ý những cụm như "evals", "observability" hay "production monitoring". Đó là dấu hiệu nhóm tuyển dụng cần đúng kỹ năng này. Trong CV, đừng chỉ ghi "đã học khoá evaluation". Hãy viết rằng bạn đã tách tỉ lệ lỗi của một agent thành lỗi định tuyến và lỗi thực thi, kèm con số trước và sau khi sửa.

Khách hàng không cần nghe bạn nói agent tốt đến mức nào. Họ cần biết khi agent sai thì sai ở đâu và bao giờ sửa xong. Khoá học này giúp bạn trả lời câu hỏi thứ nhất bằng số liệu.

**Thử ngay tuần này:**

- Lấy 20 câu hỏi thật của người dùng, tự gán skill đúng cho từng câu, rồi viết một evaluator bằng code để đo tỉ lệ router chọn đúng skill.
- Với những câu router đã chọn đúng, chấm riêng đầu ra của skill bằng LLM-as-a-Judge. Sau đó tự chú thích tay khoảng 10 câu để xem judge có chấm sát với bạn không.
- Gắn tracing vào một agent bạn đang làm, rồi lần theo trajectory của một câu trả lời sai từ đầu đến cuối.

## Nguồn

- [Evaluating AI Agents - DeepLearning.AI](https://www.deeplearning.ai/short-courses/evaluating-ai-agents/)

- [✨ New course! Enroll in Evaluating AI Agents](https://community.deeplearning.ai/t/new-course-enroll-in-evaluating-ai-agents/773080)

- [Evaluating AI Agents](https://github.com/ksm26/Evaluating-AI-Agents)

- [Evaluating Agents - Arize AX Docs](https://arize.com/docs/ax/concepts/evaluators/evaluating-agents)
