8 puan yazan GN⁺ 2026-02-08 | 1 yorum | WhatsApp'ta paylaş
  • AI tarafından üretilen kodu güvenle çalıştırmak için tasarlanmış, Rust tabanlı hafif bir Python yorumlayıcısıdır; konteyner sandbox'larının karmaşıklığını ve gecikmesini ortadan kaldırır
  • Dosya sistemi, ortam değişkenleri ve ağ erişimini tamamen engeller; yalnızca geliştiricinin belirlediği harici fonksiyonların çağrılmasına izin verir
  • 1 mikrosaniyenin altında başlatma süresi ve CPython'a benzer çalışma performansı sunar; Rust, Python ve JavaScript içinden çağrılabilir
  • Çalışma durumunu bayt düzeyinde snapshot olarak kaydedip geri yükleyebilir; bu sayede süreçler arasında durdurma ve sürdürme mümkündür
  • Pydantic AI'nin Code Mode özelliğini çalıştırmak üzere planlanmıştır ve LLM'nin yazdığı Python kodunu güvenle çalıştırmak için temel bir bileşen olarak kullanılacaktır

Monty'ye genel bakış

  • Monty, Rust ile yazılmış deneysel bir Python yorumlayıcısıdır ve yapay zeka tarafından üretilen kodu güvenle çalıştırmak için tasarlanmıştır
    • Konteyner tabanlı sandbox'ların maliyet, gecikme ve karmaşıklığından kaçınır ve LLM'nin yazdığı Python kodunu doğrudan çalıştırabilir
    • Başlatma süresi birkaç mikrosaniye düzeyindedir; tipik bir konteynerin yüzlerce milisaniyelik süresinden çok daha hızlıdır
  • Sunulan özellikler
    • Python kodunun bazı sözdizimlerini çalıştırmayı destekler; type hint tabanlı statik tip denetimi de içerir
    • Host erişimi tamamen engellenir; harici fonksiyon çağrıları yalnızca geliştiricinin açıkça izin verdiği fonksiyonlarla mümkündür
    • Rust, Python ve JavaScript içinden çağrılabilir; kaynak kullanımını izleme ve sınırlama özellikleri yerleşik olarak bulunur
    • stdout/stderr toplama, asenkron kod çalıştırma ve snapshot kaydetme/geri yükleme özelliklerini destekler
  • Kısıtlamalar
    • Standart kütüphanede yalnızca sys, typing, asyncio, dataclasses(planlanıyor), json(planlanıyor) kullanılabilir
    • Sınıf tanımı ve match ifadesi henüz desteklenmiyor
    • Üçüncü taraf kütüphaneler desteklenmiyor
  • Tasarım amacı tektir: ajanın yazdığı kodu güvenle çalıştırmak

Pydantic AI entegrasyonu

  • Monty, Pydantic AI'nin Code Mode özelliğini çalıştırır
    • LLM, araç çağrıları yerine Python kodu yazar ve Monty bu kodu güvenle çalıştırır
    • Örnekte get_weather, get_population gibi fonksiyonel araçlar tanımlanır ve LLM bunları çağıran kodu yazar

Alternatif teknolojilerle karşılaştırma

  • Monty'nin dil bütünlüğü sınırlı olsa da güvenlik, hız ve sadelik açısından güçlüdür
    • 0.06ms başlatma gecikmesi, ücretsiz, kolay kurulum, snapshot desteği
  • Diğer teknolojilerle kısa karşılaştırma:
    • Docker: tam CPython ortamı, güvenlik iyi ancak başlatma gecikmesi 195ms
    • Pyodide: WASM tabanlı, güvenlik zayıf ve başlatma gecikmesi 2800ms
    • starlark-rust: çok sınırlı bir dil, hızlı ama Python'dan farklı
    • sandboxing servisleri: güvenlik güçlü ancak maliyet, gecikme ve kurulum karmaşıklığı yüksek
    • YOLO Python(exec/subprocess): hızlı ama hiç güvenlik yok
  • Monty; dosya erişim kontrolü, kaynak sınırlama ve snapshot tabanlı durdurma/sürdürme özellikleriyle
    AI kodu çalıştırmak için güvenli bir Python ortamı sunar

1 yorum

 
GN⁺ 2026-02-08
Hacker News yorumları
  • WebAssembly ile derlenmiş sürümü çalıştırmayı denemiş. Doğrudan test edebileceğiniz bir web playground hazırlamış
    Henüz class desteği yok ama LLM class kullanmaya çalıştığında hatayı görüp kendi kendine class kullanmayan kod olarak yeniden yazıyor
    Derleme sürecini özetleyen yazı burada

    • Söylenen doğru ama bu tür alt soyutlama seviyesindeki küçük pürüzler birikince üst seviyedeki performans düşüyor. LLM, asıl problemi çözmek yerine Python yorumlayıcısının açıklarını dolaşmaya kaynak harcıyor
    • Güzel proje ama somut bir kullanım senaryosu gözümde canlanmıyor. MCP çağrılarını Monty fonksiyonlarıyla değiştiren bir kod modu için mi, yoksa sorgu ön/son işleme ya da CaMeL uygulaması için mi?
      Terminal ajanlarının gücü ağ ve dosya sistemi erişiminden geliyor; öyleyse sandbox container daha doğal bir uzantı gibi duruyor
    • Açıkçası neden gerekli olduğunu anlamıyorum. Modellerim zaten birden çok dilde gayet iyi kod yazıyor; neden özellikle kısıtlı Python kullanmak zorunda olayım?
      Typescript, C#, Python hepsini sorunsuz kullanıyorum
    • “Class kullanmayan kod olarak yeniden yazıyor” denmesi, sonuçta bunun ancak eğitim verisinde bu tür kod yeterince varsa mümkün olduğu anlamına geliyor. Neyse ki bolca Stack Overflow kodu var, o yüzden sorun olmayabilir
  • Eskiden Git’e geçmeden önce Mercurial kullandığım günleri hatırlattı. O zamanlar Git modaydı, herkes kullanıyor gibiydi ama bana göre Mercurial’ın UX’i çok daha iyiydi
    Şimdi herkes Python ile agent exec yazıyor ama bana TypeScript/JS daha uygun geliyor. Hızlı, güvenli ve tipler sayesinde bilgi yoğunluğu daha yüksek. Ama bu sefer de yine kaybedecekmişim gibi görünüyor

    • Python’ın JS’den daha iyi olduğunu düşünmemin üç nedeni var
      1. Zengin standart kütüphane (CSV, sqlite3, json vb.)
      2. LLM’in yazdığı kod çoğunlukla doğrudan çalışıyor. JS tarafında Node/Deno ayrımı, import sözdizimi karmaşası, top-level await gibi daha çok istikrarsız unsur var
      3. Veri işleme ekosistemi çok daha güçlü (csv/pandas vb.)
    • 10 yılı aşkın süredir Python ve JS kullanıyorum; her seferinde garip exception işleme ya da null/undefined kontrol sorunlarıyla uğraştım. Bu yüzden her gün Python’ı seçerim gibi geliyor
    • Tarihsel olarak Python’ın bilimsel/yapay zeka ekosistemi güçlü. Bunun nedeni numpy, scipy, PyTorch gibi kütüphaneler
      Kişisel olarak TypeScript’in statik tip sistemi daha çok hoşuma gidiyor ama hız ya da güvenlik açısından iki dil de benzer seviyede
    • Ajan kod çalıştırabiliyorsa veriyi doğrudan işleyebilir, böylece context azaltılabilir.
      Python bu veri işleme ekosisteminde güçlü ve Pyodide ya da ty gibi araçlarla güvenlik sorunları da hafifletilebilir
    • AI sayesinde CPython sonunda yerleşik JIT baskısı hissediyor. GPU tarafında da Python DSL tabanlı JIT’ler çok yaygın, bu yüzden gerçek performans farkı çok büyük değil.
      Artık NVIDIA bile Python ile kernel yazmayı resmi olarak destekliyor
  • Bu proje sandboxing sorununa ilginç bir yaklaşım sunuyor. Daha önce jsrun adlı bir deneyde Python içine V8 gömülerek JS güvenli biçimde çalıştırılmıştı
    Monty de benzer bir hedefe sahip gibi görünüyor. En küçük yorumlayıcıyla başlamak AI iş yükleri için uygun, ama Python’ın uzun kuyruklu sözdizimini ele almak kolay değil
    Güvenlik ve öngörülebilirlik için yüzey alanını küçültürken, LLM’in ürettiği karmaşık kodu da çalıştırabilecek kadar özellik sunmak arasında doğru denge noktası önemli

    • Amaç, kod modu ya da harici fonksiyon çağrılarını basitleştirmek. Kısa vadede sadece class, dataclass, datetime, json desteği bile yeterli olabilir
    • Ama güvenliğin kritik olduğu ortamlarda sonunda VM tabanlı izolasyonun şart olduğunu düşünüyorum. Monty gibi yaklaşımların pratikte çok kısıtı var (E2B çalışanı görüşü)
  • Biraz alakasız ama Monty Roberts’ın The Man Who Listens to Horses kitabını hatırlattı.
    Hayvanların dilini öğrenmekle ilgili; kitap bağlantısı ve video burada

  • “LLM’in yazdığı Python kodunu aşırı hızlı ve güvenli biçimde çalıştırır” açıklaması ilginç geldi.
    Ancak uv gibi Rust tabanlı runtime’lar bile en az 10ms civarında sürerken mikrosaniye düzeyi pek gerçekçi görünmüyor
    Yine de standart kütüphanesiz mini yorumlayıcı fikri güzel. AI sandboxing açısından da yeni bir yaklaşım ve Pydantic’ten böyle bir şey çıkmasını beklemezdim

    • Pydantic ve FastAPI bugünlerde en ilginç Python ekiplerinden. Sürekli yeni projeler çıkarıyorlar
    • Bu arada uv, Rust ile yazılmış bir runtime
  • Ben mevcut dilleri yeniden kullanmak yerine AI’ye özel katı bir dil tasarlamanın daha iyi olacağını düşünüyorum
    AI, belirtimleri iyi anlıyor; bu yüzden insanlar için gerekli olan gevşek sözdizimine ihtiyaç duymuyor.
    Hatta kesin yapı ve tutarlı formatı zorunlu kılan bir dil daha uygun olabilir.
    Ben de böyle bir dili deniyorum; AI kod üretiminde insanlara kıyasla daha yüksek disiplin talep edilebileceğini düşünüyorum

    • Ama sorun öğrenme miktarı. Modelin yeni bir dili öğrenmesi için muazzam miktarda veri gerekir.
      Zaten Python’ı iyi bilen bir modele “yalnızca bu fonksiyonu kullan” diye kısıt koymak çok daha gerçekçi
  • jstanley’nin sözünü ettiği “küçük pürüzler (papercut)” noktası doğru ama öte yandan AI’nin ürettiği kodu büyük ölçekte çalıştırırken güvenlik riski daha büyük
    Dosya I/O, ağ, subprocess gibi özellikleri tam CPython’a açmak riskli
    Ama class kısıtı garip. Güvenlikle ilgisi yok, sadece kodu daha da dağınık hale getiriyor.
    Muhtemelen “en küçük işlev kümesiyle başlayıp aşamalı genişletme” yaklaşımı izleniyor

    • Evet, class kısıtı güvenlik amacıyla değil, sadece henüz uygulanmadığı için var
  • CPython’ın tüm özelliklerini taklit etmeye çalışmak yerine, AI kodu için gereken minimum yorumlayıcıyı yapmak ilginç bir yaklaşım
    Tam bir runtime’ın saldırı yüzeyi çok geniş ama kısıtlı bir alt küme daha güvenli
    Hata geri bildirimiyle LLM’in kısıtlı sözdizimine kendi kendine uyum sağlamasını teşvik etme stratejisi de pratik görünüyor.
    Araç kullanım senaryolarının çoğunda metaclass ya da dinamik import gerekmez

  • Basit bir soru ama seccomp ile sistem çağrılarını kısıtlamak yeterli olmaz mı?
    Dosya erişimini engellemek istiyorsanız ilgili syscall’ları kapatırsınız; o zaman neden ayrıca bir yorumlayıcıya ihtiyaç var merak ediyorum

    • bvisor gibi projeler o yöne gidiyor
    • Doğru yaklaşım bu ama varsayılan runtime çok güçlü olduğunda kaçış ihtimali de fazla oluyor.
      En baştan aşırı sade bir runtime ile başlarsanız saldırı yüzeyi küçük olur ve çok daha güvenli hale gelir
  • Projenin kendisi mantıklı ama “AI için aşırı hızlı araç” ifadesi güldürdü
    AI’nin düşünme hızı zaten o kadar yavaş ki, kod çalıştırma ne kadar hızlansa da toplam hissedilen hızda büyük fark yaratmıyor
    Sanki yanınızda buzul hareketi hızında çalışan bir iş arkadaşıyla birlikte teslimat yapıyormuşsunuz gibi