Plimsoll: Sandbox tự vận hành cho mã do AI viết, nói rõ mức độ cách ly
Plimsoll là sandbox tự vận hành (self-hosted) chuyên chạy mã không tin cậy do AI agent sinh ra, với mỗi kết quả đều ghi rõ mức độ cách ly thực tế. Dự án do một tác giả phát triển, hỗ trợ bốn mức cách ly (process, container, kernel, vm) và tích hợp sẵn với nhiều framework AI agent phổ biến.

Plimsoll: Sandbox tự vận hành cho mã do AI viết, nói rõ mức độ cách ly
Khi các AI agent ngày càng tự viết và chạy mã, câu hỏi "mã đó chạy trong môi trường nào và cách ly mạnh đến đâu" trở nên cấp thiết. Plimsoll là một dự án mã nguồn mở vừa xuất hiện trên Hacker News, hứa hẹn giải quyết đúng bài toán này: chạy mã không tin cậy bên trong sandbox, và mỗi kết quả trả về đều nói rõ mức độ cách ly đã thực sự được áp dụng.
Trạng thái kiểm toán của Plimsoll
Bốn mức cách ly, không phải lời hứa trên datasheet
Plimsoll lấy tên từ đường Plimsoll — vạch giới hạn tải trọng sơn bên ngoài thân tàu để bất kỳ ai cũng có thể kiểm tra. Tinh thần ấy được áp dụng cho tầng cách ly: độ mạnh của "bức tường" bao quanh một lần chạy mã được nêu rõ theo bốn cấp, từ yếu đến mạnh: process, container, kernel, vm.
Điểm đáng chú ý là tầng cách ly không phải một câu mô tả trong tài liệu, mà là một giá trị đi kèm trên mọi kết quả trả về. Mỗi yêu cầu có thể đặt ra một mức sàn tối thiểu (floor); nếu daemon không đáp ứng được, mã sẽ không chạy. Lỗi ErrInsufficientIsolation nghĩa là chưa có gì được thực thi. Client Go chính thức sẽ kiểm tra lại tầng cách ly một lần nữa khi kết quả trả về.
Cơ chế này cho phép lập trình viên yên tâm rằng mã độc hại tiềm tàng sẽ không bao giờ được chạy ở một tầng yếu hơn mong đợi — điều đặc biệt quan trọng trong bối cảnh các agent AI có thể sinh mã ngoài ý muốn.
Huy hiệu gVisor
Không chỉ cách ly, mà còn "thi" mã của agent
Plimsoll còn cung cấp trial runner tích hợp trong image mô phỏng, cho phép chạy chương trình của agent đối chiếu với các kịch bản mà chương trình đó không thể đọc được — mỗi kịch bản được đưa vào qua một file bị xóa trước khi chương trình khởi động. Mọi lần chạy đều trả về hash SHA-256 của yêu cầu gửi đi và kết quả trả về, giúp phát hiện mọi sai lệch.
Một công cụ riêng tên plimsoll-attest nằm ngoài daemon có thể ký kết các kết quả đã kiểm tra, từ chối chuỗi gọi thiếu một mắt xích, và phát lại một lần chạy. Điều thú vị là bản thân "bài thi" — hệ thống mô phỏng, kịch bản, điểm đạt — vẫn thuộc về bạn; plimsoll chỉ cung cấp ranh giới và bằng chứng.
Ví dụ thực tế được nhóm phát triển công bố: một agent AI viết bộ điều khiển cho bài toán cart-pole kinh điển (xe trên ray, giữ thanh thẳng đứng bằng cách đẩy trái phải). Bản nháp đầu tiên của agent có hai hệ số khuếch đại sai dấu, khiến thanh đổ ở giây 5,96 và cho ra fingerprint khác biệt. Bản đã sửa chạy ổn định, và hai lần chạy cho ra fingerprint trùng khớp.
Cấp quyền cho mã gọi API mà không lộ thông tin xác thực
Một tính năng nổi bật khác: mã do agent viết có thể gọi API của bạn mà không bao giờ nắm giữ credential, địa chỉ API, hay có quyền truy cập mạng mở. Cơ chế grant cấp cho một lần chạy quyền gọi các route được liệt kê của một API. Mã gọi qua một client nhỏ do plimsoll đặt trong sandbox, còn broker — phần nằm ngoài sandbox — sẽ kiểm tra người gọi và route chính xác, rồi tự gắn credential vào.
Credential được đúc mới cho từng lần chạy, nên có thể là token ngắn hạn tươi mới, và không bao giờ lọt vào sandbox. Mã nào bỏ qua client để tự gọi thẳng ra ngoài sẽ bị chặn, vì broker — chứ không phải client — mới là nơi thực thi quy tắc.
Tích hợp sẵn với hệ sinh thái AI agent
Plimsoll cung cấp sẵn công cụ hoặc code executor cho nhiều framework AI agent phổ biến:
- Vercel AI SDK — gói
@plimsollmark/client/ai-sdk - Google ADK —
plimsoll-client[adk] - Agno và CrewAI —
plimsoll-client[agno],plimsoll-client[crewai] - Trigger.dev —
@plimsollmark/client/trigger - Mastra —
@plimsollmark/client/mastra
Với Trigger.dev chẳng hạn, add-on TypeScript cung cấp tool executeCode cho chat agent. Mỗi kết quả tool đều nói rõ biến và file có thể tồn tại sang lần gọi sau không, lần gọi này có khởi động mới không, tầng cách ly đã dùng, và hash SHA-256 của bản ghi chạy.
Phiên bản Go module
Chạy thử trong một phút
Ví dụ tối giản không cần daemon, không cần Docker, không cần credential và không cần mạng — nó dùng wasm provider chạy JavaScript trên QuickJS (engine JavaScript nhỏ biên dịch sang WebAssembly) ngay trong tiến trình của bạn:
git clone https://github.com/plimsollmark/plimsoll && cd plimsoll
go run ./examples/minimal
provider wasm
isolation process
exit code 0
Lưu ý quan trọng: dòng isolation đến từ kết quả của lần chạy, không phải từ văn bản của ví dụ. Mức process nghĩa là không có bức tường hệ điều hành nào cả — đừng dùng nó cho mã đối kháng. Cùng đoạn mã đó sẽ chạy ở tầng kernel sau khi cài gVisor, một lớp chèn giữa container và kernel máy bạn để xử lý các yêu cầu hệ điều hành, nhờ đó mã không bao giờ nói chuyện trực tiếp với kernel.
Khi biến SANDBOX_PROVIDER không được đặt, plimsoll dùng provider Disabled, chạy không gì cả — nghĩa là việc thực thi mã không bao giờ bật lên do vô tình.
Trạng thái dự án: minh bạch đến mức khắt khe
Phần "Status, plainly" của dự án đáng để các nhà phát triển Việt Nam lưu tâm khi cân nhắc áp dụng:
- Chưa đạt phiên bản 1.0, do một tác giả duy nhất phát triển, chưa có người dùng bên ngoài
- Các thay đổi phá vỡ tương thích (breaking changes) sẽ đến không có lộ trình deprecation, và điều này là chủ đích
- Chưa từng có kiểm toán bảo mật độc lập nào, và cả sổ tự đánh giá của tác giả cũng không được công bố
- CI chạy công khai; workflow audit gồm ba job với các kiểm tra rõ ràng: build, vet, race tests, lint, kiểm tra drift mã sinh tự động, và govulncheck
Một chi tiết đáng chú ý về sự trung thực: không có kiểm tra nào chạy trên E2B hay Docker Cloud Sandboxes — vì đó là các dịch vụ trả phí, và nhóm phát triển cố ý không nối chúng vào runner.
Góc nhìn cho nhà phát triển Việt Nam
Với các nhóm đang xây dựng sản phẩm AI agent tại Việt Nam — từ startup đến các đội nội bộ trong doanh nghiệp — Plimsoll đáng để theo dõi vì ba lý do. Thứ nhất, nó tự vận hành được (self-hosted), phù hợp với yêu cầu dữ liệu phải nằm trong nước. Thứ hai, cơ chế capability grant giải quyết đúng nỗi lo lớn nhất: làm sao để mã do AI sinh không rò rỉ API key. Thứ ba, mức độ minh bạch về giới hạn của chính dự án là một tấm gương tốt cho văn hóa kỹ thuật.
Dự án theo giấy phép Apache-2.0, mã nguồn mở tại github.com/plimsollmark/plimsoll. Nếu bạn đang vận hành agent AI có khả năng thực thi mã, đây là một lựa chọn đáng để đánh giá — với điều kiện ghi nhớ rằng đây vẫn là dự án tiền 1.0 chưa qua kiểm toán độc lập.


