Skip to Content
リファレンスコアMastra Class

Mastraクラス

Mastraクラスは、あらゆるMastraアプリケーションにおける中心的なオーケストレーターです。エージェント、ツール、ワークフロー、ストレージ、ロギング、テレメトリーなどの管理を担当します。通常、アプリケーションにはMastraクラスのインスタンスを1つ作成します。

インポート

import { Mastra } from "@mastra/core";

コンストラクタ

指定された設定で新しい Mastra インスタンスを作成します。

constructor(config?: Config);

設定(Config オブジェクト)

コンストラクタは、動作をカスタマイズし、さまざまなMastraコンポーネントを統合するためのオプションの Config オブジェクトを受け取ります。Config オブジェクトのすべてのプロパティは省略可能です。

agents?:

Agent[]
= []
登録するAgentインスタンスの配列

tools?:

Record<string, ToolApi>
= {}
登録するカスタムツール。ツール名をキー、ツール関数を値としたキー・バリューのペアで構成されます。

storage?:

MastraStorage
データを永続化するためのストレージエンジンインスタンス

vectors?:

Record<string, MastraVector>
ベクトルストアインスタンス。セマンティック検索やベクトルベースのツール(例:Pinecone、PgVector、Qdrant)に使用されます。

logger?:

Logger
= INFOレベルのコンソールロガー
new PinoLogger() で作成されたロガーインスタンス

workflows?:

Record<string, Workflow>
= {}
登録するワークフロー。ワークフロー名をキー、ワークフローインスタンスを値としたキー・バリューのペアで構成されます。

tts?:

Record<string, MastraTTS>
Text-To-Speechサービスを登録するためのオブジェクト。

telemetry?:

OtelConfig
OpenTelemetry連携のための設定。

deployer?:

MastraDeployer
デプロイ管理用のMastraDeployerインスタンス。

server?:

ServerConfig
= { port: 4111, host: localhost, cors: { origin: '*', allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], allowHeaders: ['Content-Type', 'Authorization', 'x-mastra-client-type'], exposeHeaders: ['Content-Length', 'X-Requested-With'], credentials: false } }
ポート、ホスト、タイムアウト、APIルート、ミドルウェア、CORS設定、Swagger UIのビルドオプション、APIリクエストのロギング、OpenAPIドキュメントなどを含むサーバー設定。

mcpServers?:

Record<string, MCPServerBase>
キーが一意のサーバー識別子、値がMCPServerまたはMCPServerBaseを継承したクラスのインスタンスとなるオブジェクト。MastraがこれらのMCPサーバーを認識し、管理できるようにします。

bundler:

BundlerConfig
アセットバンドラーの設定。

初期化

Mastraクラスは通常、src/mastra/index.tsファイルで初期化されます:

import { Mastra } from "@mastra/core"; import { PinoLogger } from "@mastra/loggers"; // Basic initialization export const mastra = new Mastra({}); // Full initialization with all options export const mastra = new Mastra({ agents: {}, workflows: [], integrations: [], logger: new PinoLogger({ name: "My Project", level: "info", }), storage: {}, tools: {}, vectors: {}, mcpServers: {}, });

Mastraクラスは、トップレベルのレジストリと考えることができます。ツールをMastraに登録すると、登録されたエージェントやワークフローがそれらを使用できるようになります。統合機能をMastraに登録すると、エージェント、ワークフロー、ツールがそれらを使用できるようになります。

メソッド

getAgent(name):

Agent
IDでエージェントインスタンスを返します。エージェントが見つからない場合は例外をスローします。

getAgents():

Record<string, Agent>
登録されているすべてのエージェントをキーと値のオブジェクトとして返します。

getWorkflow(id, { serialized }):

Workflow
IDでワークフローインスタンスを返します。serializedオプション(デフォルト: false)を指定すると、名前のみの簡易表現を返します。

getWorkflows({ serialized }):

Record<string, Workflow>
登録されているすべてのワークフローを返します。serializedオプション(デフォルト: false)を指定すると、簡易表現を返します。

getVector(name):

MastraVector
名前でベクトルストアインスタンスを返します。見つからない場合は例外をスローします。

getVectors():

Record<string, MastraVector>
登録されているすべてのベクトルストアをキーと値のオブジェクトとして返します。

getDeployer():

MastraDeployer | undefined
設定されているデプロイヤーインスタンスを返します(存在する場合)。

getStorage():

MastraStorage | undefined
設定されているストレージインスタンスを返します。

getMemory():

MastraMemory | undefined
設定されているメモリインスタンスを返します。注意: これは非推奨です。メモリはエージェントに直接追加してください。

getServer():

ServerConfig | undefined
ポート、タイムアウト、APIルート、ミドルウェア、CORS設定、ビルドオプションなどを含むサーバー設定を返します。

setStorage(storage):

void
Mastraインスタンスのストレージインスタンスを設定します。

setLogger({ logger }):

void
すべてのコンポーネント(エージェント、ワークフローなど)のロガーを設定します。

setTelemetry(telemetry):

void
すべてのコンポーネントのテレメトリー設定を行います。

getLogger():

Logger
設定されているロガーインスタンスを取得します。

getTelemetry():

Telemetry | undefined
設定されているテレメトリーインスタンスを取得します。

getLogsByRunId({ runId, transportId }):

Promise<any>
特定のRun IDおよびTransport IDのログを取得します。

getLogs(transportId):

Promise<any>
特定のTransport IDのすべてのログを取得します。

getMCPServers():

Record<string, MCPServerBase> | undefined
登録されているすべてのMCPサーバーインスタンスを取得します。

エラー処理

Mastra クラスのメソッドは型付きエラーをスローし、キャッチすることができます。

try { const tool = mastra.getTool("nonexistentTool"); } catch (error) { if (error instanceof Error) { console.log(error.message); // "Tool with name nonexistentTool not found" } }