monty-go: Chạy Python do LLM tạo trong Go qua WASM, không cần container
monty-go của Fugue Labs bọc trình thông dịch Monty Python của Pydantic trong Go thuần túy qua WASM và wazero, cho phép agent thực thi Python do LLM viết một cách an toàn với khởi động dưới mili giây và tạm dừng/tiếp tục các lệnh gọi bên ngoài.

Fugue Labs đã phát hành monty-go, một trình bọc Go thuần túy quanh trình thông dịch Monty Python của Pydantic, được biên dịch sang WebAssembly và tải qua wazero. Nó cho phép agent Go thực thi mã Python do LLM tạo trong một phiên bản WASM sandbox—không container, không CGO, không subprocess—với khởi động dưới mili giây. Trình thông dịch tạm dừng bất cứ khi nào mã gọi một hàm bên ngoài, để mã Go của bạn xử lý và tiếp tục.
Tại sao thực thi mã thay vì gọi công cụ?
Điểm mấu chốt: LLM hoạt động nhanh hơn và rẻ hơn khi chúng viết mã thay vì thực hiện các lệnh gọi công cụ tuần tự. Thay vì ba vòng lặp cho tra cứu thời tiết và so sánh, mô hình viết một tập lệnh Python ngắn gọi các hàm Go của bạn. Một lần gọi mô hình, ba lần gọi công cụ, tất cả bên trong một tệp nhị phân WASM 2.9MB được nhúng trong tệp nhị phân Go của bạn.
Bắt đầu nhanh và hàm bên ngoài
Thực thi cơ bản rất đơn giản: truyền một biểu thức và bản đồ đầu vào, nhận kết quả. Sức mạnh thực sự nằm ở các lệnh gọi hàm bên ngoài. Monty tạm dừng tại mỗi lần gọi đến một hàm đã khai báo, callback Go của bạn thực thi nó, và Monty tiếp tục với giá trị trả về. Nhiều hàm có thể được đăng ký và điều phối theo tên.
Giới hạn tài nguyên và an toàn
Mã chạy không kiểm soát được xử lý với các giới hạn có thể cấu hình: thời gian tối đa, bộ nhớ, phân bổ và độ sâu đệ quy. Vòng lặp vô hạn và bom bộ nhớ kết thúc sạch sẽ với *MontyError. Thời hạn context của Go được tôn trọng. Truy cập hệ thống tệp và môi trường đi qua một callback—không có gì xảy ra trừ khi mã của bạn cho phép.
Tích hợp Gollem
monty-go được thiết kế để cung cấp năng lượng cho chế độ mã trong Gollem, khung agent Go của Fugue. LLM viết Python gọi các công cụ của bạn dưới dạng hàm; Monty thực thi an toàn, và Gollem điều phối luồng. README tuyên bố ba lần gọi công cụ trong một vòng lặp LLM, với độ trễ và chi phí thấp hơn so với gọi công cụ tuần tự truyền thống.
Một lần gọi mô hình thay vì ba. Mã Python gọi các hàm Go của bạn, Monty tạm dừng tại mỗi lần gọi, mã Go của bạn thực thi nó, và Monty tiếp tục. Không container. Không dịch vụ sandbox. Không exec(). Chỉ một tệp nhị phân WASM 2.9MB được nhúng trong tệp nhị phân Go của bạn.
| Khía cạnh | Gọi công cụ truyền thống | Chế độ mã với monty-go |
|---|---|---|
| Lệnh gọi LLM | Một cho mỗi lần dùng công cụ | Một cho tất cả công cụ |
| Độ trễ | N × vòng lặp mô hình | 1 × vòng lặp mô hình + thực thi μs |
| Chi phí | N × token đầu vào/đầu ra | 1 × token đầu vào/đầu ra |
| Logic | LLM suy luận từng bước | LLM viết logic một lần |
| Luồng điều khiển | Không (chỉ tuần tự) | Vòng lặp, điều kiện, biến |
| Xử lý lỗi | LLM phải phản ứng với mỗi lỗi | try/except trong Python |
| Bảo mật | ✅ (công cụ là hàm Go) | ✅ (sandbox WASM + callback của bạn) |
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.