このプロジェクトについて

MontyはRustで実装された安全なPythonサンドボックスで、AIモデルが生成したコードを実行することを目的としています。実行ごとにコンテナを起動するのではなく、稼働中のプールから1ミリ秒未満で起動する軽量なインタプリタを提供し、コンテナベースのサンドボックスに伴うレイテンシ、複雑さ、コストを削減することを目指しています。 このプロジェクトは2つの形態で提供されます。MITライセンスのPython 3.14サンドボックスをパッケージとして配布するOSS Montyと、同じサンドボックスをWebSocketの背後でサービスとして実行する商用サーバーのFull Montyです。READMEによると、新しいOSSサンドボックスは稼働中のプールから1ミリ秒未満で起動し、Full Montyは約2ミリ秒であるのに対し、あるサンドボックスサービスでは約1500ミリ秒かかるとされています。 設計上、このサンドボックスにはファイルシステム、環境変数、ネットワークアクセスがありません。コードがホストに到達するのは、呼び出し側が明示的に渡した関数とマウントを通じてのみです。READMEでは、モデルが書いたスニペットがホスト提供の`nutrition`関数を呼び出す例でこれを示しており、サンドボックスはその関数の戻り値のみを受け取ります。 インストールはPython(`uv add pydantic-monty`)、JavaScript/TypeScript(`npm install @pydantic/monty`)、Rust(`cargo add monty`)で利用できます。商用のFull Montyは同じワーカーをコンテナイメージとして実行します。 ドキュメントには、レイテンシ測定を含むイントロダクション、Docker、Pyodide、WASI、各種サンドボックスサービスなどの代替手段との比較、Python、JavaScript、Rust向けのクイックスタート、そしてセキュリティモデル、リソース制限、スナップショット、サポートされるPythonサブセットなどの概念が含まれています。MontyはPydantic AIのCode Modeの実行に使用されており、Go(gomonty)やDart/Flutter(dart_monty)向けのコミュニティバインディングも存在します。Pydantic AI、Pydantic Logfire、Logfire AI Gatewayと並ぶPydantic Stackの一部です。