𝗦𝗰𝗼𝗿𝗶𝗻𝗴 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀: 𝗗𝗲𝘁𝗲𝗿𝗺𝗶𝗻𝗶𝘀𝘁𝗶𝗰 𝗠𝗲𝘁𝗿𝗶𝗰𝘀 + 𝗮𝗻 𝗟𝗟𝗠 𝗝𝘂𝗱𝗴𝗲
You run many small AI agents. You have agents for backend, frontend, mobile, and devops. Each agent has one job.
When you have many agents, you face a problem. You do not know if they are good. You do not know if a prompt edit makes them better or worse. Saying "it looks fine" does not work at scale.
I built a framework to solve this. It uses numbers to measure performance and improves prompts automatically.
The Strategy
Measure what you can measure with math first. Use an LLM judge only when you must. Deterministic metrics are fast and free. An LLM judge is slow and costs money.
How the system works:
• The harness runs each agent as a separate process. • It feeds a task to the agent. • It captures the output. • It scores the result against expected data.
The agent only needs to read from stdin and write to stdout. It can be Python or a shell script. The harness does not care.
Five core metrics to track:
- Accuracy: Does the output match the goal?
- Fuzzy score: How similar is the text to the target?
- Timeout rate: How often does the agent fail to finish?
- Safety violations: Does the output match unsafe patterns?
- Reproducibility variance: Does the agent give the same answer every time?
If an agent is correct but inconsistent, it is a bug.
The LLM Judge
Some things are hard to measure with math. You need to know if an agent stayed in its role or followed constraints.
For these cases, an LLM judge reviews the work. It receives a rubric and the agent output. It returns a structured verdict. I validate this verdict against a JSON schema so it does not break the report.
The judge does more than just grade. It must suggest fixes. A critique like "this is weak" is useless. A critique like "add a JSON block to the prompt" is actionable.
The Improvement Loop
Failures go into a file. This file feeds an automated loop. The system looks at the weakest part of a prompt and tries to fix it. It keeps a pool of good candidates. It writes the best versions back to the code.
A single score is a snapshot. Use history to track trends. This tells you if you are getting better over time.
Build your foundation on deterministic metrics. Use the judge as a scalpel, not a hammer.
Đánh giá AI Agent: Các chỉ số xác định (Deterministic Metrics) so với LLM Judge
Đánh giá các AI agent là một thách thức lớn. Khác với các hàm phần mềm truyền thống, AI agent hoạt động dựa trên các mô hình ngôn ngữ lớn (LLM), điều này có nghĩa là cùng một đầu vào có thể tạo ra các đầu ra khác nhau. Điều này làm cho việc xác định xem một agent có "hoạt động đúng" hay không trở nên phức tạp hơn nhiều so với việc kiểm thử phần mềm thông thường.
Để đánh giá hiệu suất của agent, chúng ta thường sử dụng hai phương pháp chính: các chỉ số xác định (deterministic metrics) và LLM Judge.
Các chỉ số xác định (Deterministic Metrics)
Các chỉ số xác định dựa trên các quy tắc logic cứng nhắc. Nếu đầu ra của agent đáp ứng một tiêu chí cụ thể, nó được coi là đúng.
Một số ví dụ phổ biến bao gồm:
- Khớp chính xác (Exact Match): So sánh trực tiếp chuỗi đầu ra với một đáp án chuẩn (ground truth).
- Regex (Biểu thức chính quy): Kiểm tra xem đầu ra có tuân theo một định dạng nhất định hay không (ví dụ: một địa chỉ email, một số điện thoại hoặc một mã định danh cụ thể).
- Kiểm tra cấu trúc (Schema Validation): Đảm bảo rằng đầu ra là một tệp JSON hợp lệ và tuân thủ một schema đã được định nghĩa trước.
- Thực thi mã (Code Execution): Nếu agent viết mã, chúng ta có thể chạy mã đó trong một môi trường an toàn để xem nó có thực hiện đúng chức năng hay không.
Ưu điểm
- Tốc độ: Cực kỳ nhanh chóng.
- Chi phí: Gần như bằng không.
- Tính nhất quán: Kết quả luôn giống nhau cho cùng một đầu vào, không có sự mơ hồ.
Nhược điểm
- Sự cứng nhắc: Không thể đánh giá các sắc thái ngôn ngữ. Một câu trả lời có thể hoàn toàn chính xác về mặt ý nghĩa nhưng lại bị coi là sai nếu chỉ khác biệt một dấu phẩy.
- Phạm vi hạn chế: Chỉ có thể kiểm tra được các yếu tố có cấu trúc rõ ràng.
LLM Judge
Phương pháp LLM Judge sử dụng một mô hình ngôn ngữ mạnh mẽ hơn (ví dụ: GPT-4o) để đóng vai trò là một giám khảo, đánh giá chất lượng câu trả lời của agent dựa trên các tiêu chí nhất định.
Thay vì so sánh chuỗi ký tự, chúng ta cung cấp cho LLM Judge một "Rubric" (bảng tiêu chí) và yêu cầu nó chấm điểm dựa trên các tiêu chí đó, chẳng hạn như:
- Tính chính xác (Accuracy): Câu trả lời có đúng với sự thật không?
- Sự hữu ích (Helpfulness): Câu trả lời có giải quyết được vấn đề của người dùng không?
- Sự mạch lạc (Coherence): Câu trả lời có logic và dễ hiểu không?
- Sự an toàn (Safety): Câu trả lời có vi phạm các nguyên tắc an toàn không?
Ưu điểm
- Hiểu ngữ cảnh: Có khả năng đánh giá các khái niệm trừu tượng và sắc thái ngôn ngữ.
- Linh hoạt: Có thể đánh giá các câu trả lời không có đáp án chuẩn duy nhất.
Nhược điểm
- Chi phí: Tốn kém hơn nhiều so với các chỉ số xác định.
- Độ trễ: Chậm hơn do cần thời gian để mô hình suy luận.
- Tính không nhất quán: Có thể gặp hiện tượng "tự thiên kiến" (self-bias) hoặc đưa ra các đánh giá khác nhau cho cùng một nội dung (tính không xác định).
Cách tiếp cận kết hợp (The Hybrid Approach)
Để xây dựng một hệ thống đánh giá mạnh mẽ, cách tốt nhất không phải là chọn một trong hai, mà là kết hợp cả hai.
Một quy trình đánh giá lý tưởng có thể trông như sau:
- Sử dụng các chỉ số xác định trước: Kiểm tra xem đầu ra có đúng định dạng JSON không, có chứa các thông tin bắt buộc không, hoặc có vượt quá giới hạn ký tự không. Nếu bước này thất bại, agent đã thất bại ngay lập tức.
- Sử dụng LLM Judge sau đó: Nếu đầu ra vượt qua các kiểm tra kỹ thuật, hãy sử dụng LLM Judge để đánh giá chất lượng nội dung, độ chính xác về mặt logic và sắc thái của câu trả lời.
Bằng cách kết hợp tính chính xác, tốc độ của các chỉ số xác định với khả năng hiểu biết sâu sắc của LLM Judge, bạn có thể tạo ra một khung đánh giá toàn diện cho các AI agent của mình.