メインコンテンツへ移動

Agent の概要

Agent は LLM と Tool を使用して、自由度の高いタスクを解決します。目標について推論し、使用する Tool を判断します。会話の Memory を保持し、モデルが最終回答を出力するか、任意の停止条件を満たすまで処理を繰り返します。

Agent は、UI に表示したりプログラムで処理したりできる構造化レスポンスを生成します。Agent は直接使用することも、Workflow やマルチ Agent システムに組み込むこともできます。

Agent を使用する場面
Agent を使用する場面への直接リンク

手順を事前に決められない自由度の高いタスクには Agent を使用します。Agent は、呼び出す Tool、反復回数、停止タイミングを判断します。各手順ではなく、目標と制約を指定します。明示的な制御フローを持つ、あらかじめ決められた複数ステップの処理には、代わりに Workflow を使用してください。

📹 動画

Mastra Agent の作成とテストを短時間で確認するには、Mastra Agent クイックスタートをご覧ください。

クイックスタート
クイックスタートへの直接リンク

@mastra/coreAgent クラスをインスタンス化し、必須プロパティを指定して Agent を作成します。

src/mastra/agents/test-agent.ts
import { Agent } from '@mastra/core/agent'

export const testAgent = new Agent({
id: 'test-agent',
name: 'Test Agent',
instructions: 'You are a helpful assistant.',
model: 'openai/gpt-5.6-sol',
})

instructions は Agent の動作、人格、機能を定義します。これは Agent の基本的な役割と専門性を確立するシステムレベルのプロンプトです。model は Mastra のモデルルーターを使用し、'provider/model-name' 形式で指定します。

アプリケーション全体で Agent を利用できるようにするには、通常 src/mastra/index.ts にある Mastra インスタンスへ登録します。

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { testAgent } from './agents/test-agent'

export const mastra = new Mastra({
agents: { testAgent },
})

登録後は Workflow、Tool、他の Agent から呼び出せるようになり、Memory、ロギング、可観測性機能などの共有リソースにアクセスできます。

利用可能なプロパティと設定の詳細は、Agent リファレンスを参照してください。

ヒント

Studio を使用すると、さまざまなメッセージで Agent をテストし、Tool の呼び出しとレスポンスを確認しながら、Agent の動作をデバッグできます。

Agent を使用する
Agent を使用するへの直接リンク

登録後、mastra.getAgentById() で Agent を取得します。完全なレスポンスには .generate()、トークンをリアルタイムで配信するには .stream() を呼び出します。Agent は、Workflow ステップToolMastra Client、ルートハンドラー、サーバーアダプター、コマンドラインから呼び出せます。使用するフレームワークでの Agent の使い方は、ガイドを参照してください。

Mastra インスタンスから Agent を参照するときは、インスタンスレベルのストレージ、ロギング、Agent レジストリなどの共有サービスへアクセスできるよう、mastra.getAgentById() を使用してください。直接インポートした Agent も独自のローカル設定で動作しますが、これらの共有サービスにはアクセスできません。

すべての Tool 呼び出しとステップの完了後に、完全なレスポンスを返します。結果には texttoolCallstoolResultssteps、トークンの usage 統計が含まれます。

Tool 呼び出しと Tool 結果のペイロードを含むレスポンス形式は、Agent.generate() リファレンスを参照してください。

const agent = mastra.getAgentById('test-agent')
const response = await agent.generate('Help me organize my day')
console.log(response.text)

Agent を拡張する
Agent を拡張するへの直接リンク

Agent が動作したら、次に行いたいことに対応するページをこの表から探してください。

目的参照先
Agent に外部 API やサービスを呼び出す Tool を追加するTool
会話をまたいでコンテキストと設定を保持するMemory
プレーンテキストではなく型付きオブジェクトを取得する構造化出力
Human-in-the-loop:実行を一時停止して人間の承認を待つ承認
マルチ Agent ネットワークを構築するSupervisor Agent
サブ Agent を登録するTool
生成の前後でメッセージを介入または変換するProcessor
Agent を安全に保つガードレール
自身の作業を修正する Agent を構築するRubric scorer
リクエストコンテキストに応じて instructions やモデルを切り替える動的設定
音声認識または音声合成を追加するVoice
Slack、Discord、Telegram に接続するChannel

マルチ Agent システム
マルチ Agent システムへの直接リンク

マルチ Agent システムは、1つの Agent では範囲が広すぎる、または専門性が高すぎるタスクを、複数の Agent で解決します。多数の Tool と長い指示を持つ1つの Agent を構築する代わりに、特化した Agent に役割を分け、コーディネーターが結果をまとめます。

Mastra でさまざまなパターンを適用する方法は、マルチ Agent システムの概念概要を参照してください。