
monty v0.0.22
AI向けの、Rustで書かれた最小限で安全なPythonインタプリタ
Monty
AIが書いたコードのための、Rustで書かれた安全なPythonサンドボックス。
Montyは、LLMが生成したコードを実行するためのコンテナベースのサンドボックスが抱えるレイテンシ、複雑さ、コストを回避します。 Montyには2つの形態があります。パッケージとしてインストールするMITライセンスのPython 3.14サンドボックスであるOSS Montyと、 同じサンドボックスをgRPCストリーム経由でサービスとして実行する商用サーバーであるFull Montyです。
新しいOSS Montyサンドボックスは、実行中のプールから1ms未満で起動します(Full Montyでは約2ms)。 これはサンドボックスサービスの約1500msと比較した場合の値です。
ファイルシステム、環境変数、ネットワークはサンドボックス内には存在しません。サンドボックスがホストにアクセスできるのは、 渡された関数とマウントを通じてのみです。
ドキュメント: pydantic.dev/docs/monty
インストール
uv add pydantic-monty # Python
npm install @pydantic/monty # JavaScript / TypeScript
cargo add monty # Rust
商用版 Full Monty は、同じワーカーをコンテナイメージとして実行します。
例
code 文字列は、チョコレートバー1本で電球をどれだけの時間点灯できるかをモデルに尋ねたときに、モデルが書き出す内容です:
from pydantic_monty import Monty
code = """
kcal = nutrition('chocolate bar')['kcal']
hours = kcal * 4184 / (bulb_watts * 3600)
print(f'a chocolate bar powers a {bulb_watts} W bulb for {hours:.1f} hours')
"""
with Monty() as pool:
with pool.checkout() as session:
session.feed_run(
code,
inputs={'bulb_watts': 10},
external_lookup={'nutrition': lambda food: {'kcal': 230}},
)
#> a chocolate bar powers a 10 W bulb for 26.7 hours
nutrition はホスト上で実行され、サンドボックスはその戻り値のみを受け取りました。
ドキュメント
- レイテンシ測定を含むはじめに
- 代替手段との比較: Docker、Pyodide、WASI、 サンドボックスサービス
- Python、 JavaScript、 Rust での導入ガイド
- セキュリティモデル、リソース 制限、 スナップショット、Python サブセット
docs/: ドキュメントサイトのソース
Monty は Pydantic AI 内で Code Mode を実行します。 コミュニティバインディング: gomonty (Go) および dart_monty (Dart / Flutter)。
Pydantic Stack の一部
Pydantic Stack は、本番グレードの AI エージェントを出荷するために必要なすべてを提供します:
- Pydantic AI - 型安全な エージェントフレームワーク
- Pydantic Logfire - AI ファーストの フルスタック可観測性
- Logfire AI Gateway - 統合 LLM プロキシ