Agent.generate()
generate()
メソッドは、エージェントと対話してテキストや構造化された応答を生成するために使用されます。このメソッドは、messages
とオプションの options
オブジェクトをパラメータとして受け取ります。
パラメータ
messages
messages
パラメータは以下のいずれかです:
- 単一の文字列
- 文字列の配列
role
とcontent
プロパティを持つメッセージオブジェクトの配列
メッセージオブジェクトの構造:
interface Message {
role: "system" | "user" | "assistant";
content: string;
}
options
(オプション)
出力構造、メモリ管理、ツールの使用、テレメトリなどの設定を含むオプションのオブジェクトです。
abortSignal?:
AbortSignal
エージェントの実行を中止できるシグナルオブジェクト。シグナルが中止されると、進行中のすべての操作が終了します。
context?:
CoreMessage[]
エージェントに提供する追加のコンテキストメッセージ。
experimental_output?:
Zod schema | JsonSchema7
テキスト生成とツール呼び出しと共に構造化された出力生成を有効にします。モデルは提供されたスキーマに準拠した応答を生成します。
instructions?:
string
この特定の生成のためにエージェントのデフォルト指示を上書きするカスタム指示。新しいエージェントインスタンスを作成せずにエージェントの動作を動的に変更するのに役立ちます。
output?:
Zod schema | JsonSchema7
期待される出力の構造を定義します。JSONスキーマオブジェクトまたはZodスキーマを指定できます。
maxSteps?:
number
= 5
許可される実行ステップの最大数。
maxRetries?:
number
= 2
最大リトライ回数。リトライを無効にするには0に設定します。
memoryOptions?:
MemoryConfig
メモリ管理の設定オプション。詳細は以下のMemoryConfigセクションを参照してください。
onStepFinish?:
GenerateTextOnStepFinishCallback<any> | never
各実行ステップ後に呼び出されるコールバック関数。ステップの詳細をJSON文字列として受け取ります。構造化出力では利用できません。
resourceId?:
string
エージェントと対話するユーザーまたはリソースの識別子。threadIdが提供される場合は必須です。
telemetry?:
TelemetrySettings
生成中のテレメトリ収集の設定。詳細は以下のTelemetrySettingsセクションを参照してください。
temperature?:
number
モデルの出力のランダム性を制御します。高い値(例:0.8)は出力をよりランダムにし、低い値(例:0.2)はより焦点を絞った決定論的な出力にします。
threadId?:
string
会話スレッドの識別子。複数のやり取りにわたってコンテキストを維持することができます。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 }
セマンティック検索で考慮するメッセージの範囲。単一の数値または前後の設定が可能です。
workingMemory?:
object
ワーキングメモリの設定。
boolean
enabled?:
boolean
ワーキングメモリを有効にするかどうか。
string
template?:
string
ワーキングメモリに使用するテンプレート。
'text-stream' | 'tool-call'
type?:
'text-stream' | 'tool-call'
ワーキングメモリに使用するコンテンツのタイプ。
threads?:
object
スレッド固有のメモリ設定。
boolean
generateTitle?:
boolean
新しいスレッドのタイトルを自動生成するかどうか。
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()
メソッドのドキュメントをご覧ください。