Designing Agent-to-Agent Collaboration
I designed how users experience an Azure workload agent collaborating with an external Oracle agent during an investigation, including showing what was delegated and what came back, communicating progress or delays, and asking the user for clarification or approval when needed.
- Role
- Senior UX Designer, working with product, engineering, and UX partners
- Timeline
- Sep 2026 – Present
- Outcome
- Defined how users see and steer delegated agent work; the delegation pattern is now in early discussion with the Azure Design System team as a potential core Azure Copilot pattern. POC accepted and moving towards implementing with design system team.
Context
Our Azure workload agent helps users investigate issues across a complex enterprise workload. For specialist Oracle questions, it can delegate part of the investigation to an external Oracle agent. That agent may return a finding or ask for clarification or approval before it can continue. The Azure agent remains responsible for combining the Oracle result with broader workload evidence and explaining the conclusion to the user.
This introduced a new interaction for our product. The existing trace framework did not yet provide a clear way to show delegated work, its progress, or requests for user input. I needed to design those moments as part of one coherent investigation, without making users follow the underlying agent-to-agent protocol.
The problem
Agent-to-agent collaboration can happen out of sight. During an investigation, our agent may delegate a specialist question to an external partner agent, share context, and receive a finding. Users do not need to follow every protocol message, but they do need to understand the consequential parts of that exchange: what was delegated, what information was shared, what came back, and which agent is responsible for the final conclusion.
The handoff can also require the user to clarify a question or approve a next step. Those requests need to be clear about who is asking, why input is needed, and what will happen after the user responds.
Meanwhile, the underlying agent capabilities and protocol behavior were evolving. The design needed to make delegation and user input understandable without depending on one implementation of the exchange.
What the user sees
The user sees each step of the exchange, with a clear line between what our agent does and what the partner’s agent does.
Approval gates the crossing, and the activity record outlives the conversation.
Key decisions
1. Make the handoff visible without exposing the protocol. I designed the trace to show why the Azure agent delegated work, what the Oracle agent was asked to investigate, its progress, and the finding it returned. Raw messages and identifiers remain available for technical inspection rather than appearing in the default view.
2. Keep the agents’ responsibilities distinct. The Oracle agent provides specialist findings; the Azure agent combines those findings with broader workload evidence and owns the final conclusion. Showing that transition helps users understand where the answer came from.
3. Ask for user input at consequential moments. When the investigation needs clarification or approval to proceed, the experience explains what is needed, why, and what will happen after the user responds. I did not assume every delegation requires a separate approval step.
4. Design for work that outlasts the conversation. Delayed partner activity raised a broader question: how users return to an investigation, see what completed, and inspect its history. I explored persistent activity and history as a direction, rather than treating the chat transcript as the complete record.
Extending the agent trace framework
The existing trace framework gave me a starting point, but it did not yet clearly represent work delegated to an external agent. I first mapped the Oracle investigation to its current layers, testing whether an existing tool step could show the handoff without a new component.
That exercise clarified what the trace needed to communicate: the delegated objective, the Oracle agent’s progress and finding, and the Azure agent’s subsequent synthesis. I explored a dedicated delegation step for cases where the existing pattern obscured those distinctions, while keeping technical identifiers and protocol details available on inspection rather than in the default view.
Impact
The delegation design gave product, engineering, and UX partners a central artifact for evaluating and aligning on how an external agent’s work should appear within an investigation based on the ongoing technical implementation discussions.
The work has gained traction within the broader design studio. I’ve since begun working with the design system team to understand how the pattern could be implemented as a core Azure Copilot pattern. It has not been adopted yet, but it has opened a path to evaluate it at the studio level.