Harbor + Docker Sandboxes: cô lập eval AI agent để kết quả đáng tin hơn
Docker tích hợp Sandboxes với Harbor để chạy từng tác vụ đánh giá AI agent trong microVM riêng. Thiết lập này hướng tới giảm reward hacking, kiểm soát mạng và giúp các lần eval có điều kiện nhất quán hơn.
AI agent khi làm một tác vụ có thể cài package, sửa file và chạy lệnh terminal. Với các bài đánh giá agent lặp lại nhiều lần, đó cũng là lý do môi trường chạy cần được cô lập và kiểm soát chặt.
Docker vừa tích hợp Docker Sandboxes với Harbor, framework mã nguồn mở để đánh giá AI agent trên các tác vụ thực tế. Mỗi tác vụ eval có thể chạy trong một Docker Sandbox, thay vì dùng chung môi trường với các tác vụ khác.
Với đội QA và tester đang theo dõi chất lượng agent viết hoặc chạy test, điểm đáng chú ý là: môi trường eval được tách riêng, có thể kiểm soát mạng và có thể chạy từ local đến cloud.
Harbor và Docker Sandboxes chia nhau hai vai trò
Theo Docker, một quy trình đánh giá agent cần hai thành phần:
Eval framework: chạy task, cho agent làm việc, kiểm tra kết quả, thu thập điểm và log.
Môi trường riêng cho từng task: giúp lần chạy sạch, cô lập và nhất quán hơn.
Harbor đảm nhiệm phần framework. Docker Sandboxes cung cấp môi trường chạy cho từng task.
Docker mô tả Sandboxes là môi trường microVM: mỗi môi trường có kernel riêng, thay vì các task dùng chung một container. Trong sandbox, agent như Claude Code, Codex hoặc Cursor có thể cài package, chỉnh sửa file và thực thi lệnh.
Mục tiêu: giảm reward hacking khi chấm agent
Docker nhấn mạnh một rủi ro trong agent eval là reward hacking: agent đạt điểm qua bài bằng cách can thiệp vào cơ chế kiểm tra, thay vì hoàn thành tác vụ.
Ví dụ được Docker nêu là agent sửa test hoặc ghi đè file lưu điểm số để nhận kết quả đạt.
Việc tách từng task vào sandbox hướng tới giảm tác động của hành vi này lên máy chạy eval, tác vụ khác và môi trường bên ngoài. Đây cũng là nền tảng để so sánh các lần chạy trong điều kiện nhất quán hơn.
Kiểm soát mạng để các lần chạy công bằng hơn
Docker Sandboxes hỗ trợ chính sách mạng tùy chỉnh. Một kịch bản Docker đưa ra là:
Task được tải các thành phần cần thiết trong giai đoạn thiết lập.
Khi agent bắt đầu làm việc, internet có thể bị ngắt.
Cách tiếp cận này giúp các agent được đánh giá dưới cùng điều kiện mạng. Với các bài eval cần so sánh nhiều agent hoặc nhiều lần chạy, việc giới hạn truy cập mạng có thể giảm khác biệt do môi trường bên ngoài tạo ra.
Bài viết nguồn không công bố cú pháp cấu hình network policy chi tiết.
Chạy Harbor với Docker Sandboxes
Docker cung cấp ví dụ cài Harbor cùng phần mở rộng cho Sandboxes:
bash
uv tool install "harbor[sbx]"
Để dùng Docker Cloud Sandboxes, người dùng cần kích hoạt Cloud access cho tài khoản Docker và tạo personal access token có quyền Cloud Sandboxes. Sau đó khai báo Docker ID và token:
bash
export SBXDOCKERUSERNAME="your-docker-id"
export SBXDOCKERPAT="your-personal-access-token"
harbor run -t hello-world/hello-world -a oracle -e sbx
Lệnh mẫu chạy task hello-world/hello-world với môi trường sbx.
Nếu chạy local, Docker hướng dẫn cài Docker Sandboxes CLI, thực hiện:
bash
sbx login
Sau đó thêm tùy chọn sau vào lệnh chạy:
text
--ek target=local
Local để phát triển, cloud để chạy song song
Theo Docker, cùng một task có thể chạy local hoặc chuyển lên Docker Cloud Sandboxes mà không cần thay đổi task.
Với Cloud Sandboxes, đội ngũ có thể chạy nhiều task song song mà không phải tự cấp phát máy thủ công. Docker cho biết đã thử nghiệm Harbor với 64 worker chạy đồng thời trên Docker Cloud Sandboxes.
Đây là số liệu do Docker công bố, không phải kết quả đánh giá độc lập cho mọi loại workload.
Giới hạn hiện tại
Tích hợp hiện tại hỗ trợ:
Task một container
Chạy trên CPU
Docker cho biết hỗ trợ GPU và task nhiều container sẽ được bổ sung sau. Vì vậy, các bài eval cần nhiều dịch vụ phối hợp có thể chưa thuộc phạm vi hỗ trợ hiện được công bố.
Điều QA nên theo dõi
Với tester và QA automation, tích hợp này không tự động chứng minh test do agent tạo ra là tốt. Giá trị chính của nó là tạo môi trường tách biệt để chạy và chấm các tác vụ agent một cách có kiểm soát hơn.
Khi đánh giá output của agent, đội QA vẫn cần xác định rõ:
Tác vụ agent được phép làm gì.
Thành phần nào dùng để kiểm tra kết quả.
Điều kiện mạng có giống nhau giữa các lần chạy hay không.
Kết quả đạt có phản ánh việc agent hoàn thành tác vụ, thay vì chỉ tác động vào cơ chế chấm.
Harbor kết hợp Docker Sandboxes mang lại một lựa chọn để chạy agent eval trong môi trường microVM riêng cho từng task. Với các nhóm cần đánh giá agent lặp lại ở local hoặc cloud, đây là hướng tiếp cận đáng chú ý để tăng tính cô lập và tính nhất quán của quá trình chấm.