> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # Agent.streamLegacy()(レガシー) > **警告:** **非推奨**:このメソッドは非推奨で、V1 モデルでのみ動作します。V2 モデルでは、代わりに新しい [`.stream()`](https://mastra.zisheng.pro/ja/reference/streaming/agents/stream) メソッドを使用してください。アップグレードの詳細については、[移行ガイド](https://mastra.zisheng.pro/ja/guides/migrations/vnext-to-standard-apis)を参照してください。 `.streamLegacy()` メソッドは Agent ストリーミング API のレガシーバージョンで、V1 モデルを使用する Agent からの応答をリアルタイムでストリーミングするために使用します。このメソッドは、メッセージと任意のストリーミングオプションを受け取ります。 ## 使用例 ```typescript await agent.streamLegacy('message for agent') ``` ## パラメーター **messages** (`string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]`): Agent に送信するメッセージ。単一の文字列、文字列の配列、または構造化されたメッセージオブジェクトを指定できます。 **options** (`AgentStreamOptions`): ストリーミング処理の任意の設定。 **options.abortSignal** (`AbortSignal`): Agent の実行を中止するためのシグナルオブジェクト。シグナルが中止されると、進行中のすべての処理が終了します。 **options.context** (`CoreMessage[]`): Agent に渡す追加のコンテキストメッセージ。 **options.experimental\_output** (`Zod schema | JsonSchema7`): テキスト生成および Tool 呼び出しと並行して、構造化出力の生成を有効にします。モデルは、指定されたスキーマに準拠する応答を生成します。 **options.instructions** (`string`): この生成に限り、Agent のデフォルトの指示を上書きするカスタム指示。新しい Agent インスタンスを作成せずに、Agent の動作を動的に変更する場合に役立ちます。 **options.output** (`Zod schema | JsonSchema7`): 出力に期待する構造を定義します。JSON Schema オブジェクトまたは Zod スキーマを指定できます。 **options.memory** (`object`): Memory の設定。Memory の管理には、この方法を使用することを推奨します。 **options.memory.thread** (`string | { id: string; metadata?: Record, title?: string }`): 会話スレッド。文字列 ID、または id と任意の metadata を持つオブジェクトとして指定します。 **options.memory.resource** (`string`): スレッドに関連付けられたユーザーまたはリソースの識別子。 **options.memory.options** (`MemoryConfig`): メッセージ履歴やセマンティックリコールなど、Memory の動作に関する設定。 **options.maxSteps** (`number`): 許可する実行ステップの最大数。 **options.maxRetries** (`number`): 再試行の最大回数。再試行を無効にするには 0 に設定します。 **options.memoryOptions** (`MemoryConfig`): \*\*非推奨。\*\* 代わりに memory.options を使用してください。Memory 管理の設定オプションです。 **options.memoryOptions.lastMessages** (`number | false`): コンテキストに含める直近のメッセージ数。無効にするには false を指定します。 **options.memoryOptions.semanticRecall** (`boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }`): 関連する過去のメッセージを見つけるセマンティックリコールを有効にします。真偽値または詳細な設定を指定できます。 **options.memoryOptions.workingMemory** (`WorkingMemory`): Working Memory 機能の設定。 **options.memoryOptions.threads** (`{ generateTitle?: boolean | { model: DynamicArgument; instructions?: DynamicArgument } }`): タイトルの自動生成を含む、スレッド固有の設定。 **options.onFinish** (`StreamTextOnFinishCallback | StreamObjectOnFinishCallback`): ストリーミング完了時に呼び出されるコールバック関数。最終結果を受け取ります。 **options.onStepFinish** (`StreamTextOnStepFinishCallback | never`): 各実行ステップの後に呼び出されるコールバック関数。ステップの詳細を JSON 文字列として受け取ります。構造化出力では使用できません **options.resourceId** (`string`): \*\*非推奨。\*\* 代わりに memory.resource を使用してください。Agent とやり取りするユーザーまたはリソースの識別子。threadId を指定する場合は必須です。 **options.telemetry** (`TelemetrySettings`): ストリーミング中のテレメトリ収集に関する設定。 **options.telemetry.isEnabled** (`boolean`): テレメトリを有効または無効にします。実験的機能のため、デフォルトでは無効です。 **options.telemetry.recordInputs** (`boolean`): 入力の記録を有効または無効にします。デフォルトでは有効です。機密情報の記録を避けるため、入力の記録を無効にすることもできます。 **options.telemetry.recordOutputs** (`boolean`): 出力の記録を有効または無効にします。デフォルトでは有効です。機密情報の記録を避けるため、出力の記録を無効にすることもできます。 **options.telemetry.functionId** (`string`): この関数の識別子。テレメトリデータを関数ごとにグループ化するために使用します。 **options.temperature** (`number`): モデルの出力のランダム性を制御します。値が高いほど(例:0.8)出力のランダム性が増し、値が低いほど(例:0.2)出力が焦点を絞った決定論的なものになります。 **options.threadId** (`string`): \*\*非推奨。\*\* 代わりに memory.thread を使用してください。会話スレッドの識別子。複数のやり取りにわたってコンテキストを維持できます。resourceId を指定する場合は必須です。 **options.toolChoice** (`'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }`): ストリーミング中に Agent が Tool を使用する方法を制御します。 **options.toolChoice.'auto'** (`string`): Tool を使用するかどうかをモデルに判断させます(デフォルト)。 **options.toolChoice.'none'** (`string`): Tool を使用しません。 **options.toolChoice.'required'** (`string`): 少なくとも 1 つの Tool を使用するようモデルに要求します。 **options.toolChoice.{ type: 'tool'; toolName: string }** (`object`): 名前を指定して特定の Tool を使用するようモデルに要求します。 **options.toolsets** (`ToolsetsInput`): ストリーミング中に Agent が使用できるようにする追加の Tool セット。 **options.clientTools** (`ToolsInput`): リクエストの「クライアント」側で実行される Tool。これらの Tool の定義には execute 関数がありません。 **options.hooks** (`ToolHooks`): Tool 呼び出しの前後に実行される、実行単位のフック。この実行では、対応する Agent レベルのフックを上書きします。beforeToolCall は { proceed: false, output } を返して Tool 呼び出しをスキップできます。 **options.savePerStep** (`boolean`): 各ストリームステップの完了後、メッセージを段階的に保存します(デフォルト:false)。 **options.providerOptions** (`Record>`): 基盤となる LLM Provider に渡される、Provider 固有の追加オプション。構造は { providerName: { optionKey: value } } です。例:{ openai: { reasoningEffort: 'high' }, anthropic: { maxTokens: 1000 } }。 **options.providerOptions.openai** (`Record`): OpenAI 固有のオプション。例:{ reasoningEffort: 'high' } **options.providerOptions.anthropic** (`Record`): Anthropic 固有のオプション。例:{ maxTokens: 1000 } **options.providerOptions.google** (`Record`): Google 固有のオプション。例:{ safetySettings: \[...] } **options.providerOptions.\[providerName]** (`Record`): その他の Provider 固有のオプション。キーは Provider 名、値は Provider 固有のオプションのレコードです。 **options.runId** (`string`): この生成実行の一意な ID。追跡やデバッグに役立ちます。 **options.requestContext** (`RequestContext`): 依存性注入とコンテキスト情報に使用する Request Context。 **options.maxTokens** (`number`): 生成するトークンの最大数。 **options.topP** (`number`): 核サンプリング。0 から 1 までの数値です。temperature と topP のいずれか一方のみを設定することを推奨します。 **options.topK** (`number`): 後続の各トークンについて、上位 K 個の候補からのみサンプリングします。確率の低い「ロングテール」の応答を除外するために使用します。 **options.presencePenalty** (`number`): 存在ペナルティの設定。プロンプト内にすでにある情報をモデルが繰り返す可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを減らす)までの数値です。 **options.frequencyPenalty** (`number`): 頻度ペナルティの設定。モデルが同じ単語やフレーズを繰り返し使用する可能性に影響します。-1(繰り返しを増やす)から 1(最大のペナルティで繰り返しを減らす)までの数値です。 **options.stopSequences** (`string[]`): 停止シーケンス。設定すると、いずれかの停止シーケンスが生成された時点でモデルはテキスト生成を停止します。 **options.seed** (`number`): ランダムサンプリングに使用するシード(整数)。設定され、モデルが対応している場合、呼び出しは決定論的な結果を生成します。 **options.headers** (`Record`): リクエストとともに送信する追加の HTTP ヘッダー。HTTP ベースの Provider にのみ適用されます。 ## 戻り値 **textStream** (`AsyncGenerator`): テキストチャンクが利用可能になるたびに返す非同期ジェネレーター。 **fullStream** (`Promise`): 完全な応答の ReadableStream に解決される Promise。 **text** (`Promise`): 完全なテキスト応答に解決される Promise。 **usage** (`Promise<{ totalTokens: number; promptTokens: number; completionTokens: number }>`): トークン使用量の情報に解決される Promise。 **finishReason** (`Promise`): ストリームが終了した理由に解決される Promise。 **toolCalls** (`Promise>`): ストリーミング処理中に行われた Tool 呼び出しに解決される Promise。 **toolCalls.toolName** (`string`): 呼び出された Tool の名前。 **toolCalls.args** (`any`): Tool に渡された引数。 ## 詳細な使用例 ```typescript await agent.streamLegacy('message for agent', { temperature: 0.7, maxSteps: 3, memory: { thread: 'user-123', resource: 'test-app', }, toolChoice: 'auto', }) ``` ## 新しい API への移行 > **情報:** 新しい `.stream()` メソッドでは、AI SDK v5 以降への対応、構造化出力の処理改善、コールバックシステムの強化など、機能が拡張されています。詳細な移行手順については、[移行ガイド](https://mastra.zisheng.pro/ja/guides/migrations/vnext-to-standard-apis)を参照してください。 ### クイック移行例 #### 移行前(レガシー) ```typescript const result = await agent.streamLegacy('message', { temperature: 0.7, maxSteps: 3, onFinish: result => console.log(result), }) ``` #### 移行後(新しい API) ```typescript const result = await agent.stream('message', { modelSettings: { temperature: 0.7, }, maxSteps: 3, onFinish: result => console.log(result), }) ``` ## 関連情報 - [移行ガイド](https://mastra.zisheng.pro/ja/guides/migrations/vnext-to-standard-apis) - [新しい .stream() メソッド](https://mastra.zisheng.pro/ja/reference/streaming/agents/stream) - [応答の生成](https://mastra.zisheng.pro/ja/docs/agents/overview) - [応答のストリーミング](https://mastra.zisheng.pro/ja/docs/agents/overview)