Back office ops · Production

How Atlassian's Rovo Chat evolved into a hierarchical multi-agent orchestration framework

The problem

Rovo Chat's original single-agent framework was static and failed to generalize as queries became more complex, with a single orchestrator easily getting confused when managing tools across many domains.

First attempt

A multi-agent DAG orchestration approach proved brittle when subagents failed or did not supply the information needed by downstream tasks, because a complete orchestration plan could not be reliably generated from the user query alone in a single shot.

Workflow diagram · grounded in source
1
User submits query to Rovo Chat
trigger
“Rovo Chat is Atlassian's conversational AI chat designed to help users retrieve information from their enterprise's knowledge base to answer questions or perform actions”
2
LLM selects reasoning mode
routing
“we leave it to the LLM to decide the level of complexity for the query, routing to the appropriate reasoning mode”
3
Orchestrator decomposes complex queries
ai_action
“We explicitly tune our orchestrator to break down the user query into digestible sub-tasks when the query is complex. We exploit the parallel tool calling capabilities of modern language models here to naturally delegate these sub-tasks …”
4
Route subtask to domain subagent
routing
“allowing the orchestration to route to the most appropriate "expert" as a subagent”
5
Domain subagent executes specialized task
ai_action
“allowing the domain-specialized subagent to attend to just that category of problems”
6
Response delivered to user
output
“execute tool calls to fulfill that plan, and respond to the user”
Reported outcome

The hybrid multi-agent orchestrator achieved a +3.49% quality improvement and reduced P50 first-token latency by 29.5% and P90 latency by 19.97% compared to the single-agent RAG baseline.

Reported metrics
response correctness improvement — Hybrid Orchestrator vs single-agent baseline+3.49%
response correctness improvement — DAG Orchestrator vs single-agent baseline+2.52%
P10 first-token latency change — Hybrid Orchestrator vs baseline-75.96%
P10 first-token latency change — DAG Orchestrator vs baseline-71.7%
Show all 8 reported metrics
response correctness improvement — Hybrid Orchestrator vs single-agent baseline+3.49%
response correctness improvement — DAG Orchestrator vs single-agent baseline+2.52%
P10 first-token latency change — Hybrid Orchestrator vs baseline-75.96%
P10 first-token latency change — DAG Orchestrator vs baseline-71.7%
P50 first-token latency change — Hybrid Orchestrator vs baseline-29.5%
P50 first-token latency change — DAG Orchestrator vs baseline-1.16%
P90 first-token latency change — Hybrid Orchestrator vs baseline-19.97%
P90 first-token latency change — DAG Orchestrator vs baseline+2.24%
Reported stack
Rovo ChatLLMsRAGJiraJQL
Source
https://www.atlassian.com/blog/atlassian-engineering/how-rovo-embraces-multi-agent-orchestration
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

The hybrid multi-agent orchestrator achieved a +3.49% quality improvement and reduced P50 first-token latency by 29.5% and P90 latency by 19.97% compared to the single-agent RAG baseline.

What tools did this team use?

Rovo Chat, LLMs, RAG, Jira, JQL.

What results were reported?

response correctness improvement — Hybrid Orchestrator vs single-agent baseline: +3.49%; response correctness improvement — DAG Orchestrator vs single-agent baseline: +2.52%; P10 first-token latency change — Hybrid Orchestrator vs baseline: -75.96%; P10 first-token latency change — DAG Orchestrator vs baseline: -71.7% (source-reported, not independently verified).

What failed first in this deployment?

A multi-agent DAG orchestration approach proved brittle when subagents failed or did not supply the information needed by downstream tasks, because a complete orchestration plan could not be reliably generated from th…

How is this back office ops AI workflow structured?

User submits query to Rovo Chat → LLM selects reasoning mode → Orchestrator decomposes complex queries → Route subtask to domain subagent → Domain subagent executes specialized task → Response delivered to user.