> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # IsolatedVmCodeModeTransport > **Beta:** 此功能目前為 beta 版。在 API 穩定之前,可能會出現未提升主要版本號的破壞性變更。 `IsolatedVmCodeModeTransport` 類別會在行程內的 V8 isolate 中執行 [Code mode](https://mastra.zisheng.pro/zh-TW/docs/agents/code-mode) 程式,底層採用 [isolated-vm](https://github.com/laverdet/isolated-vm)。isolate 本身就是執行邊界,因此不需要 Workspace Sandbox:程式無法存取檔案系統、網路、行程或模組。程式唯一能使用的功能是 `external_*` 函式,這些函式會回呼主機上的實際 Tool。 相較於預設的 `StdioCodeModeTransport`,此 transport 不會建立行程,也不會寫入暫存檔案,因此很適合無法使用作業系統層級Sandbox隔離的 serverless 與多租戶主機。 ## 安裝 **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 會使行程當機。缺少此旗標時,constructor 會擲回錯誤。啟動伺服器時請傳入此旗標,或透過 `NODE_OPTIONS` 設定: ```bash NODE_OPTIONS=--no-node-snapshot npm run dev ``` ## 用法 將 transport 作為第二個引數傳入 `createCodeMode()`。不需要 `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 }), ) ``` ## Constructor 參數 **options** (`IsolatedVmCodeModeTransportOptions`): isolate 的設定。 **options.memoryLimitMb** (`number`): V8 isolate 的 heap 上限(MiB)。程式超過此上限時會終止,且 Tool 會回傳錯誤結果。 ## 運作方式 每次執行都會建立一個擁有獨立 heap 的全新 isolate。TypeScript 會先在主機上由 esbuild 移除型別,再於 isolate 內執行程式。每次 `external_*` 呼叫跨越 isolate 邊界時,雙向資料都會使用 JSON 字串,因此主機物件的參照不會洩漏到模型撰寫的程式碼中。允許清單、Tool 驗證、request context 與 tracing 都會在主機上執行,與其他 transport 相同。 在 `createCodeMode()` 設定的 `timeout` 同時適用於非同步卡住與同步無限迴圈;每次執行後都會銷毀 isolate。 ## 相關內容 - [Code mode](https://mastra.zisheng.pro/zh-TW/docs/agents/code-mode) - [createCodeMode() 參考文件](https://mastra.zisheng.pro/zh-TW/reference/tools/create-code-mode)