> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # IsolatedVmCodeModeTransport > **Beta:** この機能はベータ版です。API が安定するまでは、メジャーバージョンを上げずに破壊的変更が行われる可能性があります。 `IsolatedVmCodeModeTransport` クラスは、[Code mode](https://mastra.zisheng.pro/ja/docs/agents/code-mode) プログラムを [isolated-vm](https://github.com/laverdet/isolated-vm) を利用したプロセス内の V8 isolate で実行します。isolate が実行境界となるため、Workspace Sandbox は不要です。プログラムからファイルシステム、ネットワーク、プロセス、モジュールにはアクセスできません。利用できる機能は、ホスト上の実際の Tool を呼び出す `external_*` 関数だけです。 デフォルトの `StdioCodeModeTransport` と異なり、この Transport はプロセスを生成せず、一時ファイルも書き込みません。そのため、OS レベルのサンドボックスを利用できないサーバーレス環境やマルチテナントホストに適しています。 ## インストール **npm**: ```bash npm install @mastra/isolated-vm ``` **pnpm**: ```bash pnpm add @mastra/isolated-vm ``` **Yarn**: ```bash yarn add @mastra/isolated-vm ``` **Bun**: ```bash bun add @mastra/isolated-vm ``` `isolated-vm` はネイティブアドオンです。一般的なプラットフォーム向けのビルド済みバイナリが提供されているため、通常は追加のセットアップは必要ありません。対応するビルド済みバイナリがないプラットフォームではソースからのコンパイルに切り替わるため、その場合のみ C++ ツールチェーンが必要です。 Node.js 20 以降では、ホストプロセスを `--no-node-snapshot` フラグ付きで起動する必要があります。このフラグがないと、isolate の作成時にプロセスがクラッシュします。フラグが指定されていない場合、コンストラクターはエラーをスローします。サーバーの起動時にフラグを渡すか、`NODE_OPTIONS` で設定してください。 ```bash NODE_OPTIONS=--no-node-snapshot npm run dev ``` ## 使用方法 Transport を `createCodeMode()` の第2引数として渡します。`sandbox` は不要です。 ```typescript import { createCodeMode } from '@mastra/core/tools' import { IsolatedVmCodeModeTransport } from '@mastra/isolated-vm' const { tool, instructions } = createCodeMode( { tools: { getTopProducts, getProductRatings } }, new IsolatedVmCodeModeTransport({ memoryLimitMb: 128 }), ) ``` ## コンストラクターのパラメーター **options** (`IsolatedVmCodeModeTransportOptions`): isolate の設定。 **options.memoryLimitMb** (`number`): V8 isolate のヒープ上限(MiB)。プログラムが上限を超えると終了し、Tool はエラー結果を返します。 ## 動作の仕組み 実行のたびに、独自のヒープを持つ新しい isolate が作成されます。TypeScript はホスト上で esbuild によって除去され、その後プログラムが isolate 内で評価されます。各 `external_*` 呼び出しでは、双方向とも JSON 文字列として isolate の境界を越えるため、ホストオブジェクトへの参照がモデル作成のコードに漏れることはありません。許可リスト、Tool の検証、Request Context、トレースは、ほかの Transport と同様にすべてホスト上で実行されます。 `createCodeMode()` に設定した `timeout` は、非同期処理の停止と同期処理の無限ループの両方に適用されます。isolate は実行のたびに破棄されます。 ## 関連情報 - [Code mode](https://mastra.zisheng.pro/ja/docs/agents/code-mode) - [createCodeMode() リファレンス](https://mastra.zisheng.pro/ja/reference/tools/create-code-mode)