MastraEditor 類別
MastraEditor 類別會設定 Editor 系統。將它傳給 Mastra 建構函式,即可啟用提示詞區塊、Agent 程式碼覆寫、版本管理與 Tool Provider 等 Editor 功能。
Editor 功能簡介請參閱 Editor。
使用範例「使用範例」的直接連結
import { Mastra } from '@mastra/core'
import { MastraEditor } from '@mastra/editor'
export const mastra = new Mastra({
agents: {/* your agents */},
editor: new MastraEditor(),
})
建構函式參數「建構函式參數」的直接連結
logger?:
toolProviders?:
processorProviders?:
filesystems?:
sandboxes?:
blobStores?:
browsers?:
builder.features.agent.browser 時必須提供。Provider 介面請參閱 BrowserProvider 參考文件。builder?:
enabled: false 可停用 Builder。source?:
codePath?:
Provider 介面「Provider 介面」的直接連結
上述各 Provider 欄位都接受以 Provider ID 為鍵的記錄。實作的資料結構請參閱各 Provider 的參考頁面:
Agent Builder「Agent Builder」的直接連結
builder 欄位會啟用 Agent Builder,這是用於建立及編輯已儲存 Agent 的瀏覽器 UI。請參閱:
- Agent Builder 概覽:概念與開始使用。
- AgentBuilderOptions:完整選項 schema。
- BuilderAgentDefaults:管理員為新 Agent 固定的預設值。
- builder.configuration.agent.models:模型允許清單與預設模型。
註冊 Builder Agent「註冊 Builder Agent」的直接連結
Builder UI 會使用由 @mastra/editor/ee 的 createBuilderAgent() 工廠函式建立的 Agent。匯入並呼叫該工廠函式,再將傳回的 Agent 註冊於 Mastra 執行個體的 agents 下:
import { Mastra } from '@mastra/core'
import { MastraEditor } from '@mastra/editor'
import { createBuilderAgent } from '@mastra/editor/ee'
export const mastra = new Mastra({
agents: { builderAgent: createBuilderAgent() },
editor: new MastraEditor({
builder: { enabled: true },
}),
})
鍵名(builderAgent)是慣例,可使用任何鍵名。@mastra/editor/ee 子路徑會在執行階段受到 Mastra Enterprise Edition 授權限制。
完整設定檢查清單請參閱 Agent Builder 概覽。
命名空間「命名空間」的直接連結
Editor 會公開多個命名空間,以管理不同的實體類型。可從任何 Mastra 執行個體透過 mastra.getEditor() 存取,並在應用程式碼中直接呼叫 CRUD 方法;也可使用內部透過這些方法運作的 Mastra 伺服器路由。
所有命名空間都會擴充共用的 CRUD 基底類別,因此公開相同的 create、getById、update、delete、list、listResolved 與 clearCache 方法。下方各命名空間的屬性表也記載所有其他方法。
agent:
create:
getById:
update:
delete:
list:
listResolved:
applyStoredOverrides:
clone:
clearCache:
prompt:
create:
getById:
update:
delete:
list:
listResolved:
preview:
clearCache:
mcp:
create:
getById:
update:
delete:
list:
listResolved:
clearCache:
mcpServer:
create:
getById:
update:
delete:
list:
listResolved:
clearCache:
scorer:
create:
getById:
update:
delete:
list:
listResolved:
clearCache:
Agent 命名空間範例「Agent 命名空間範例」的直接連結
為現有且由程式碼定義的 Agent 建立已儲存的覆寫:
import { mastra } from '../mastra'
const editor = mastra.getEditor()!
await editor.agent.create({
id: 'support-agent',
instructions: 'You are a friendly support agent for Acme.',
tools: {
search_kb: { description: 'Search the Acme knowledge base' },
},
})
方法「方法」的直接連結
存取 Provider「存取 Provider」的直接連結
getToolProvider(id)「gettoolproviderid」的直接連結
依 ID 傳回已註冊的 Tool Provider。
const composio = mastra.getEditor()?.getToolProvider('composio')
getToolProviders()「gettoolproviders」的直接連結
以 Record<string, ToolProvider> 傳回所有已註冊的 Tool Provider。
getProcessorProvider(id)「getprocessorproviderid」的直接連結
依 ID 傳回已註冊的處理器 Provider。
getProcessorProviders()「getprocessorproviders」的直接連結
傳回所有已註冊的處理器 Provider。
getFilesystemProviders()「getfilesystemproviders」的直接連結
傳回所有已註冊的檔案系統 Provider。
getSandboxProviders()「getsandboxproviders」的直接連結
傳回所有已註冊的 Sandbox Provider。
getBlobStoreProviders()「getblobstoreproviders」的直接連結
傳回所有已註冊的 blob 儲存空間 Provider。
來源「來源」的直接連結
getSource()「getsource」的直接連結
傳回已設定的來源('code' 或 'db');若建立 Editor 時未明確提供 source,則傳回 undefined。
const source = mastra.getEditor()?.getSource()
傳回值:'code' | 'db' | undefined
省略 source 時,即使 getSource() 傳回 undefined,Editor 仍會使用已設定的資料庫儲存空間。儲存工作流程請參閱 Editor 儲存選項,啟用與 Git 歷史記錄行為請參閱程式碼來源的版本管理。