Logo
Logo
CTRLK

共有コンポーネント

構造化された出力


構造化出力は、自由形式のテキストではなく、JSON などの AI エージェントの応答に対して定義されたスキーマを適用します。


構造化出力を使用する理由

  • 他のシステムで処理できる予測可能な応答。
  • 自動化とシステム統合が容易になります。
  • 自由形式の回答のあいまいさを減らしました。

ユースケース

  • ハイブリッド チャットボット: AI エージェントからチャットボット制御に移行するタイミングを検出します。response (エンドユーザーへのメッセージ) や isLeaving: true/false などのパラメーターを使用します。
  • マルチモーダル応答: リスト、ボタン、画像、場所など、プレーンテキスト以外のものを送信します。構造化出力は、テキスト・メッセージ (response) をフォーマット (next_answer_type) および追加コンテンツ (suggested_answers) から分離することで、これらのメッセージ・フォーマットをサポートします。
  • エスカレーション管理: escalate_to_human: true パラメーターを使用して、ライブ エージェントにルーティングします。

スキーマの例

json
1{
2 "type": "object",
3 "properties": {
4 "response": {
5 "type": "string",
6 "description": "Message to display to the user."
7 },
8 "sentiment": {
9 "type": "string",
10 "enum": ["positive", "neutral", "negative"],
11 "description": "Detected sentiment of the user's message."
12 },
13 "escalate_to_human": {
14 "type": "boolean",
15 "description": "True if human assistance is needed."
16 },
17 "next_answer_type": {
18 "type": "string",
19 "enum": ["text", "list", "buttons", "image"],
20 "description": "Format of the next response."
21 },
22 "suggested_answers": {
23 "type": "array",
24 "items": { "type": "string" },
25 "description": "Quick replies or button labels."
26 }
27 },
28 "required": ["response", "sentiment", "escalate_to_human"]
29}

チャットボットで構造化された出力を使用する

構造化出力を使用する場合、AI エージェントはプレーンテキストではなく JSON オブジェクトを返します。

チャットボットで構造化出力を使用するには、次の手順を実行します。

  1. エージェント コネクタ エレメントで、JSON パス $.content を使用して完全な応答を抽出します。
  2. コード エレメントを使用して JSON を解析し、個々のフィールドを個別の属性に抽出します。
  3. 抽出された値を使用して、次の操作を行います。
    • エンドユーザーに応答テキストを表示します。
    • escalate_to_human または isLeaving フラグに基づくルート。
    • next_answer_type を使用してメッセージ形式を決定します。
    • ボタンまたはリストにsuggested_answersを入力します。

エージェントの設定手順については、AIエージェントの設定を参照してください。プロンプトでの出力形式の定義に関するガイダンスについては、「AI エージェントのプロンプトを記述する](/agentos-ai-agents/advanced-topics/write-prompts#output-format-and-schema-prompt-basics)を参照してください。