deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (hnrss.org)

monty-go, LLM tarafından üretilen Python kodunu WASM sandbox'lı Monty interpreter üzerinden Go içinde çalıştırıyor

fugue-labs'ın monty-go kütüphanesi, Pydantic'ın Monty Python interpreter'ını WebAssembly içine sarıyor; böylece Go servisleri LLM yazımı kodu pause/resume host çağrıları ve sıkı kaynak limitleriyle kendi süreci içinde çalıştırabiliyor.

monty-go, LLM tarafından üretilen Python kodunu WASM sandbox'lı Monty interpreter üzerinden Go içinde çalıştırıyor

Go binary'sine gömülü bir Python interpreter

Hacker News ana sayfasına ulaşan GitHub sayfasıyla bilinen fugue-labs'ın kütüphanesi monty-go, Pydantic'ın Monty Python interpreter'ını saf Go paketi içine sarıyor. Monty, WebAssembly'ye derleniyor ve monty-go bu module'ü tamamen Go ile yazılmış bir WASM runtime olan wazero üzerinden çalıştırıyor. Pratik sonuç: bir Go servisi, Python kodunu — tipik olarak bir dil modeli tarafından yazılan — container, subprocess ve CGO bağlantısı olmadan kendi süreci içinde çalıştırabiliyor. Projenin README'sine göre gömülü interpreter bir Go binary'sine yaklaşık 2.9 MB ekliyor ve bir WASM instance'ı bir milisaniyenin altında başlıyor.

Kurulum, github.com/fugue-labs/monty-go için tek bir go get komutu; ardından bir runner, kod string'i ve girdi değişkenlerinden oluşan bir map alıyor ve değerlendirilmiş sonucu döndürüyor.

Birçok model çağrısı yerine tek bir çağrı

README'nin motivasyon bölümü, modellerin sıralı tool çağrıları zincirlemek yerine kod yazdığında daha hızlı, daha ucuz ve daha güvenilir çalıştığını savunuyor. Bir agent'ın üç ayrı çağrı yapması — bir arama, ikinci bir arama, sonra bir karşılaştırma — yerine model, aynı yetenekleri sıradan fonksiyonlar olarak çağıran kısa bir Python parçası yazıyor. Tek bir gidiş-dönüş üçünün yerini alıyor ve orkestrasyon mantığı, değişkenler, döngüler ve hata yönetimi modelin adım adım tepkileri yerine Python'da yaşıyor. Proje, aynı örüntünün daha önceki ifadeleri olarak Anthropic'in programatik tool çağrısı ve MCP ile kod çalıştırma üzerine yazdıklarına, Cloudflare'in Code Mode'una ve Hugging Face'in Smol Agents'ına işaret ediyor.

Host fonksiyonları interpreter'ı durdurup devam ettiriyor

Temel mekanizma interception. Python kodu host'un bildirdiği bir fonksiyonu çağırdığında Monty çalışmayı durduruyor, çağrıyı bir Go callback'ine devrediyor ve callback bir değer döndürdüğünde devam ediyor. Callback, Go'nun yapabileceği her şeyi yapabilir — HTTP istekleri, veritabanı sorguları — ancak interpreter'ın kendisi ağa veya diske asla doğrudan erişim kazanmıyor. Birden çok fonksiyon aynı anda kaydedilebilir ve tek bir callback içinde isme göre yönlendirilebilir.

Aynı interception, işletim sistemi davranışını da kapsıyor. Path.read_text gibi dosya sistemi işlemleri ve ortam değişkenlerine erişim bir Go handler'a yönlendiriliyor ve README, handler izin vermedikçe gerçek dosya sistemine hiçbir şeyin dokunmadığını açıkça belirtiyor. print() çıktısı da stdout'a sızmak yerine benzer bir hook üzerinden yakalanıyor.

Kontrolsüz kod için limitler ve iptal

Sonsuz döngüye giren veya sınırsız bellek ayıran üretilmiş kod bariz bir başarısızlık senaryosu ve monty-go bunu açık üst sınırlarla ele alıyor: maksimum wall-clock süre, bayt cinsinden bellek sınırı, toplam ayırma limiti ve recursion derinliği sınırı. Bunlardan herhangi birinin ihlali, çalışmayı tipli bir *MontyError ile temiz biçimde sonlandırıyor. Go'nun context.Context deadline'ları da dikkate alınıyor; böylece context'i iptal etmek WASM instance'ını tamamen durduruyor.

Gollem'deki code mode'u güçlendirmek için tasarlandı

monty-go, fugue-labs'ın Go için agent framework'ü olan Gollem'in altında yer alacak şekilde tasarlandı. Mevcut Gollem tool'ları tek bir kod çalıştırma tool'una sarılabilir: model onları fonksiyon olarak çağıran Python yazar, Monty her çağrıda durur ve Go implementasyonları bu duraklamaları karşılar. README'deki karşılaştırma, N model gidiş-dönüşünün tek birine indiğini, karşılığında modelin her ara sonuç üzerinden akıl yürütmesi yerine kontrol akışını önceden tek seferde yazdığını iddia ediyor. Gollem, sandbox'ın etrafına tipli çıktılar, guardrail'ler, maliyet takibi ve çok sağlayıcılı destek katıyor.

Neden önemli

Model yazımı kodu güvenli çalıştırmak genellikle container'lar, ağdan izole sandbox servisleri veya ayrı bir çalıştırma mikro servisi anlamına geliyordu — sadece bir agent'ın birkaç tool'u birleştirmesini isteyen ekipler için ağır makineler. monty-go, uygulama binary'sine gömülü bir WASM sandbox'ın yeterli olacağına bahse giriyor: CGO'yu atlamak cross-compilation'ı sorunsuz tutuyor, süreç içi çalıştırma ağ atlama noktalarını ve cold start'ları ortadan kaldırıyor ve pause/resume tasarımı her yeteneği host'un kontrolünde sıradan bir Go fonksiyonu olarak tutuyor. Küçük ayak izi ve sıkı kaynak üst sınırları, ölçekte veya kısıtlı host'larda çalışan agent'lar için bunu makul kılıyor.

Uyarılar her zamankkiler gibi. WASM sınırının arkasındaki bir interpreter, Python ekosisteminin native-extension tarafını sunmayacak ve bir sandbox, gerçekten düşmanca kod için eksiksiz bir izolasyon hikayesi değil, tek bir savunma katmanı. Yine de Go'daki agent geliştiricileri için monty-go, "model kodu yazsın" fikrini bir altyapı projesinden bir library import'una dönüştürüyor.

  • #golang
  • #wasm
  • #llm-agents
  • #python
  • #sandboxing
  • #open-source

İlgili yazılar