Agent.generate()
generate()
メソッドは、エージェントと対話してテキストや構造化された応答を生成するために使用されます。このメソッドは、messages
とオプションの options
オブジェクトをパラメータとして受け取ります。
Parameters
messages
messages
パラメータは以下のいずれかを指定できます:
- 単一の文字列
- 文字列の配列
role
とcontent
プロパティを持つメッセージオブジェクトの配列
メッセージオブジェクトの構造:
interface Message {
role: "system" | "user" | "assistant";
content: string;
}
options
(Optional)
出力構造、メモリ管理、ツール使用、テレメトリなどの設定を含むことができるオプションのオブジェクトです。
abortSignal?:
AbortSignal
エージェントの実行を中止できるシグナルオブジェクト。シグナルが中止されると、進行中のすべての操作が終了されます。
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
メッセージ履歴やセマンティック想起などのメモリ動作の設定。下記の `MemoryConfig` を参照してください。
maxSteps?:
number
= 5
許可される実行ステップの最大数。
maxRetries?:
number
= 2
最大再試行回数。再試行を無効にするには 0 に設定します。
memoryOptions?:
MemoryConfig
**非推奨。** 代わりに `memory.options` を使用してください。メモリ管理の設定オプション。詳細は下記の MemoryConfig セクションを参照してください。
onStepFinish?:
GenerateTextOnStepFinishCallback<any> | never
各実行ステップ後に呼び出されるコールバック関数。ステップの詳細をJSON文字列として受け取ります。構造化出力では利用できません。
resourceId?:
string
**非推奨。** 代わりに `memory.resource` を使用してください。エージェントと対話するユーザーまたはリソースの識別子。threadId が提供される場合は必須です。
telemetry?:
TelemetrySettings
生成中のテレメトリ収集の設定。詳細は下記の TelemetrySettings セクションを参照してください。
temperature?:
number
モデルの出力のランダム性を制御します。高い値(例:0.8)は出力をよりランダムにし、低い値(例:0.2)はより集中的で決定論的にします。
threadId?:
string
**非推奨。** 代わりに `memory.thread` を使用してください。会話スレッドの識別子。複数のやり取りにわたってコンテキストを維持できます。resourceId が提供される場合は必須です。
toolChoice?:
'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }
= 'auto'
生成中にエージェントがツールを使用する方法を制御します。
toolsets?:
ToolsetsInput
生成中にエージェントが利用できる追加のツールセット。
clientTools?:
ToolsInput
リクエストの「クライアント」側で実行されるツール。これらのツールは定義に実行関数を持ちません。
MemoryConfig
メモリ管理の設定オプション:
lastMessages?:
number | false
コンテキストに含める最新メッセージの数。無効にするにはfalseに設定します。
semanticRecall?:
boolean | object
セマンティックメモリリコールの設定。ブール値または詳細設定オブジェクトを指定できます。
number
topK?:
number
セマンティック的に最も類似したメッセージを取得する数。
number | object
messageRange?:
number | { before: number; after: number }
セマンティック検索で考慮するメッセージの範囲。単一の数値またはbefore/after設定を指定できます。
workingMemory?:
object
ワーキングメモリの設定。
boolean
enabled?:
boolean
ワーキングメモリを有効にするかどうか。
string
template?:
string
ワーキングメモリに使用するテンプレート。
threads?:
object
スレッド固有のメモリ設定。
boolean | object
generateTitle?:
boolean | { model: LanguageModelV1 | ((ctx: RuntimeContext) => LanguageModelV1 | Promise<LanguageModelV1>) }
ユーザーの最初のメッセージからの自動スレッドタイトル生成を制御します。エージェントのモデルを使用して有効/無効にするブール値、またはタイトル生成用のカスタムモデルを持つオブジェクト(コスト最適化に有用)を指定できます。例:{ model: openai('gpt-4.1-nano') }
TelemetrySettings
生成中のテレメトリ収集の設定:
isEnabled?:
boolean
= false
テレメトリを有効または無効にします。実験的機能のため、デフォルトでは無効です。
recordInputs?:
boolean
= true
入力の記録を有効または無効にします。機密情報の記録を避ける、データ転送を削減する、またはパフォーマンスを向上させるために無効にすることができます。
recordOutputs?:
boolean
= true
出力の記録を有効または無効にします。機密情報の記録を避ける、データ転送を削減する、またはパフォーマンスを向上させるために無効にすることができます。
functionId?:
string
この関数の識別子。関数ごとにテレメトリデータをグループ化するために使用されます。
metadata?:
Record<string, AttributeValue>
テレメトリデータに含める追加情報。AttributeValueは文字列、数値、ブール値、これらの型の配列、またはnullを指定できます。
tracer?:
Tracer
テレメトリデータに使用するカスタムOpenTelemetryトレーサーインスタンス。詳細はOpenTelemetryドキュメントを参照してください。
戻り値
generate()
メソッドの戻り値は、提供されたオプション、特にoutput
オプションによって異なります。
戻り値のプロパティテーブル
text?:
string
生成されたテキスト応答。outputが'text'の場合(スキーマが提供されていない場合)に存在します。
object?:
object
生成された構造化された応答。`output`または`experimental_output`を通じてスキーマが提供された場合に存在します。
toolCalls?:
Array<ToolCall>
生成プロセス中に行われたツール呼び出し。テキストモードとオブジェクトモードの両方に存在します。
ToolCall構造
toolName:
string
呼び出されたツールの名前。
args:
any
ツールに渡された引数。
関連メソッド
リアルタイムのストリーミング応答については、stream()
メソッドのドキュメントをご覧ください。