mountAgentControllerOnMastra()
beta
@mastra/code-sdk 套件仍處於實驗階段,次要版本可能包含破壞性變更。
mountAgentControllerOnMastra() 函式會建立 Mastra Code Agent controller(即 mastracode CLI 背後的 Coding Agent,包含其模式、Tool、Memory 與 thread 管理),並將其註冊至伺服器擁有的 Mastra 執行個體。你可以用它將 Mastra Code Agent 提供給自己的 UI(網頁應用程式、編輯器、bot):每個使用者端都會透過傳回的 AgentController,建立或繼續各自隔離的 session。
若要自行建構 Mastra 執行個體(例如在可部署的進入點檔案中),請使用相同套件中的 prepareAgentControllerMount();它會傳回建構函式引數與 finalize() callback。
使用範例「使用範例」的直接連結
src/mastra/index.ts
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 掛載至已託管其他 primitive 的 Mastra 執行個體:
import { Mastra } from '@mastra/core/mastra'
import { mountAgentControllerOnMastra } from '@mastra/code-sdk'
const mastra = new Mastra({/* ... */})
const { controller } = await mountAgentControllerOnMastra({ mastra })
參數「參數」的直接連結
cwd?:
string
= process.cwd()
用於偵測專案的工作目錄。
mastra?:
Mastra
要掛載至的現有 Mastra 執行個體。省略時,會建立擁有 controller storage 的 Mastra。
controllerId?:
string
在 Mastra 執行個體上註冊 controller 時使用的 Id。
modes?:
AgentControllerMode[]
= build/plan/fast
覆寫 Agent 模式(模型 ID、色彩及有哪些模式)。
subagents?:
AgentControllerSubagent[]
= explore/plan/execute
覆寫或擴充 subagent 定義。
extraTools?:
Record<string, ToolAction> | (ctx) => Record<string, ToolAction>
合併至動態 Tool 集合的額外 Tool。
postToolObserver?:
(context: ToolAfterHookContext) => void | Promise<void>
觀察已完成的 Tool 呼叫,但不取代 Tool,也不變更 hook manager 的行為。observer 錯誤會寫入記錄,不會讓成功的 Tool 呼叫失敗。
inputProcessors?:
InputProcessor[]
前置於 Mastra Code 必要安全性及相容性 processor 的無狀態輸入 processor。自訂 processor 會擴充 pipeline,但無法取代內建 processor。
disabledTools?:
string[]
提供給模型前,從動態 Tool 集合移除的 Tool。
storage?:
StorageConfig
用來取代自動偵測預設值的自訂 storage 設定。
workspace?:
AgentControllerConfig["workspace"]
= local filesystem + local sandbox based on the detected project
覆寫 Workspace。
configDir?:
string
= '.mastracode'
覆寫所有專案層級與全域設定路徑(MCP、hook、指令、database、Skill、Agent instructions)所使用的設定目錄名稱。
mcpServers?:
Record<string, McpServerConfig>
程式化 MCP 伺服器設定,會與檔案式設定合併並加以覆寫。
buildApiRoutes?:
(deps: { controller, authStorage }) => ApiRoute[]
在建構的 Mastra 上註冊其他 API route。提供
mastra 時會忽略此欄位。buildServerConfig?:
(deps: { controller, authStorage }) => ServerConfig
合併至所建構 Mastra 的其他伺服器設定(middleware、CORS)。提供
mastra 時會忽略此欄位。傳回值「傳回值」的直接連結
mastra:
Mastra
掛載 controller 的 Mastra 執行個體(新建或傳入)。
controller:
AgentController
已初始化的 Mastra Code Agent controller。使用
controller.createSession() 建立 session。authStorage:
AuthStorage
內建模型 Gateway 使用的認證 storage。