状態を更新
状態を更新
式を使って、会話の途中でエージェントが動的変数を更新できるようにします。
概要
状態を更新ツールを使うと、会話の進行中にエージェントが1つ以上の動的変数を設定できます。ほかのシステムツールと同様に、会話の内部状態のみを変更します。外部APIやクライアントサイド関数を呼び出すことはありません。
通話の進行に合わせて情報を記録する際に使用します。たとえば、会話をエスカレーションすべきことを示したり、ユーザーが提供した値を保存したり、ほかの動的変数から値を計算したりできます。
機能
- 1回の呼び出しで複数更新:1回のツール呼び出しで、最大10個の動的変数を一度に代入できます。
- 式ベースの値:各値は式の結果です。定数、既存の動的変数、LLMが会話から抽出した値、演算子を組み合わせられます。
- 必要な場合のみLLMで抽出:ツールがLLMにパラメータの抽出を依頼するのは、必要な更新のみです。定数および/または既存の動的変数だけで構成された更新では、関数呼び出しにパラメータは追加されません。
- 即時に利用可能:ツールの実行後、更新された動的変数は以降の会話で使用できます。後続のプロンプト、ほかのツール呼び出し、オーバーライドからも、ほかの動的変数と同じように参照できます。
仕組み
各状態更新では、式の結果を動的変数に代入します。
式には次の種類があり、より複雑なロジックを構築するために、式を別の式の中にネストできます。
たとえば、次の状態更新では、LLMがユーザーが会話に不満を感じていると判断した場合、またはretry_count動的変数がすでに3より大きい場合に、should_escalateをtrueに設定します。
状態更新の評価に失敗した場合(たとえばゼロ除算)、ツール呼び出しは エラーを返し、その呼び出し内の更新は一切適用されません。
設定
ユースケース
- エスカレーションフラグ:Genesysインテグレーションガイドで示すように、下流システムまたはビジネスルールで確認する動的変数(例:
should_escalate)を設定します。 - 抽出した情報の記録:ユーザーが提供した値(注文番号、設定、選択した部署)を動的変数として保存し、会話の後半で使用します。
- 派生値:カウンターを増やしたり、2つの変数を1つに結合したりするなど、ほかの動的変数から値を計算します。
目的:外部APIを呼び出さずに、会話に基づいてエージェントが1つ以上の動的変数を更新できるようにします。
トリガー条件:LLMは、次の場合にこのツールを呼び出す必要があります。
- 会話に記録すべき情報(例:エスカレーションフラグ、選択されたオプション、ユーザーが提供した値)が含まれている場合
- 設定された状態更新が、LLMが会話から判断または抽出する必要がある値に依存する場合
パラメーター:
関数のパラメーターは、ツールの設定方法によって異なります。LLMで抽出した値を使用する状態更新ごとに、その更新の動的変数名を持ち、型がstring、number、またはbooleanであるプロパティが1つスキーマに追加されます。定数または他の動的変数のみから構成される状態更新では、パラメーターは追加されません。
関数呼び出し形式:
実装:エージェントは、抽出したパラメーターと会話の現在の動的変数を使用して、設定されたすべての式を評価し、結果を対応する動的変数に割り当てます。外部リクエストは行われません。
よくある質問
このツールは外部呼び出しを行いますか?
いいえ。すべてのシステムツールと同様に、状態を更新は会話の内部状態のみを変更します。 外部APIやクライアントサイド関数は呼び出しません。
このツールの呼び出しでは、常にLLMによるパラメータ抽出が必要ですか?
いいえ。ツールがLLMにパラメータの抽出を依頼するのは、式に LLM抽出値が含まれる状態更新のみです。設定されたすべての更新が定数および/または 既存の動的変数で構成されている場合、関数呼び出しにパラメータは不要です。
このツールで設定した動的変数はどこで使用できますか?
動的変数を使用できる場所ならどこでも使用できます。システムプロンプト、最初のメッセージ、ツールパラメータと ヘッダー、オーバーライドです。詳しくは動的 変数をご覧ください。
このツールはAPIから設定できますか?
現在、状態を更新はエージェントダッシュボードから設定できます。APIおよびSDKのサポートは まだ利用できません。