Shao Meng@shao__meng
85

Sản phẩm

Skillgrade 2.0: Công cụ mã nguồn mở giúp kiểm thử đơn vị cho AI Agent

(giờ Việt Nam)

Tóm tắt AI

Skillgrade 2.0 ra mắt với phương pháp kiểm thử "lệnh cũng cần test", kết hợp giữa kiểm tra xác định và đánh giá bằng LLM để đảm bảo độ tin cậy cho AI Agent. Công cụ hỗ trợ tích hợp CI/CD và tương thích với nhiều mô hình lớn như Gemini, Claude.

Bản dịch AI

Viết unit test cho Agent Skills

Skillgrade 2.0 đã được phát hành mã nguồn mở bởi @mgechev https://github.com/mgechev/skillgrade

Quan điểm cốt lõi của tác giả Minko về Skillgrade là: Prompt (chỉ dẫn) cũng cần được kiểm thử, đừng bao giờ phát hành các Skills mà chưa qua đánh giá ("Don't ship skills without evals").

Tiền thân của nó là dự án dạng framework mang tên Skill Eval, sau đó đã được viết lại hoàn toàn: từ việc "bạn phải xây dựng dự án trên một framework" chuyển thành "một công cụ cài đặt toàn cục, chỉ cần trỏ vào thư mục Skill là chạy được". Mọi cấu hình đều được gói gọn trong một file eval.yaml duy nhất, không cần giàn giáo (scaffolding), không tốn chi phí học cấu trúc dự án.

Nguyên lý hoạt động Toàn bộ quy trình chỉ gồm ba bước: npm i -g skillgrade cd my-skill/ && skillgrade init skillgrade --smoke

Khi chạy, công cụ sẽ thực hiện: sao chép các file workspace của tác vụ (mã nguồn cần sửa, file nhị phân của công cụ, v.v.) vào một môi trường cô lập (mặc định là Docker container, tùy chọn local), giao chỉ dẫn tác vụ cho AI Agent thực thụ thực thi, sau đó chấm điểm trạng thái workspace sau khi thực thi. Do đầu ra của các mô hình ngôn ngữ lớn (LLM) có tính ngẫu nhiên, mỗi tác vụ sẽ chạy nhiều lần thử nghiệm (trial) để thống kê tỷ lệ thành công, thay vì chỉ đánh giá một lần duy nhất.

Hai loại bộ chấm điểm (Grader) -- phần đáng học hỏi nhất trong thiết kế Skillgrade áp dụng mô hình chấm điểm hỗn hợp "Kiểm tra xác định + Đánh giá bằng LLM", tính tổng có trọng số để đưa ra điểm số cuối cùng: • Deterministic (Bộ chấm điểm xác định): Chạy một đoạn script (bash hoặc TypeScript), xuất ra file JSON định dạng {score, details, checks}. Dùng để trả lời câu hỏi "Kết quả có đúng không" -- file đã được tạo chưa, nội dung có đúng như mong đợi không. Thường chiếm 70% trọng số. • LLM Rubric (Bộ chấm điểm theo tiêu chí): Gửi toàn bộ lịch sử hội thoại của agent cho một LLM khác để đánh giá định tính dựa trên các tiêu chí bạn đã viết. Dùng để trả lời câu hỏi "Quy trình có tốt không" -- có tuân thủ quy trình làm việc quy định cho kỹ năng đó không, có hiệu quả không, có tự ý sửa đổi mà không dùng công cụ của bạn không. Thường chiếm 30% trọng số.

Lấy ví dụ về superlint trong kho lưu trữ: Bộ chấm điểm xác định sẽ kiểm tra xem file.superlint-passed có tồn tại không, mã nguồn có thực sự được đổi thành const và dấu nháy đơn không; bộ chấm điểm LLM sẽ kiểm tra xem agent có tuân thủ quy trình 3 bước check → fix → verify không, có hoàn thành trong vòng 5 lệnh hay không. Thiết kế hai chiều "Kết quả + Quy trình" này chính là sự hiện thực hóa phương pháp luận đánh giá của Anthropic (dự án này trích dẫn rõ ràng bài báo SkillsBench và bài viết về agent evals của Anthropic).

Điểm nhấn kỹ thuật • Ba chế độ cài đặt sẵn: --smoke (5 lần thử, dùng để kiểm tra nhanh khi phát triển), --reliable (15 lần), --regression (30 lần, kiểm tra hồi quy độ tin cậy cao trước khi merge) -- biến việc lựa chọn số lần thử nghiệm có ý nghĩa thống kê thành một tính năng sản phẩm. • Hỗ trợ CI nguyên bản: --ci --threshold=0.8 chỉ với một flag, nếu tỷ lệ thành công thấp hơn ngưỡng sẽ trả về mã lỗi khác 0, có thể bảo vệ chất lượng kỹ năng trong GitHub Actions giống như chạy unit test. Môi trường CI khuyến nghị dùng --provider=local (bản thân runner đã là sandbox, tiết kiệm chi phí Docker). • Lớp thích ứng (adapter) cho agent rất mở: Tích hợp sẵn Gemini/Claude/Codex, hỗ trợ OpenCode, giao thức ACP (JSON-RPC over stdio, không cần quản lý API key), và chế độ command phổ biến nhất -- bất kỳ CLI tùy chỉnh nào có thể đọc chỉ dẫn từ stdin đều có thể kết nối, vì việc chấm điểm chỉ dựa trên trạng thái cuối cùng của workspace, hoàn toàn tách biệt với cách triển khai của agent. • Tự sử dụng (Dogfooding): Thư mục gốc của kho lưu trữ tự có một file eval.yaml, dùng Skillgrade để đánh giá hai kỹ năng của chính nó là skillgrade-setup và skillgrade-graders -- công cụ tự kiểm thử chính mình. • Chi tiết tinh tế: Các trường instruction/rubric/run trong cấu hình hỗ trợ tham chiếu file; tự động tải.env và tự động ẩn thông tin nhạy cảm trong log; cung cấp --validate để dùng đáp án tham khảo xác minh độ tin cậy của bộ chấm điểm; cung cấp hai cách xem kết quả là báo cáo CLI và Web UI trên trình duyệt.

Các phương pháp hay nhất (Best Practices) được tổng kết chính thức Bốn kinh nghiệm được đúc kết trong README rất đáng ghi nhớ: Đánh giá kết quả thay vì đánh giá các bước (kiểm tra xem file đã được sửa chưa, thay vì kiểm tra xem đã chạy lệnh nào); chỉ dẫn phải chỉ định rõ file đầu ra (bộ chấm điểm kiểm tra output.html, thì chỉ dẫn phải yêu cầu agent lưu thành output.html); dùng đáp án tham khảo để xác minh bộ chấm điểm trước; bắt đầu từ quy mô nhỏ -- 3-5 tác vụ được thiết kế kỹ lưỡng tốt hơn 50 tác vụ nhiễu.

“Minko Gechev: Vừa phát hành skillgrade v0.2.0! 🚀 Giờ đây bạn có thể mang theo các CLI agent của riêng mình bằng cách sử dụng command agent mới. Chỉ cần truyền trực tiếp các chỉ dẫn vào script/orchestrator của bạn...”

AI AgentKiểm thử phần mềmMã nguồn mởLLMDevTools
Xem nguyên văn trên X

Bài viết được AI dịch và tổng hợp tự động từ X: Shao Meng (@shao__meng). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.