The Mastra Class
Mastraクラスは、アプリケーションの中心的なエントリーポイントです。エージェント、ワークフロー、サーバーエンドポイントを管理します。
コンストラクターオプション
agents?:
Agent[]
= []
登録するAgentインスタンスの配列
tools?:
Record<string, ToolApi>
= {}
カスタムツールを登録します。ツール名をキー、ツール関数を値としたキー・バリュー形式で構成されます。
storage?:
MastraStorage
データを永続化するためのストレージエンジンインスタンス
vectors?:
Record<string, MastraVector>
ベクトルストアインスタンス。セマンティック検索やベクトルベースのツール(例:Pinecone、PgVector、Qdrant)に使用されます。
logger?:
Logger
= INFOレベルのコンソールロガー
createLogger()で作成されたLoggerインスタンス
workflows?:
Record<string, Workflow>
= {}
登録するワークフロー。ワークフロー名をキー、ワークフローインスタンスを値としたキー・バリュー形式で構成されます。
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ドキュメントなどを含むサーバー設定。
初期化
Mastra クラスは通常、src/mastra/index.ts
ファイルで初期化されます。
import { Mastra } from "@mastra/core";
import { createLogger } from "@mastra/core/logger";
// Basic initialization
export const mastra = new Mastra({});
// Full initialization with all options
export const mastra = new Mastra({
agents: {},
workflows: [],
integrations: [],
logger: createLogger({
name: "My Project",
level: "info",
}),
storage: {},
tools: {},
vectors: {},
});
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のすべてのログを取得します。
エラー処理
Mastra クラスのメソッドは型付きエラーをスローし、キャッチすることができます。
try {
const tool = mastra.getTool("nonexistentTool");
} catch (error) {
if (error instanceof Error) {
console.log(error.message); // "Tool with name nonexistentTool not found"
}
}