MastraEditor 類別
MastraEditor 類別用於設定 Editor 系統。將它傳給 Mastra constructor,即可啟用 prompt block、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(),
})
Constructor 參數Constructor 參數 的直接連結
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 BuilderAgent 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() factory 建立的 Agent。匯入並呼叫 factory,然後在 Mastra 實例的 agents 下註冊傳回的 Agent:
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 subpath 在執行階段受 Mastra Enterprise Edition 授權限制。
完整設定清單請參閱 Agent Builder 概覽。
NamespaceNamespace 的直接連結
Editor 提供 namespace 來管理不同 entity 類型。你可在任何 Mastra 實例透過 mastra.getEditor() 存取它們,並在應用程式代碼中直接呼叫 CRUD 方法;亦可使用在內部呼叫這些方法的 Mastra 伺服器 route。
所有 namespace 都擴充共用的 CRUD 基礎類別,因此會提供相同的 create、getById、update、delete、list、listResolved 及 clearCache 方法。以下各 namespace 的屬性表亦會記錄任何額外方法。
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 namespace 範例Agent namespace 範例 的直接連結
為現有以代碼定義的 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 傳回已註冊的 processor Provider。
getProcessorProviders()getprocessorproviders 的直接連結
傳回所有已註冊的 processor Provider。
getFilesystemProviders()getfilesystemproviders 的直接連結
傳回所有已註冊的檔案系統 Provider。
getSandboxProviders()getsandboxproviders 的直接連結
傳回所有已註冊的 Sandbox Provider。
getBlobStoreProviders()getblobstoreproviders 的直接連結
傳回所有已註冊的 blob store Provider。
來源來源 的直接連結
getSource()getsource 的直接連結
傳回已配置的來源('code' 或 'db');如果建立 Editor 時未明確指定 source,則傳回 undefined。
const source = mastra.getEditor()?.getSource()
傳回:'code' | 'db' | undefined
省略 source 時,即使 getSource() 傳回 undefined,Editor 仍會使用已配置的資料庫儲存。儲存工作流程請參閱 Editor 儲存選項,啟用及 Git 歷史行為則請參閱代碼來源版本控制。