MastraEditor 类
MastraEditor 类用于设置 Editor 系统。将其传递给 Mastra 构造函数,即可启用 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(),
})
构造函数参数构造函数参数的直接链接
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 的 browser UI。请参阅:
- Agent Builder 概览:概念和入门。
- AgentBuilderOptions:完整的选项 schema。
- BuilderAgentDefaults:管理员为新 Agent 固定的默认值。
- builder.configuration.agent.models:模型 allowlist 和默认模型。
注册 Builder Agent注册 Builder Agent的直接链接
Builder UI 使用由 @mastra/editor/ee 中的 createBuilderAgent() 工厂创建的 Agent。导入并调用该工厂,然后在 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 子路径在运行时受 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 对应的已注册 Processor Provider。
getProcessorProviders()getprocessorproviders的直接链接
返回所有已注册 Processor Provider。
getFilesystemProviders()getfilesystemproviders的直接链接
返回所有已注册 filesystem 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 历史记录行为,请参阅代码来源版本控制。