Mastra クラス
Mastra
クラスは、あらゆる Mastra アプリケーションにおける中核的なオーケストレーターで、エージェント、ワークフロー、ストレージ、ログ記録、テレメトリーなどを管理します。通常は、アプリケーション全体を統括するために Mastra
のインスタンスを1つだけ作成します。
Mastra
は最上位のレジストリと捉えてください。
- integrations を登録すると、agents、workflows、tools のいずれからでも利用できるようになります。
- tools は
Mastra
に直接登録するのではなく、エージェントに関連付けられ、自動的に検出されます。
使用例
src/mastra/index.ts
import { Mastra } from '@mastra/core/mastra';
import { PinoLogger } from '@mastra/loggers';
import { LibSQLStore } from '@mastra/libsql';
import { weatherWorkflow } from './workflows/weather-workflow';
import { weatherAgent } from './agents/weather-agent';
export const mastra = new Mastra({
workflows: { weatherWorkflow },
agents: { weatherAgent },
storage: new LibSQLStore({
url: ":memory:",
}),
logger: new PinoLogger({
name: 'Mastra',
level: 'info',
}),
});
コンストラクターのパラメーター
agents?:
Agent[]
= []
登録する Agent インスタンスの配列
tools?:
Record<string, ToolApi>
= {}
登録するカスタムツール。キーがツール名、値がツール関数のキーと値のペアとして構成されます。
storage?:
MastraStorage
データの永続化に使用するストレージエンジンのインスタンス
vectors?:
Record<string, MastraVector>
ベクトルストアのインスタンス。セマンティック検索やベクトルベースのツール(例:Pinecone、PgVector、Qdrant)に使用します。
logger?:
Logger
= INFO レベルのコンソールロガー
new PinoLogger() で作成された Logger インスタンス
idGenerator?:
() => string
カスタム ID 生成関数。エージェント、ワークフロー、メモリ、その他のコンポーネントで一意の識別子を生成するために使用します。
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', 'PATCH', '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
= { externals: [], sourcemap: false, transpilePackages: [] }
externals、sourcemap、transpilePackages のオプションを備えたアセットバンドラーの設定。