Skip to main content
Skip to main content

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

TL;DR
  • 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:

  1. Manual Orchestration — Topics route requests to specialized copilots
  2. Dynamic Orchestration — Generative Actions allow AI-driven tool selection

These patterns enable more scalable, accurate, and maintainable enterprise AI solutions.


Prerequisites

RequirementDetails
Foundational KnowledgeComplete Beginner's Guide
LicensingMicrosoft Copilot Studio tenant license
EnvironmentsUnderstanding of Power Platform Environments and Solutions
Power AutomateFamiliarity 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

ModelDescriptionBest For
Manual RoutingTopic with conditional logic calls correct pluginHighly structured processes
Dynamic OrchestrationAI decides which plugins to call and chainFlexible, 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:

  1. From topic canvas, select Action → Create a flow
  2. 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."

  3. 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
  1. Publish the specialist agent
  2. Navigate to Agent Overview → AI capabilities
  3. Enable "Make this copilot available as a plugin"
  4. 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

  1. Create "Coding Orchestrator" agent
  2. 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.
  3. 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)

  1. Create orchestrator as above
  2. Navigate to Topics → Plugins tab
  3. Click + Add a plugin and select your specialist agents
  4. 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?":

  1. Orchestrator AI analyzes the request
  2. Identifies PowerShell specialist as best fit
  3. Dynamically invokes the plugin
  4. 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

  1. Go to Topics page
  2. Select topic with flow
  3. Click action node to view flow Details
  4. Access run history and analytics

Review Conversations

Regularly review transcripts to identify:

  • Routing failures
  • User confusion points
  • Improvement opportunities

Glossary

TermDefinition
Orchestrator CopilotTop-level agent routing to specialists
Copilot PluginAgent published for other copilots to call
Plugin ActionTopic node that invokes a plugin
Generative ActionsAI-driven dynamic tool selection and chaining

Best Practices

Approvals in Flows

Add human-in-the-loop processes:

  1. Specialist triggers approval flow in Teams
  2. Copilot polls for approval outcome
  3. Informs user of result

Separation of Concerns

ComponentResponsibility
OrchestratorIntent understanding, routing
SpecialistsDeep domain expertise
FlowsActions and integrations

Testing Multi-Agent Systems

  • Test each specialist independently first
  • Test orchestrator routing logic
  • Test end-to-end with complex multi-step requests