Advanced Copilot Studio: Orchestrators and Agentic Workflows
Audience: Advanced Copilot Studio developers
Purpose: Build multi-agent systems using orchestrator patterns and generative actions
Quick Reference
- Orchestrator Copilot — Primary agent that routes requests to specialized sub-agents
- Copilot Plugins — Standalone agents with narrow, deep expertise
- Manual Routing — Topic-driven routing with Plugin Actions for full control
- Generative Actions — AI-driven dynamic selection and chaining of plugins
- Power Automate — Embed flows in plugins for actions, not just answers
Overview
This guide moves beyond single-agent design to introduce advanced architectural patterns:
- Manual Orchestration — Topics route requests to specialized copilots
- Dynamic Orchestration — Generative Actions allow AI-driven tool selection
These patterns enable more scalable, accurate, and maintainable enterprise AI solutions.
Prerequisites
| Requirement | Details |
|---|---|
| Foundational Knowledge | Complete Beginner's Guide |
| Licensing | Microsoft Copilot Studio tenant license |
| Environments | Understanding of Power Platform Environments and Solutions |
| Power Automate | Familiarity with flow concepts |
Procedure
Step 1: Design the Agentic Architecture
Define the Orchestrator's Role
The primary copilot understands top-level user goals with minimal domain-specific knowledge.
Identify Specialized Domains
For a "Coding Orchestrator" example:
- PowerShell scripting
- Bash scripting
- Python development
- Java development
Choose Orchestration Model
| Model | Description | Best For |
|---|---|---|
| Manual Routing | Topic with conditional logic calls correct plugin | Highly structured processes |
| Dynamic Orchestration | AI decides which plugins to call and chain | Flexible, complex requests |
Step 2: Build a Specialized Copilot Plugin
Create the Specialist
Create an agent like "PowerShell Action Assistant" with:
Focused Instructions:
You are an expert AI assistant specializing ONLY in PowerShell.
Your purpose is to provide code, explain concepts, and execute related actions.
If asked about another language, you MUST state you are a PowerShell specialist
and cannot help.
Curated Knowledge:
- High-quality PowerShell documentation
- Internal coding standards
- No other language knowledge
Embed Actions with Power Automate
Make the plugin do things, not just answer questions:
- From topic canvas, select Action → Create a flow
- Use Natural Language to describe the flow:
"Get the user's question and generated PowerShell script. Create a draft email in Outlook with the script and send to the user."
- Or use the Full Designer for complex logic
Test Rigorously
Ensure the specialist:
- ✅ Answers domain questions correctly
- ✅ Refuses off-topic questions
- ✅ Embedded flows execute successfully
Step 3: Publish as a Plugin
- Publish the specialist agent
- Navigate to Agent Overview → AI capabilities
- Enable "Make this copilot available as a plugin"
- Share with the Entra ID group containing orchestrator users
Repeat for all specialist agents.
Step 4: Build the Orchestrator
Method A: Manual Routing with Topics
- Create "Coding Orchestrator" agent
- Set instructions focused on delegation:
You are a primary AI assistant that helps users with coding questions
by directing them to the correct specialist. First, determine the
programming language the user needs. Do not attempt to answer coding
questions yourself. - Build routing topic:
- Trigger phrases: "help with code", "write a script"
- Condition node checks for keywords (PowerShell, Python, etc.)
- Routes to appropriate Plugin Action
- Falls back to Question node if unclear
Method B: Dynamic Orchestration (Generative Actions)
- Create orchestrator as above
- Navigate to Topics → Plugins tab
- Click + Add a plugin and select your specialist agents
- Enable in Settings → Generative AI:
- Toggle on "Dynamic chaining with generative actions"
How It Works:
When a user asks "How do I create a file with PowerShell and get its hash?":
- Orchestrator AI analyzes the request
- Identifies PowerShell specialist as best fit
- Dynamically invokes the plugin
- Returns results to user
For complex requests ("Get SharePoint data, process with Python, email result"), it chains multiple plugins.
Step 5: Monitor and Maintain
Monitor Plugin Executions
Orchestrator analytics show which plugins are called.
Monitor Embedded Flows
- Go to Topics page
- Select topic with flow
- Click action node to view flow Details
- Access run history and analytics
Review Conversations
Regularly review transcripts to identify:
- Routing failures
- User confusion points
- Improvement opportunities
Glossary
| Term | Definition |
|---|---|
| Orchestrator Copilot | Top-level agent routing to specialists |
| Copilot Plugin | Agent published for other copilots to call |
| Plugin Action | Topic node that invokes a plugin |
| Generative Actions | AI-driven dynamic tool selection and chaining |
Best Practices
Approvals in Flows
Add human-in-the-loop processes:
- Specialist triggers approval flow in Teams
- Copilot polls for approval outcome
- Informs user of result
Separation of Concerns
| Component | Responsibility |
|---|---|
| Orchestrator | Intent understanding, routing |
| Specialists | Deep domain expertise |
| Flows | Actions and integrations |
Testing Multi-Agent Systems
- Test each specialist independently first
- Test orchestrator routing logic
- Test end-to-end with complex multi-step requests
Related Resources
- Copilot Overview — Platform documentation
- Beginner's Guide — First agent walkthrough
- Power Platform — Automation resources
- Microsoft Copilot Studio Docs — Official documentation