add-action
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Add child agents, connected agents, or other multi-agent patterns to a Copilot Studio agent. Use when the user asks to create a sub-agent, child agent, connected agent, or call another agent.
$ npx -y skills add microsoft/skills-for-copilot-studio --skill add-other-agents --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/add-other-agentsContext preview
The summary Claude sees to decide when to auto-load this skill.
Add child agents, connected agents, or other multi-agent patterns to a Copilot Studio agent. Use when the user asks to create a sub-agent, child agent, connected agent, or call another agent.
user-invocable: false description: Add child agents, connected agents, or other multi-agent patterns to a Copilot Studio agent. Use when the user asks to create a sub-agent, child agent, connected agent, or call another agent. argument-hint: <agent description> allowed-tools: Bash(node *schema-lookup.bundle.js *), Read, Write, Glob context: fork agent: copilot-studio-author
Add multi-agent capabilities to a Copilot Studio agent. Two patterns are supported:
| Pattern | Use when | What it creates | |---------|----------|----------------| | **Child agent** | The agent needs a specialist sub-agent owned by the same parent | `AgentDialog` in `agents/` subdirectory | | **Connected agent** | The agent needs to call an external, independently-managed agent | `InvokeConnectedAgentTaskAction` in a topic (TaskDialog) |
Ask the user which pattern they need if unclear.
---
Create a new child agent (AgentDialog) that the parent agent's orchestrator can delegate to.
1. **Auto-discover the parent agent directory**:
Glob: **/agent.mcs.yml
Use the top-level agent (not one inside an `agents/` subdirectory). NEVER hardcode an agent name.
2. **Look up the AgentDialog schema**:
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve AgentDialog
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve OnToolSelected3. **Determine from the user**:
4. **Create the child agent directory** (Phase 1 — plain agent only, NO knowledge):
<parent-agent>/agents/<ChildAgentName>/ └── agent.mcs.yml
5. **Generate `agent.mcs.yml`** using `${CLAUDE_SKILL_DIR}/../../templates/agents/child-agent.mcs.yml` as the starting template. Read the template, then customize all placeholder values (`<...>`) based on the user's requirements.
Key structure:
**CRITICAL: AgentDialog must NOT have `beginDialog.actions`.** Child agents use generative orchestration — all behavior is driven by `settings.instructions`. Do NOT add action nodes (Question, SendActivity, BeginDialog, ConditionGroup, etc.) to the actions array. If the user's scenario requires hardcoded action flows, it should be an AdaptiveDialog topic in the parent agent, not a child agent.
6. **Key fields explained**:
Child agents MUST be created in two phases:
**Phase 1 — Create the plain agent** (steps 1-6 above):
**Phase 2 — Add knowledge sources** (only after the user confirms they pushed):
This constraint exists because knowledge sources reference the agent they belong to — the child agent must exist in the environment first.
kind: AgentDialog
beginDialog:
kind: OnToolSelected
id: main
description: This agent handles billing inquiries, payment issues, refund requests, and subscription management. Route here when users ask about charges, invoices, or account billing.
settings:
instructions: |
You are a billing support specialist. Help customers with:
- Understanding their charges and invoices
- Processing refund requests
- Managing subscription plans
- Resolving payment issues
Always verify the customer's account before making changes.
Escalate to a human agent for refunds over $500.
inputs:
- kind: AutomaticTaskInput
propertyName: CustomerQuery
description: The customer's billing-related question or issue
inputType:
properties:
CustomerQuery:
displayName: Customer Query
description: The customer's billing-related question or issue
type: String
outputType: {}---
Call an external, independently-managed agent from your agent. This creates a `TaskDialog` with an `InvokeConnectedAgentTaskAction` that the orchestrator can invoke.
The plugin creates the **calling side** YAML — a TaskDialog in your agent that invokes the connected agent with inputs/outputs.
The connected agent must be configured separately (in Copilot Studio UI or in its own project). Tell the user they need to set up the following on the connected agent:
1. **Create an `OnRedirect` topic** — this is the entry point when the a
A plugin for Claude Code, GitHub Copilot CLI, and VS Code that enables authoring, testing, and troubleshooting Microsoft Copilot Studio STANDARD agents through YAML files — directly from your terminal or editor.
Repo: microsoft/skills-for-copilot-studio
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt.…
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot…
Add a global variable to a Copilot Studio agent. Use when the user needs a variable that…
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the…
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a…