メインコンテンツへ移動

MastraEditor クラス

MastraEditor クラスは Editor システムをセットアップします。Mastra コンストラクターに渡すと、Prompt Block、Agent コードのオーバーライド、バージョニング、Tool Provider などの Editor 機能が有効になります。

Editor の概要については、Editor を参照してください。

使用例
使用例への直接リンク

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { MastraEditor } from '@mastra/editor'

export const mastra = new Mastra({
agents: {/* your agents */},
editor: new MastraEditor(),
})

コンストラクターのパラメーター
コンストラクターのパラメーターへの直接リンク

logger?:

Logger
Logger インスタンス。設定されていない場合は、Mastra インスタンスの Logger にフォールバックします。

toolProviders?:

Record<string, ToolProvider>
= {}
ID をキーとする連携 Tool Provider(Composio や Arcade など)。Editor を介して追加されたサードパーティ Tool を Agent が使用できるようにします。

processorProviders?:

Record<string, ProcessorProvider>
= {}
構成可能な入出力処理(モデレーションやトークン制限など)の Processor Provider。組み込み Provider は常に含まれます。

filesystems?:

Record<string, FilesystemProvider>
= {}
ファイルアクセス用の Filesystem Provider(S3 や GCS など)。ローカル Filesystem Provider は常に含まれます。

sandboxes?:

Record<string, SandboxProvider>
= {}
コード実行用の Sandbox Provider(E2B など)。ローカル Sandbox Provider は常に含まれます。

blobStores?:

Record<string, BlobStoreProvider>
= {}
バイナリデータ用の Blob Storage Provider(S3 など)。Provider が指定されていない場合は、Mastra ストレージの Blob Store にフォールバックします。

browsers?:

Record<string, BrowserProvider>
= {}
Agent のブラウザーアクセス用の Browser Provider(Stagehand など)。組み込み Provider はないため、builder.features.agent.browser を有効にする場合は必須です。Provider インターフェースについては BrowserProvider リファレンスを参照してください。

builder?:

AgentBuilderOptions
Agent Builder の構成。AgentBuilderOptions リファレンスを参照してください。Builder を無効にするには省略するか、enabled: false を設定します。

source?:

'code' | 'db'
= 'db'
Agent のオーバーライドを保存する場所。'db' では、オーバーライドは構成済みのストレージバックエンドに保存され、Studio には保存と公開のフローが表示されます。'code' では、オーバーライドは Agent ごとの JSON ファイルとしてディスク上に保存され(ローカル FilesystemStore を経由)、Studio にはファイルシステム操作が表示されます。違いについては、Editor のストレージオプションを参照してください。

codePath?:

string
= './mastra/editor/'
'code' ソースが Agent ごとの JSON ファイルに使用するディレクトリ。source が 'code' でない場合は無視されます。

Provider インターフェース
Provider インターフェースへの直接リンク

上記の各 Provider フィールドは、Provider ID をキーとするレコードを受け取ります。実装の形式については、各 Provider のリファレンスページを参照してください。

Agent Builder
Agent Builderへの直接リンク

builder フィールドは、保存済み Agent を作成・編集するためのブラウザーベース UI、Agent Builder を有効にします。以下を参照してください。

Builder Agent の登録
Builder Agent の登録への直接リンク

Builder UI は、createBuilderAgent() ファクトリーによって作成された Agent に対して動作します。このファクトリーは @mastra/editor/ee から提供されます。ファクトリーをインポートして呼び出し、返された 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 の概要を参照してください。

Namespace
Namespaceへの直接リンク

Editor は、さまざまなエンティティ型を管理する Namespace を公開します。任意の Mastra インスタンスから mastra.getEditor() でアクセスし、アプリケーションコードで CRUD メソッドを直接呼び出すか、内部でそれらを使用する Mastra サーバールートを利用します。

すべての Namespace は共通の CRUD 基底クラスを拡張しているため、同じ creategetByIdupdatedeletelistlistResolvedclearCache メソッドを公開します。以下の Namespace 固有のプロパティテーブルには、追加のメソッドも記載されています。

agent:

EditorAgentNamespace
保存済み Agent の CRUD 操作とバージョン管理。保存済みのオーバーライドをコード定義の Agent に適用します。
EditorAgentNamespace

create:

(input: StorageCreateAgentInput) => Promise<Agent>
新しい保存済み Agent を作成し、ハイドレートされた Agent インスタンスを返します。id、authorId、metadata、および初期スナップショット(name、description、instructions、model、tools、memory など)を受け取ります。

getById:

(id: string, options?: GetByIdOptions) => Promise<Agent | null>
保存済み Agent のハイドレートされた Agent インスタンスを返します。特定のバージョンを対象にするには、versionId、versionNumber、または status("draft" | "published" | "archived")を含む options を渡します。デフォルトバージョンのリクエストはキャッシュされます。

update:

(input: StorageUpdateAgentInput) => Promise<Agent>
保存済み Agent を部分的に更新します。指定されたスナップショットフィールドからバージョンを作成し、activeVersionId に割り当てて、キャッシュを無効化します。memory を無効にするには null を設定します。

delete:

(id: string) => Promise<void>
保存済み Agent を削除し、Mastra のランタイムレジストリから除去します。

list:

(args?: StorageListAgentsInput) => Promise<StorageListAgentsOutput>
任意の pagination、orderBy、authorId、metadata フィルターを使用して、保存済み Agent を一覧表示します。未処理の保存済みスナップショットを返します。

listResolved:

(args?: StorageListAgentsInput) => Promise<StorageListAgentsResolvedOutput>
list と同じですが、参照を解決した完全な構成を返します。

applyStoredOverrides:

(agent: Agent, options?: { versionId?: string; status?: "draft" | "published" }) => Promise<Agent>
コード定義の Agent をその場で変更し、保存済みのオーバーライド(instructions、tools、variables)を適用します。mastra.getAgent() が内部で呼び出すため、直接呼び出すことはほとんどありません。

clone:

(agent: Agent, options: { newId: string; newName?: string; metadata?: Record<string, unknown>; authorId?: string; requestContext?: RequestContext; }) => Promise<Agent>
既存の Agent を複製して、新しい保存済み Agent を作成します。

clearCache:

(agentId?: string) => void
1 つまたはすべての Agent のメモリ内キャッシュを消去します。変更後に自動的に呼び出されます。

prompt:

EditorPromptNamespace
Prompt Block の CRUD 操作。ドラフトの内容を使って Instruction Block を解決する preview メソッドを含みます。
EditorPromptNamespace

create:

(input: StorageCreatePromptBlockInput) => Promise<StorageResolvedPromptBlockType>
新しい保存済み Prompt Block を作成します。id、authorId、metadata、および初期スナップショット(name、description、content、rules、requestContextSchema)を受け取ります。

getById:

(id: string, options?: GetByIdOptions) => Promise<StorageResolvedPromptBlockType | null>
解決済みの Prompt Block を返します。特定のバージョンまたは status を対象にするには options を渡します。

update:

(input: StorageUpdatePromptBlockInput) => Promise<StorageResolvedPromptBlockType>
保存済み Prompt Block を部分的に更新します。指定されたスナップショットフィールドを持つ新しいドラフトバージョンを作成します。

delete:

(id: string) => Promise<void>
保存済み Prompt Block を削除し、Mastra のランタイムレジストリから除去します。

list:

(args?: StorageListPromptBlocksInput) => Promise<StorageListPromptBlocksOutput>
任意の pagination、orderBy、authorId、metadata、status フィルターを使用して、保存済み Prompt Block を一覧表示します。

listResolved:

(args?: StorageListPromptBlocksInput) => Promise<StorageListPromptBlocksResolvedOutput>
list と同じですが、完全に解決された Prompt Block の内容を返します。

preview:

(blocks: AgentInstructionBlock[], context: Record<string, unknown>) => Promise<string>
Instruction Block の配列を context に照らして解決し、テンプレート変数をレンダリングして表示条件を評価します。参照される Prompt Block のドラフト内容も含まれます。

clearCache:

(id?: string) => void
1 つまたはすべての Prompt Block のメモリ内キャッシュを消去します。

mcp:

EditorMCPNamespace
保存済み MCP Client 構成の CRUD 操作。
EditorMCPNamespace

create:

(input: StorageCreateMCPClientInput) => Promise<MCPClient>
新しい保存済み MCP Client を作成します。id、authorId、metadata、および初期スナップショット(servers、tool filtering)を受け取ります。

getById:

(id: string, options?: GetByIdOptions) => Promise<MCPClient | null>
保存済み MCP Client のハイドレートされた MCPClient インスタンスを返します。

update:

(input: StorageUpdateMCPClientInput) => Promise<MCPClient>
保存済み MCP Client を部分的に更新し、キャッシュを無効化します。

delete:

(id: string) => Promise<void>
保存済み MCP Client を削除し、Mastra のランタイムレジストリから除去します。

list:

(args?: StorageListMCPClientsInput) => Promise<StorageListMCPClientsOutput>
任意の pagination とフィルターを使用して、保存済み MCP Client を一覧表示します。

listResolved:

(args?: StorageListMCPClientsInput) => Promise<StorageListMCPClientsResolvedOutput>
list と同じですが、完全に解決された MCP Client 構成を返します。

clearCache:

(id?: string) => void
1 つまたはすべての MCP Client のメモリ内キャッシュを消去します。

mcpServer:

EditorMCPServerNamespace
MCP Server 構成の CRUD 操作。
EditorMCPServerNamespace

create:

(input: StorageCreateMCPServerInput) => Promise<MCPServerBase>
新しい保存済み MCP Server 構成を作成し、ハイドレートされた Server インスタンスを返します。

getById:

(id: string, options?: GetByIdOptions) => Promise<MCPServerBase | null>
指定された ID のハイドレートされた MCP Server を返します。

update:

(input: StorageUpdateMCPServerInput) => Promise<MCPServerBase>
保存済み MCP Server 構成を部分的に更新します。

delete:

(id: string) => Promise<void>
保存済み MCP Server 構成を削除します。

list:

(args?: StorageListMCPServersInput) => Promise<StorageListMCPServersOutput>
保存済み MCP Server 構成を一覧表示します。

listResolved:

(args?: StorageListMCPServersInput) => Promise<StorageListMCPServersResolvedOutput>
list と同じですが、完全に解決された Server 構成を返します。

clearCache:

(id?: string) => void
1 つまたはすべての MCP Server のメモリ内キャッシュを消去します。

scorer:

EditorScorerNamespace
Scorer 構成の CRUD 操作。
EditorScorerNamespace

create:

(input: StorageCreateScorerInput) => Promise<MastraScorer>
新しい保存済み Scorer を作成し、ハイドレートされた MastraScorer インスタンスを返します。

getById:

(id: string, options?: GetByIdOptions) => Promise<MastraScorer | null>
指定された ID のハイドレートされた Scorer を返します。

update:

(input: StorageUpdateScorerInput) => Promise<MastraScorer>
保存済み Scorer を部分的に更新します。

delete:

(id: string) => Promise<void>
保存済み Scorer を削除し、Mastra のランタイムレジストリから除去します。

list:

(args?: StorageListScorersInput) => Promise<StorageListScorersOutput>
任意の pagination とフィルターを使用して、保存済み Scorer を一覧表示します。

listResolved:

(args?: StorageListScorersInput) => Promise<StorageListScorersResolvedOutput>
list と同じですが、完全に解決された Scorer 構成を返します。

clearCache:

(id?: string) => void
1 つまたはすべての Scorer のメモリ内キャッシュを消去します。

Agent Namespace の例
Agent Namespace の例への直接リンク

既存のコード定義 Agent に対する保存済みオーバーライドを作成します。

src/scripts/seed-agent.ts
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への直接リンク

登録済みの Tool Provider を ID で返します。

const composio = mastra.getEditor()?.getToolProvider('composio')

getToolProviders()
gettoolprovidersへの直接リンク

登録済みのすべての Tool Provider を Record<string, ToolProvider> として返します。

getProcessorProvider(id)
getprocessorprovideridへの直接リンク

登録済みの Processor Provider を ID で返します。

getProcessorProviders()
getprocessorprovidersへの直接リンク

登録済みのすべての Processor Provider を返します。

getFilesystemProviders()
getfilesystemprovidersへの直接リンク

登録済みのすべての Filesystem Provider を返します。

getSandboxProviders()
getsandboxprovidersへの直接リンク

登録済みのすべての Sandbox Provider を返します。

getBlobStoreProviders()
getblobstoreprovidersへの直接リンク

登録済みのすべての Blob Store Provider を返します。

Source
Sourceへの直接リンク

getSource()
getsourceへの直接リンク

構成済みの source('code' または 'db')を返します。Editor を明示的な source なしで構築した場合は undefined を返します。明示的な source は source で指定します。

const source = mastra.getEditor()?.getSource()

戻り値: 'code' | 'db' | undefined

source を省略した場合、getSource()undefined を返しても、Editor は構成済みのデータベースストレージを使用します。ストレージのワークフローについては Editor のストレージオプション、有効化と Git 履歴の動作については code source のバージョニングを参照してください。