The AI assistant uses a multi-agent architecture called the Agentic Experience (AX). Instead of a single AI handling everything, the system delegates tasks to specialised agents, each with its own instructions, tools, and responsibilities.
See It in Action Copy Link
The example below shows a full dashboard with three pre-loaded conversation threads. Open the AI panel to explore how the Lead delegates to Data, Layout, and Widget profiles.
What Is the AX? Copy Link
The AX is the orchestration layer that breaks complex requests into focused sub-tasks. When a user asks "Build me a sales dashboard", a single prompt is not enough; the system needs to inspect the data, create a plan, lay out widgets, and configure each one. The AX handles this by routing work through a team of specialised profiles.
Each profile is an independent AI persona. The Lead profile acts as the coordinator - it understands the user's intent, creates plans, and delegates to specialist profiles that do the actual work.
Built-in Profiles Copy Link
AG Studio includes five built-in profiles. Each has its own role, tools, and delegation permissions.
| Profile | Role | Tools | Delegates To |
|---|---|---|---|
| Lead | Coordinator. Receives user messages, inspects context, delegates to specialists. | view_schema, view_layout, view_plan, update_plan | planning, data, layout, widget |
| Planning | Creates structured plans for dashboard construction. | create_plan | - |
| Data | Explores and queries data sources. Answers data questions. | execute_query, view_schema, update_plan | - |
| Layout | Adds widget shells and positions them on the page. | add_widgets, set_widget_position, view_layout, view_plan, update_plan | - |
| Widget | Configures individual widgets - chart type, data mappings, titles, formatting. | configure_widget, add_widget_filter, remove_widget_filter | - |
The Widget profile is parameterised - when the Lead delegates to it, it specifies the widget type (e.g. { type: 'bar-chart-grouped' }), which tailors the configuration schema.
Tool Reference Copy Link
| Tool | Description |
|---|---|
view_schema | Retrieves the current data schema - all data sources, fields, types, and relationships. |
execute_query | Runs a query against the loaded data sources. Supports aggregation-based and SQL-like query modes. |
view_layout | Retrieves the current layout - all widgets on the active page with positions, sizes, and types. |
add_widgets | Adds one or more widget shells to the page with a type and optional position. |
set_widget_position | Moves a widget to a specific position on the grid. |
configure_widget | Configures a widget's data mappings, title, subtitle, formatting, and type-specific options. |
add_widget_filter | Adds a filter to a specific widget. |
remove_widget_filter | Removes a filter from a specific widget. |
add_filter | Adds a global filter that applies to all widgets on the page. |
remove_filter | Removes a global filter. |
create_plan | Creates a structured plan for a complex task with numbered items and statuses. |
view_plan | Retrieves the current plan, if one exists. |
update_plan | Updates one or more items in the current plan - typically marking items as complete. |
delegate_to | Delegates a task to a specialist profile, creating a child conversation. |
complete_task | Signals that the current delegated task is complete and returns control to the delegating profile. |
Walkthrough: "Build Me a Dashboard" Copy Link
Here is the full delegation sequence when a user asks for a dashboard:
1. Lead Receives the Message Copy Link
The Lead profile gets the user's message along with the current data schema and layout context. It calls view_schema to understand the available data, then decides the task is complex enough to need a plan.
2. Lead Delegates to Planning Copy Link
The Lead uses the delegate_to tool to hand off to the Planning profile. It passes a description of what the user wants and the schema context.
3. Planning Creates a Plan Copy Link
The Planning profile calls create_plan to produce a structured plan - a list of items like "Add KPI card for total revenue", "Add bar chart for sales by category", etc. It then calls complete_task to return control to the Lead.
4. Lead Delegates to Layout Copy Link
With the plan in hand, the Lead delegates to the Layout profile. The Layout agent calls add_widgets to create widget shells on the page and set_widget_position to arrange them. It returns the widget IDs.
5. Lead Delegates to Widget Agents Copy Link
The Lead delegates to multiple Widget agents - potentially in parallel. Each Widget agent receives a specific widget ID and its assigned plan item. It calls configure_widget to set the chart type, data mappings, titles, and formatting. It may also call add_widget_filter to apply widget-level filters.
6. Lead Confirms Completion Copy Link
Once all delegated tasks have returned, the Lead updates the plan (marking items complete) and sends a summary message back to the user.
Session Model Copy Link
The AX organises conversations into a clear hierarchy:
Threads Copy Link
A thread is a persistent conversation container. Users can create multiple threads within a single studio session. Each thread has its own conversation history.
Conversations Copy Link
Within a thread, each profile gets its own conversation. The main conversation belongs to the Lead. When the Lead delegates to a specialist, a new child conversation is created for that delegation.
Exchanges Copy Link
An exchange represents one user request through to full AI completion. It begins when the user sends a message (or when a delegation starts) and ends when the AI finishes responding. An exchange may contain multiple turns if the AI calls tools.
Turns Copy Link
A turn is a single iteration of the AI loop within an exchange. Turn 1 contains the user's input and the AI's initial response. If the AI calls tools, the tool results form the input for Turn 2, and so on until the AI produces a final text response or calls complete_task.
Delegation Copy Link
The act of one profile handing off a task to another. The Lead profile delegates to specialists (Planning, Data, Layout, Widget) using the delegate_to tool. The delegated agent works independently and returns results via complete_task.