Skip to main content
Create, configure, and deploy agents. Agents are the core AI units in Agent Platform that reason autonomously, call tools, and compose responses based on a goal and persona you define. You can optionally add a FLOW section with structured steps for deterministic control over parts of the conversation. This guide walks through creating an agent in Studio, writing its ABL definition, and an overview of the complete configuration workflow.

Before You Begin

  • You must be signed in to Studio with an account that belongs to the target workspace.
  • You need developer permissions on the project where you are creating the agent.
  • To use the AI Architect for guided setup, a workspace administrator must configure an LLM provider under Admin > Arch.

Agent Types

Every agent reasons by default. You can optionally add a FLOW section for structured, deterministic step execution. Adding a FLOW section does not create a different agent type. The agent continues to use reasoning and tool orchestration, while structured flow steps provide deterministic control for specific workflow paths.

Create An Agent in Studio

Open The Agents Page

Navigate to your project and select Agents from the sidebar. Agents page The Agents page lists all agents in the project. Each entry shows the agent name, flow indicator, deployment status, and last-modified timestamp.

Start Agent Creation

Click Create Agent. Create agent dialog Fill in the details. Click Create to open the agent editor.

Use the ABL Editor

After creating an agent, you can configure it in two ways:
  • Visual editor - a form-based interface with dedicated sections for identity, tools, memory, flow, and more.
  • ABL Editor - a full code editor where you write or edit the agent’s ABL definition directly.
Both modes stay in sync. Changes made in the visual editor are reflected in the ABL Editor and vice versa. To switch to the full-screen ABL Editor, click DSL icon in the agent’s top navigation bar. ABL Editor The ABL Editor provides syntax highlighting, line numbers, and inline error markers. See the top navigation bar for available options. It also supports a slash-command interface. Typing / opens a contextual command menu with available capabilities (for example. tools, gather fields, handoff configurations). Selecting a command inserts the relevant snippet automatically into the editor.

Save and Validate

Click Save to save and validate your ABL definition. Studio parses the definition in real time and flags any syntax issues inline. The status bar at the bottom shows No issues when the definition is valid. Click Compile to run a full structural validation without saving - useful for checking the definition before committing changes.

Outline Panel

The Outline panel on the left side of the editor displays the agent’s structure as a navigable tree. It reflects the sections and blocks defined in your ABL code - including PERSONA, MEMORY, HANDOFFS, and sub-agents or steps. ABL Editor outline panel Use the Filter symbols search box at the top of the Outline to jump to any section in a large definition.

Diagnostics Panel

The Diagnostics panel appears at the bottom of the editor. It lists all validation issues grouped by type. ABL Editor diagnostics panel

Insert Tool Signature

Instead of typing tool signatures manually, use the Insert Tool Signature shortcut to search and insert a pre-built signature from any tool defined in the project. Insert Tool Signature dialog The dialog lists all available tools with their type (HTTP, Knowledge Base, and so on) and a description. Click Insert to add the tool’s signature directly into the TOOLS block at your cursor position.

Define Identity And Persona

Identity and persona control how an agent communicates - its tone, expertise, and boundaries. Agent identity, goals, and persona

Core Identity Fields

Define the agent’s identity in the AGENT block.
Keep GOAL and PERSONA concise and specific. Vague instructions lead to inconsistent behavior.

Add An Opening Message

Use ON_START to send a greeting before any user input.
ON_START fires once per session initialization for that agent. You can also call tools in ON_START - for example, to check if the user is returning - and set session variables before greeting.
ON_START only fires when the agent is the session entry point or receives a handoff. If the agent is not being initialized, ON_START will not run.
Valid Directives inside ON_START:

Supervisor Agents

For multi-agent projects, use the SUPERVISOR block to define the orchestrating agent.

Configure Execution

The execution block controls model selection, token limits, reasoning depth, and timeout behavior. Agent execution details
Always set max_reasoning_iterations to prevent runaway loops. Start with 10–15 and tune based on observed behavior.

Add Tools

Tools let agents call external APIs, retrieve data, or trigger actions. Define tools in the TOOLS block with their signature and a description.
Create the tool at the project level, then attach it to the agent via UI or DSL.
Tool descriptions are injected into the LLM context. Clear, accurate descriptions directly influence which tool the agent selects. Add Instructions for Tool Use Use numbered INSTRUCTIONS when the agent must follow a specific sequence for using tools.
If the agent calls the wrong tool, improve the description field on each tool definition and add explicit numbered steps in INSTRUCTIONS.
For full details on different types of tools, see Tools guide.

Capabilities

After defining identity, execution, and tools, configure how the agent collects and retains data. Gather: Define structured fields the agent should capture from users during a conversation. Use GATHER to prompt for required inputs with type validation and required flags. This is available as a dedicated section in both the flow steps and the agent editor. For details, see Gather Data from Users. Memory: Configure session variables (available within a conversation), persistent state (stored across sessions), and remember/recall triggers that automatically store and inject context.
For full details, see the Data Collection and Memory & State guides.

Coordination

Configure how the agent hands off work to other agents or to human operators. Handoffs - Rules that transfer the conversation to another agent when a condition is met. Handoffs pass context such as session variables to the receiving agent. Delegates - Configuration for sub-agents that this agent can invoke to complete subtasks without transferring the conversation. The delegating agent retains control and receives the result. Escalation - Triggers and routing logic for escalating to a human agent, including context passing and queue assignment. For full details, see the Multi-Agent Orchestration guide.

Lifecycle

Define what happens at the start and end of each session, and how the agent handles errors.

On Start

Actions that fire when a session begins: tool calls, variable initialization, and a greeting response. See ON_START examples earlier in this guide. Interactive Actions Types

Error Handling

Recovery strategies for tool failures, timeout errors, and unexpected input. Configure fallback responses and retry logic to keep conversations from dead-ending. Error Handling Use the Error Handling page to define how the agent responds when an error occurs during execution. Example: If a tool call fails, the agent can display “An error occurred. Please try again.” and then either retry the step, continue the conversation, or route the user to another agent.

Completion

Conditions that determine when the agent’s task is done and the session should close. Configure one or more completion conditions using expressions that evaluate the current conversation state, such as whether all required information has been collected. When a condition evaluates to true, the agent marks the interaction as complete and can optionally send a final response message to the user before ending the conversation.

Templates and Messages

The Templates & Messages page allows you to create reusable response templates that can be referenced throughout the agent and present consistent agent output formatting. Templates can include multiple content formats such as Default, Markdown, HTML, and Voice.
  • Templates can be referenced anywhere in the agent abl to present responses.
  • Templates support variable interpolation using placeholders.

Add A FLOW Section

Add a FLOW section when you need deterministic, step-by-step control, for example, booking flows, identity verification, or data collection wizards.

Define A Flow

Steps with REASONING: false follow the defined path exactly. The THEN keyword defines the next step. ON_INPUT branches based on user responses.

Key Flow Constructs

Entry point - specifies which step starts the flow. If omitted, the first step in the steps list is used.
Step list shorthand - declares step order. You still define each step separately.
Tool call with branching:
Conditional branching on input:
SET assignments:
MAX_ATTEMPTS - limits retries on a step before routing to a fallback.

Mix Reasoning And Deterministic Steps

Within a single flow, combine deterministic steps (REASONING: false) with reasoning steps (REASONING: true). Use deterministic control for data collection and confirmations; use LLM autonomy for open-ended research or analysis.
Key properties for reasoning steps:

NLU Intent Classification

Use the NLU block to define intents, entities, and categories that classify user messages and drive appropriate actions. NLU configuration supports:
  • Intent classification using keyword patterns and example utterances.
  • Entity extraction with typed extractors (enum, pattern, location, date, number, free text).
  • Synonyms for normalizing variant expressions to canonical values.
  • Embeddings-based matching for semantic similarity when keyword patterns are insufficient.
  • Multi-language support with per-language model configuration.
  • A glossary for domain-specific terminology.
For more details, see NLU configuration.

Behavior

Control how the agent enforces rules, filters content, and adapts its behavior based on context. Constraints - Rules and restrictions enforced at runtime. Unlike LIMITATIONS, constraints with REQUIRE conditions and ON_FAIL actions are hard enforcement - the agent cannot proceed without meeting the condition. Guardrails - Content safety policies applied to agent inputs and outputs. Guardrails can block, redact, or flag content using built-in checks or external moderation providers.
Behavior profiles - Conditional behavior configurations that activate based on context, such as user role, session flags, or channel. For full details, see the Constraints & Guardrails and Behavior Profiles guides.

Multi-Language Support

Build agents that detect the user’s language and respond in kind.

Set Up Language Detection

Route by Language

Provide Language-Specific Models

Route to different LLM models based on detected language.

Add A Glossary

Inject domain-specific terms to ensure the agent uses correct terminology regardless of language.

Set Language per Environment Variable

For deployments that serve a single market:
Configure DEFAULT_LANGUAGE=es for your Spanish market deployment and DEFAULT_LANGUAGE=en for English.

Write Multi-Language Templates

Customize Agent Response

Agents can respond with more than plain text. Every RESPOND statement supports dynamic variables, reusable templates, rich content, interactive actions, and channel-specific formatting. The platform automatically renders the appropriate response for the active channel.

RESPOND

Use RESPOND to return inline text or multi-line messages. Values from variables, memory, and tool outputs can be referenced using {{ }} interpolation.
For multi-line content, use pipe symbol.
For reusable or channel-specific responses, reference a template instead.

Templates

Use the TEMPLATES block to define named, reusable responses that can be referenced throughout the agent using TEMPLATE(name). Templates help eliminate duplication, maintain consistent messaging, and simplify updates by defining a response once and reusing it across multiple flows. Templates support:
  • Variable interpolation using {{ }} to insert dynamic values.
  • Conditional blocks and loops for rendering dynamic content.
  • Multiple channel-specific variants, allowing the same response to be rendered differently on web, voice, Slack, WhatsApp, Teams, and other supported channels.
  • Interactive actions for building rich, interactive experiences.
The platform automatically selects the appropriate template variant for the active channel. DEFAULT is required and serves as the fallback when no channel-specific variant is available. Templates can be referenced from RESPOND, ON_START, and COMPLETE blocks using TEMPLATE(name). Refer to this guide for details and examples.

Interactive Responses

Add interactive elements to any response using ACTIONS. Supported actions include:
  • Buttons for predefined choices.
  • Select menus for choosing from a list.
  • Input fields for collecting user input.
  • Forms for grouping multiple inputs with a submit action.
Learn More.

Carousels

Carousels display a horizontal scrollable collection of cards, each with a title, subtitle, image, and action buttons. Use carousels when presenting multiple options for the user to browse and select from, such as hotel results, product listings, flight options, and similar multi-item responses. Define carousels within the RICH_CONTENT block using the CAROUSEL key.
For the complete list of carousel card properties and additional examples, see Carousel Rich Content

Customize System Messages

Use MESSAGES to customize system-generated responses to match the agent’s voice.

Test Your Agent

Studio provides an integrated chat interface for testing agents in real time.
  1. Open the agent from the Agents list.
  2. Switch to the Chat tab.
  3. Type messages in the input field to interact with the agent.
The chat interface sends messages to the runtime and displays the agent’s responses in real time.

Debug Panel

The chat view includes a split-pane debug panel.
Use trace events to understand why an agent made a particular decision. They show the full chain of reasoning, tool calls, and responses.

Session Management

Each test conversation creates a session. You can:
  • Start a new session to begin a fresh conversation.
  • View session history from the Sessions page.
  • Copy the session ID for reference or debugging.
For full details, refer Sessions guide.

Use The AI Architect

AI Architect is a context-aware AI assistant built into Studio. Access it from the Architect icon in the Studio header bar. The panel adapts to your current context. When editing a specific section (for example, Identity or Tools), the Architect shows section-specific suggestions and proposes code changes as a diff you can accept, reject, or refine.
AI Architect requires an LLM provider configured at the workspace level under Admin > Arch. If no provider is configured, a warning banner appears in the panel.

Troubleshooting


Related