Vue Embedded AnalyticsAgentic Experience

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.

ProfileRoleToolsDelegates To
LeadCoordinator. Receives user messages, inspects context, delegates to specialists.view_schema, view_layout, view_plan, update_planplanning, data, layout, widget
PlanningCreates structured plans for dashboard construction.create_plan-
DataExplores and queries data sources. Answers data questions.execute_query, view_schema, update_plan-
LayoutAdds widget shells and positions them on the page.add_widgets, set_widget_position, view_layout, view_plan, update_plan-
WidgetConfigures 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

ToolDescription
view_schemaRetrieves the current data schema - all data sources, fields, types, and relationships.
execute_queryRuns a query against the loaded data sources. Supports aggregation-based and SQL-like query modes.
view_layoutRetrieves the current layout - all widgets on the active page with positions, sizes, and types.
add_widgetsAdds one or more widget shells to the page with a type and optional position.
set_widget_positionMoves a widget to a specific position on the grid.
configure_widgetConfigures a widget's data mappings, title, subtitle, formatting, and type-specific options.
add_widget_filterAdds a filter to a specific widget.
remove_widget_filterRemoves a filter from a specific widget.
add_filterAdds a global filter that applies to all widgets on the page.
remove_filterRemoves a global filter.
create_planCreates a structured plan for a complex task with numbered items and statuses.
view_planRetrieves the current plan, if one exists.
update_planUpdates one or more items in the current plan - typically marking items as complete.
delegate_toDelegates a task to a specialist profile, creating a child conversation.
complete_taskSignals 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.