メインコンテンツへ移動

Agent.streamLegacy()(レガシー)

警告

非推奨:このメソッドは非推奨で、V1 モデルでのみ動作します。V2 モデルでは、代わりに新しい .stream() メソッドを使用してください。アップグレードの詳細については、移行ガイドを参照してください。

.streamLegacy() メソッドは Agent ストリーミング API のレガシーバージョンで、V1 モデルを使用する Agent からの応答をリアルタイムでストリーミングするために使用します。このメソッドは、メッセージと任意のストリーミングオプションを受け取ります。

使用例
使用例への直接リンク

await agent.streamLegacy('message for agent')

パラメーター
パラメーターへの直接リンク

messages:

string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]
Agent に送信するメッセージ。単一の文字列、文字列の配列、または構造化されたメッセージオブジェクトを指定できます。

options?:

AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>
ストリーミング処理の任意の設定。
AgentStreamOptions

abortSignal?:

AbortSignal
Agent の実行を中止するためのシグナルオブジェクト。シグナルが中止されると、進行中のすべての処理が終了します。

context?:

CoreMessage[]
Agent に渡す追加のコンテキストメッセージ。

experimental_output?:

Zod schema | JsonSchema7
テキスト生成および Tool 呼び出しと並行して、構造化出力の生成を有効にします。モデルは、指定されたスキーマに準拠する応答を生成します。

instructions?:

string
この生成に限り、Agent のデフォルトの指示を上書きするカスタム指示。新しい Agent インスタンスを作成せずに、Agent の動作を動的に変更する場合に役立ちます。

output?:

Zod schema | JsonSchema7
出力に期待する構造を定義します。JSON Schema オブジェクトまたは Zod スキーマを指定できます。

memory?:

object
Memory の設定。Memory の管理には、この方法を使用することを推奨します。

thread:

string | { id: string; metadata?: Record<string, any>, title?: string }
会話スレッド。文字列 ID、または id と任意の metadata を持つオブジェクトとして指定します。

resource:

string
スレッドに関連付けられたユーザーまたはリソースの識別子。

options?:

MemoryConfig
メッセージ履歴やセマンティックリコールなど、Memory の動作に関する設定。

maxSteps?:

number
許可する実行ステップの最大数。

maxRetries?:

number
再試行の最大回数。再試行を無効にするには 0 に設定します。

memoryOptions?:

MemoryConfig
**非推奨。** 代わりに memory.options を使用してください。Memory 管理の設定オプションです。

lastMessages?:

number | false
コンテキストに含める直近のメッセージ数。無効にするには false を指定します。

semanticRecall?:

boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }
関連する過去のメッセージを見つけるセマンティックリコールを有効にします。真偽値または詳細な設定を指定できます。

workingMemory?:

WorkingMemory
Working Memory 機能の設定。

threads?:

{ generateTitle?: boolean | { model: DynamicArgument<MastraLanguageModel>; instructions?: DynamicArgument<string> } }
タイトルの自動生成を含む、スレッド固有の設定。

onFinish?:

StreamTextOnFinishCallback<any> | StreamObjectOnFinishCallback<OUTPUT>
ストリーミング完了時に呼び出されるコールバック関数。最終結果を受け取ります。

onStepFinish?:

StreamTextOnStepFinishCallback<any> | never
各実行ステップの後に呼び出されるコールバック関数。ステップの詳細を JSON 文字列として受け取ります。構造化出力では使用できません

resourceId?:

string
**非推奨。** 代わりに memory.resource を使用してください。Agent とやり取りするユーザーまたはリソースの識別子。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 }
ストリーミング中に Agent が Tool を使用する方法を制御します。

'auto':

string
Tool を使用するかどうかをモデルに判断させます(デフォルト)。

'none':

string
Tool を使用しません。

'required':

string
少なくとも 1 つの Tool を使用するようモデルに要求します。

{ type: 'tool'; toolName: string }:

object
名前を指定して特定の Tool を使用するようモデルに要求します。

toolsets?:

ToolsetsInput
ストリーミング中に Agent が使用できるようにする追加の Tool セット。

clientTools?:

ToolsInput
リクエストの「クライアント」側で実行される Tool。これらの Tool の定義には execute 関数がありません。

hooks?:

ToolHooks
Tool 呼び出しの前後に実行される、実行単位のフック。この実行では、対応する Agent レベルのフックを上書きします。beforeToolCall{ proceed: false, output } を返して Tool 呼び出しをスキップできます。

savePerStep?:

boolean
各ストリームステップの完了後、メッセージを段階的に保存します(デフォルト:false)。

providerOptions?:

Record<string, Record<string, JSONValue>>
基盤となる LLM Provider に渡される、Provider 固有の追加オプション。構造は { 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>
その他の Provider 固有のオプション。キーは Provider 名、値は Provider 固有のオプションのレコードです。

runId?:

string
この生成実行の一意な ID。追跡やデバッグに役立ちます。

requestContext?:

RequestContext
依存性注入とコンテキスト情報に使用する Request Context。

maxTokens?:

number
生成するトークンの最大数。

topP?:

number
核サンプリング。0 から 1 までの数値です。temperaturetopP のいずれか一方のみを設定することを推奨します。

topK?:

number
後続の各トークンについて、上位 K 個の候補からのみサンプリングします。確率の低い「ロングテール」の応答を除外するために使用します。

presencePenalty?:

number
存在ペナルティの設定。プロンプト内にすでにある情報をモデルが繰り返す可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを減らす)までの数値です。

frequencyPenalty?:

number
頻度ペナルティの設定。モデルが同じ単語やフレーズを繰り返し使用する可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを減らす)までの数値です。

stopSequences?:

string[]
停止シーケンス。設定すると、いずれかの停止シーケンスが生成された時点でモデルはテキスト生成を停止します。

seed?:

number
ランダムサンプリングに使用するシード(整数)。設定され、モデルが対応している場合、呼び出しは決定論的な結果を生成します。

headers?:

Record<string, string | undefined>
リクエストとともに送信する追加の HTTP ヘッダー。HTTP ベースの Provider にのみ適用されます。

戻り値
戻り値への直接リンク

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>>
ストリーミング処理中に行われた Tool 呼び出しに解決される Promise。

toolName:

string
呼び出された Tool の名前。

args:

any
Tool に渡された引数。

詳細な使用例
詳細な使用例への直接リンク

await agent.streamLegacy('message for agent', {
temperature: 0.7,
maxSteps: 3,
memory: {
thread: 'user-123',
resource: 'test-app',
},
toolChoice: 'auto',
})

新しい API への移行
新しい API への移行への直接リンク

情報

新しい .stream() メソッドでは、AI SDK v5 以降への対応、構造化出力の処理改善、コールバックシステムの強化など、機能が拡張されています。詳細な移行手順については、移行ガイドを参照してください。

クイック移行例
クイック移行例への直接リンク

移行前(レガシー)
移行前(レガシー)への直接リンク

const result = await agent.streamLegacy('message', {
temperature: 0.7,
maxSteps: 3,
onFinish: result => console.log(result),
})

移行後(新しい API)
移行後(新しい API)への直接リンク

const result = await agent.stream('message', {
modelSettings: {
temperature: 0.7,
},
maxSteps: 3,
onFinish: result => console.log(result),
})