ニュース

monty-go: GoでLLM生成PythonをWASM経由で実行、コンテナ不要

Fugue Labsのmonty-goは、PydanticのMonty PythonインタプリタをWASMとwazero経由で純Goにラップし、エージェントがLLMが書いたPythonをサブミリ秒の起動と外部呼び出しの一時停止/再開で安全に実行できるようにします。

August 30, 2026· 1 min read· 出典: GitHub
monty-go: GoでLLM生成PythonをWASM経由で実行、コンテナ不要

Fugue Labsはmonty-goをリリースしました。これはPydanticのMonty PythonインタプリタをWebAssemblyにコンパイルし、wazero経由で読み込む純Goラッパーです。GoエージェントはLLMが生成したPythonコードをサンドボックス化されたWASMインスタンスで実行できます—コンテナもCGOもサブプロセスも不要で、起動はサブミリ秒です。コードが外部関数を呼び出すたびにインタプリタは一時停止し、Goコードがそれを処理して再開できます。

ツール呼び出しではなくコード実行を選ぶ理由

売り文句:LLMは逐次のツール呼び出しよりもコードを書く方が速く安く動作します。天気検索と比較のための3往復の代わりに、モデルはGo関数を呼び出す短いPythonスクリプトを書きます。1回のモデル呼び出し、3回のツール呼び出し、すべてGoバイナリに埋め込まれた2.9MBのWASMバイナリ内で完結します。

クイックスタートと外部関数

基本的な実行は簡単です:式と入力マップを渡すと結果が得られます。本当の力は外部関数呼び出しにあります。Montyは宣言された関数への各呼び出しで一時停止し、Goコールバックがそれを実行し、Montyは戻り値で再開します。複数の関数を登録し、名前でディスパッチできます。

リソース制限と安全性

暴走コードは設定可能な制限で処理されます:最大実行時間、メモリ、割り当て、再帰深度。無限ループやメモリ爆弾は*MontyErrorでクリーンに終了します。Goのコンテキスト期限も尊重されます。ファイルシステムと環境へのアクセスはコールバック経由でルーティングされ、コードが許可しない限り何も起こりません。

Gollem統合

monty-goはFugueのGoエージェントフレームワークGollemのコードモードを支えるために設計されています。LLMはツールを関数として呼び出すPythonを書き、Montyがそれを安全に実行し、Gollemがフローを調整します。READMEは、従来の逐次ツール呼び出しと比較して、1回のLLM往復で3回のツール呼び出しが可能で、レイテンシとコストが低いと主張しています。

3回のモデル呼び出しではなく1回。PythonコードがGo関数を呼び出し、Montyは各呼び出しで一時停止し、Goコードが実行し、Montyが再開します。コンテナなし。サンドボックスサービスなし。exec()なし。Goバイナリに埋め込まれた2.9MBのWASMバイナリだけです。
Manul X 編集部
従来のツール呼び出し vs. monty-goによるコードモード
比較
側面従来のツール呼び出しmonty-goによるコードモード
LLM呼び出しツール使用ごとに1回全ツールで1回
レイテンシN × モデル往復1 × モデル往復 + μs実行
コストN × 入出力トークン1 × 入出力トークン
ロジックLLMが段階的に推論LLMがロジックを一度に記述
制御フローなし(逐次のみ)ループ、条件分岐、変数
エラーハンドリングLLMが各失敗に反応Pythonのtry/except
セキュリティ✅(ツールはGo関数)✅(WASMサンドボックス + 独自コールバック)