CTRLK

Shared components

Structured output

|

View as Markdown

Structured output enforces a defined schema for AI agent responses, such as JSON, instead of free-form text.


Why use structured output

  • Predictable responses that can be processed by other systems.
  • Easier automation and system integration.
  • Reduced ambiguity in free-form responses.

Use cases

  • Hybrid chatbots: Detect when to transition from AI agent to chatbot control. Use parameters such as response (message to end user) and isLeaving: true/false.
  • Multimodal responses: Send more than plain text, such as lists, buttons, images, or locations. Structured output supports these message formats by separating the text message (response) from the format (next_answer_type) and the extra content (suggested_answers).
  • Escalation management: Use the escalate_to_human: true parameter to route to live agents.

Example schema

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}

Use structured output in Chatbots

When you use structured output, the AI agent returns a JSON object instead of plain text.

To use structured output in Chatbots, do the following:

  1. In the Agent connector element, extract the full response by using the JSON path $.content.
  2. Use a Code element to parse the JSON and extract individual fields into separate attributes.
  3. Use the extracted values to do the following:
    • Display the response text to the end user.
    • Route based on escalate_to_human or isLeaving flags.
    • Determine message format using next_answer_type.
    • Populate buttons or lists with suggested_answers.

For agent configuration steps, see Configure an AI agent. For guidance on defining output format in prompts, see Write prompts for AI agents.