Agent.stream()
.stream()
メソッドは、エージェントの応答をリアルタイムでストリーミングします。このメソッドは、メッセージと任意のストリーミングオプションを受け取ります。
使用例
await agent.stream("message for agent");
パラメータ
messages:
string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]
エージェントに送信するメッセージ。単一の文字列、文字列配列、または構造化メッセージオブジェクトを指定できます。
options?:
AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>
ストリーミング処理に関するオプション設定。
オプションパラメータ
abortSignal?:
AbortSignal
エージェントの実行を中断できる Signal オブジェクト。シグナルが中断されると、進行中の操作はすべて終了します。
context?:
CoreMessage[]
エージェントに渡す追加のコンテキストメッセージ。
experimental_output?:
Zod schema | JsonSchema7
テキスト生成やツール呼び出しに加えて、構造化出力の生成を有効にします。モデルは提供されたスキーマに準拠する応答を生成します。
instructions?:
string
この生成に対してエージェントのデフォルトの指示を上書きするカスタム指示。新しいエージェントインスタンスを作成せずに動作を動的に変更するのに有用です。
output?:
Zod schema | JsonSchema7
想定される出力の構造を定義します。JSON Schema オブジェクトまたは Zod スキーマを指定できます。
memory?:
object
メモリの設定。メモリ管理の推奨方法です。
thread:
string | { id: string; metadata?: Record<string, any>, title?: string }
会話スレッド。文字列の ID、または `id` と任意の `metadata` を持つオブジェクトとして指定します。
resource:
string
スレッドに関連付けられたユーザーまたはリソースの識別子。
options?:
MemoryConfig
メッセージ履歴やセマンティック・リコールなど、メモリ動作の設定。
maxSteps?:
number
= 5
許可される実行ステップ数の上限。
maxRetries?:
number
= 2
リトライの最大回数。無効にするには 0 を設定します。
memoryOptions?:
MemoryConfig
**非推奨。** 代わりに `memory.options` を使用してください。メモリ管理の設定オプション。
lastMessages?:
number | false
コンテキストに含める直近メッセージ数。false で無効化。
semanticRecall?:
boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }
関連する過去メッセージを見つけるためのセマンティック・リコールを有効にします。真偽値または詳細設定を指定できます。
workingMemory?:
WorkingMemory
ワーキングメモリ機能の設定。
threads?:
{ generateTitle?: boolean | { model: DynamicArgument<MastraLanguageModel>; instructions?: DynamicArgument<string> } }
スレッド固有の設定。タイトルの自動生成を含みます。
onFinish?:
StreamTextOnFinishCallback<any> | StreamObjectOnFinishCallback<OUTPUT>
ストリーミング完了時に呼び出されるコールバック関数。最終結果を受け取ります。
onStepFinish?:
StreamTextOnStepFinishCallback<any> | never
各実行ステップ後に呼び出されるコールバック関数。ステップの詳細を JSON 文字列で受け取ります。構造化出力では利用できません。
resourceId?:
string
**非推奨。** 代わりに `memory.resource` を使用してください。エージェントと対話するユーザーまたはリソースの識別子。threadId が指定されている場合は必須です。
telemetry?:
TelemetrySettings
ストリーミング中のテレメトリ収集の設定。
isEnabled?:
boolean
テレメトリを有効化/無効化します。実験段階ではデフォルトで無効です。
recordInputs?:
boolean
入力の記録を有効化/無効化します。デフォルトで有効です。機微情報の記録を避けるために無効化することがあります。
recordOutputs?:
boolean
出力の記録を有効化/無効化します。デフォルトで有効です。機微情報の記録を避けるために無効化することがあります。
functionId?:
string
この関数の識別子。関数単位でテレメトリデータをグループ化するために使用します。
temperature?:
number
モデル出力のランダム性を制御します。値が高い(例: 0.8)ほどランダム性が高く、低い(例: 0.2)ほど焦点が定まり決定的になります。
threadId?:
string
**非推奨。** 代わりに `memory.thread` を使用してください。会話スレッドの識別子。複数のやり取りにわたりコンテキストを維持できます。resourceId が指定されている場合は必須です。
toolChoice?:
'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }
= 'auto'
ストリーミング中にエージェントがツールをどう使用するかを制御します。
'auto':
string
ツールを使用するかどうかをモデルに任せる(デフォルト)。
'none':
string
いかなるツールも使用しない。
'required':
string
少なくとも 1 つのツールを使用するようモデルに要求する。
{ type: 'tool'; toolName: string }:
object
指定した名前の特定のツールを使用するようモデルに要求する。
toolsets?:
ToolsetsInput
ストリーミング中にエージェントが利用できる追加のツールセット。
clientTools?:
ToolsInput
リクエストの「クライアント」側で実行されるツール。これらのツールは定義内に execute 関数を持ちません。
savePerStep?:
boolean
各ストリームステップ完了後にメッセージを逐次保存します(デフォルト: false)。
providerOptions?:
Record<string, Record<string, JSONValue>>
基盤となる LLM プロバイダーに渡される、プロバイダー固有の追加オプション。構造は `{ providerName: { optionKey: value } }`。例: `{ openai: { reasoningEffort: 'high' }, anthropic: { maxTokens: 1000 } }`。
openai?:
Record<string, JSONValue>
OpenAI 固有のオプション。例: `{ reasoningEffort: 'high' }`
anthropic?:
Record<string, JSONValue>
Anthropic 固有のオプション。例: `{ maxTokens: 1000 }`
google?:
Record<string, JSONValue>
Google 固有のオプション。例: `{ safetySettings: [...] }`
[providerName]?:
Record<string, JSONValue>
その他のプロバイダー固有のオプション。キーはプロバイダー名、値はプロバイダー固有オプションのレコードです。
runId?:
string
この生成実行の一意の ID。追跡やデバッグに有用です。
runtimeContext?:
RuntimeContext
依存性注入やコンテキスト情報のためのランタイムコンテキスト。
maxTokens?:
number
生成するトークン数の上限。
topP?:
number
Nucleus サンプリング。0〜1 の数値。`temperature` か `topP` のどちらか一方のみの設定を推奨します。
topK?:
number
各次トークンで上位 K 個の選択肢からのみサンプリングします。低確率の“ロングテール”応答を除外するために使用します。
presencePenalty?:
number
Presence penalty の設定。プロンプト内の既存情報をモデルが繰り返す可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを抑制)までの数値。
frequencyPenalty?:
number
Frequency penalty の設定。同じ語や句を繰り返し使用する可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを抑制)までの数値。
stopSequences?:
string[]
ストップシーケンス。設定すると、いずれかのストップシーケンスが生成された時点でモデルはテキスト生成を停止します。
seed?:
number
ランダムサンプリングに使用するシード(整数)。設定され、モデルが対応している場合は決定的な結果を生成します。
headers?:
Record<string, string | undefined>
リクエストに同送する追加の HTTP ヘッダー。HTTP ベースのプロバイダーにのみ適用されます。
戻り値
textStream?:
AsyncGenerator<string>
利用可能になり次第、テキストのチャンクを順次返す非同期ジェネレーター。
fullStream?:
Promise<ReadableStream>
完全なレスポンスを表す ReadableStream へ解決される Promise。
text?:
Promise<string>
完全なテキストレスポンスへ解決される Promise。
usage?:
Promise<{ totalTokens: number; promptTokens: number; completionTokens: number }>
トークン使用量の情報へ解決される Promise。
finishReason?:
Promise<string>
ストリームが終了した理由へ解決される Promise。
toolCalls?:
Promise<Array<ToolCall>>
ストリーミング処理中に行われたツール呼び出しへ解決される Promise。
toolName:
string
呼び出されたツール名。
args:
any
ツールに渡された引数。
発展的な使用例
await agent.stream("message for agent", {
temperature: 0.7,
maxSteps: 3,
memory: {
thread: "user-123",
resource: "test-app"
},
toolChoice: "auto"
});