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"
}
}