> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # mountAgentControllerOnMastra() > **Beta:** `@mastra/code-sdk` パッケージは実験的機能であり、マイナーバージョンで破壊的変更が行われる可能性があります。 `mountAgentControllerOnMastra()` 関数は、Mastra Code Agent Controller([`mastracode`](https://www.npmjs.com/package/mastracode) CLI の基盤となる Coding Agent で、モード、Tool、Memory、スレッド管理を備えています)を構築し、サーバーが所有する [Mastra](https://mastra.zisheng.pro/ja/reference/core/mastra-class) インスタンスに登録します。Mastra Code Agent を独自の UI(Web アプリ、エディター、Bot)から利用できるようにするために使用します。各クライアントは、返された [`AgentController`](https://mastra.zisheng.pro/ja/reference/agent-controller/agent-controller-class) を通じて、独立したセッションを作成または再開します。 (デプロイ可能なエントリーファイル内などで)`Mastra` インスタンスを自分で構築するには、同じパッケージの `prepareAgentControllerMount()` を使用します。この関数はコンストラクター引数と `finalize()` コールバックを返します。 ## 使用例 ```typescript import { mountAgentControllerOnMastra } from '@mastra/code-sdk' const { mastra, controller } = await mountAgentControllerOnMastra({ cwd: process.cwd(), }) // Each client drives its own session const session = await controller.createSession({ resourceId: 'user-123' }) ``` すでに他のプリミティブをホストしている Mastra インスタンスに Controller をマウントするには、既存の `mastra` を渡します。 ```typescript import { Mastra } from '@mastra/core/mastra' import { mountAgentControllerOnMastra } from '@mastra/code-sdk' const mastra = new Mastra({/* ... */}) const { controller } = await mountAgentControllerOnMastra({ mastra }) ``` ## パラメーター **cwd** (`string`): プロジェクト検出に使用する作業ディレクトリ。 (Default: `process.cwd()`) **mastra** (`Mastra`): マウント先となる既存の Mastra インスタンス。省略すると、Controller のストレージを所有する Mastra が作成されます。 **controllerId** (`string`): Mastra インスタンスに Controller を登録する際の ID。 **modes** (`AgentControllerMode[]`): Agent のモード(モデル ID、色、存在するモード)をオーバーライドします。 (Default: `build/plan/fast`) **subagents** (`AgentControllerSubagent[]`): サブ Agent の定義をオーバーライドまたは拡張します。 (Default: `explore/plan/execute`) **extraTools** (`Record | (ctx) => Record`): 動的な Tool セットにマージする追加 Tool。 **postToolObserver** (`(context: ToolAfterHookContext) => void | Promise`): Tool を置き換えたり Hook Manager の動作を変更したりせずに、完了した Tool 呼び出しを監視します。Observer のエラーはログに記録され、成功した Tool 呼び出しを失敗させることはありません。 **inputProcessors** (`InputProcessor[]`): Mastra Code に必須の安全性および互換性 Processor より前に追加される、ステートレスな入力 Processor。カスタム Processor はパイプラインを拡張しますが、組み込み Processor を置き換えることはできません。 **disabledTools** (`string[]`): モデルに公開する前に動的な Tool セットから削除する Tool。 **storage** (`StorageConfig`): 自動検出されるデフォルトの代わりに使用するカスタムストレージ設定。 **workspace** (`AgentControllerConfig["workspace"]`): Workspace をオーバーライドします。 (Default: `local filesystem + local sandbox based on the detected project`) **configDir** (`string`): プロジェクトレベルおよびグローバルのすべての設定パス(MCP、Hook、コマンド、データベース、Skill、Agent の指示)に使用する設定ディレクトリ名をオーバーライドします。 (Default: `'.mastracode'`) **mcpServers** (`Record`): プログラムで指定する MCP サーバー設定。ファイルベースの設定とマージされ、同じ項目は上書きします。 **buildApiRoutes** (`(deps: { controller, authStorage }) => ApiRoute[]`): 構築した Mastra に登録する追加の API ルート。mastra を指定した場合は無視されます。 **buildServerConfig** (`(deps: { controller, authStorage }) => ServerConfig`): 構築した Mastra に組み込む追加のサーバー設定(ミドルウェア、CORS)。mastra を指定した場合は無視されます。 ## 戻り値 **mastra** (`Mastra`): Controller のマウント先となる Mastra インスタンス(作成されたもの、または渡されたもの)。 **controller** (`AgentController`): 初期化された Mastra Code Agent Controller。controller.createSession() でセッションを作成します。 **authStorage** (`AuthStorage`): 組み込みのモデル Gateway が使用する認証情報ストレージ。 ## 関連項目 - [AgentController クラス](https://mastra.zisheng.pro/ja/reference/agent-controller/agent-controller-class) - [Session クラス](https://mastra.zisheng.pro/ja/reference/agent-controller/session)