원클릭으로
clone-agent
Clone a Copilot Studio agent from the cloud. Guides through environment selection, agent selection, and downloads agent YAML files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Clone a Copilot Studio agent from the cloud. Guides through environment selection, agent selection, and downloads agent YAML files.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Guide users through adding a new connector action to a Copilot Studio agent. Connector actions require UI-based connection setup, so this skill walks users through the Copilot Studio portal steps, then delegates to edit-action for YAML modifications.
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt. Use when the user asks to add an adaptive card, rich card, form card, info card, confirmation card, or interactive card to a topic.
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot Studio topic. Use this instead of /add-node when the user asks to add grounded answers, knowledge search, generative answers, or AI-powered responses — these nodes require specific patterns (ConditionGroup follow-up, knowledge source references, autoSend, responseCaptureType) that /add-node does not cover.
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the user asks to add a knowledge source, documentation URL, website, or SharePoint site for the agent to search.
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a question, message, condition, variable, or other node to a topic. Do NOT use this for generative answers or knowledge search — use /add-generative-answers instead.
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 |
| name | clone-agent |
| description | Clone a Copilot Studio agent from the cloud. Guides through environment selection, agent selection, and downloads agent YAML files. |
| argument-hint | agent name or environment hint |
Guided flow to clone a Copilot Studio agent from the cloud to a local workspace. Walks the user through environment selection, agent selection, and downloads the agent's YAML files.
This is a new capability under active development. If the manage-agent script fails, do not attempt to fix, patch, or work around it. Instead:
Look for existing connection details in this order. Stop at the first source that provides a tenantId:
.mcs/conn.json filesSearch the filesystem for previously cloned agents — these already have all the connection details:
Glob: **/.mcs/conn.json
Also search common project locations:
Glob: /Users/**/projects/**/.mcs/conn.json
Each conn.json contains TenantId, EnvironmentId, DataverseEndpoint, AgentManagementEndpoint, and AccountInfo. Parse any found files and collect unique tenant/environment pairs. If matches are found, present them to the user:
Found existing agent connections:
- Employee Assistant — Elad's Env (tenant: 8a235459...)
- IT Agent — Contoso Dev (tenant: efb073bb...)
Use one of these, or enter a different tenant ID?
If the user picks one → extract tenantId, environmentId, environmentUrl, agentMgmtUrl and skip to Phase 2 (or Phase 1 if they want a different environment).
If no conn.json found (or user wants a different tenant) → ask for their tenant ID (required).
No --client-id is needed — the script uses VS Code's first-party client ID with interactive browser login automatically.
Tell the user: "A browser window may open for Microsoft sign-in (tokens are cached after first login)."
Run the list-envs command:
node .github/scripts/manage-agent.bundle.js list-envs \
--tenant-id "<tenantId>"
Timeout: 300000ms (5 minutes) — set this on the Bash tool call to allow time for browser auth.
Parse the JSON output. On success (status: "ok"), present the environments as a numbered list to the user:
1. Contoso Dev (abc123-...)
2. Contoso Prod (def456-...)
Ask the user to pick an environment. Extract:
environmentIdenvironmentUrl (the url or dataverseUrl field)agentMgmtUrl (the agentManagementUrl field)First, ask the user: "Do you want to list only agents you own, or all agents in the environment?"
--no-owner (default, filters by current user)--no-owner flagnode .github/scripts/manage-agent.bundle.js list-agents \
--tenant-id "<tenantId>" \
--environment-url "<environmentUrl>" \
[--no-owner]
Timeout: 300000ms (5 minutes)
Parse the JSON output. Each agent has agentId, displayName, and ownedByCurrentUser. Present agents as a numbered list:
1. My Support Bot (yours)
2. HR Assistant
3. IT Helpdesk (yours)
Ask the user to pick an agent. Extract the agentId.
Run the clone command. The workspace should be the current directory (.). The --agent-id is required (from Phase 2):
node .github/scripts/manage-agent.bundle.js clone \
--workspace "." \
--tenant-id "<tenantId>" \
--agent-id "<agentId>" \
--environment-id "<environmentId>" \
--environment-url "<environmentUrl>" \
--agent-mgmt-url "<agentMgmtUrl>"
Timeout: 300000ms (5 minutes)
On success:
Glob: **/agent.mcs.yml to find and show the cloned agent file.mcs/conn.json was created in the agent directory| Error | Resolution |
|---|---|
| Browser auth fails or times out | Ask user to try again; check that they have access to the tenant |
| No environments found | Verify tenant ID is correct and user has Power Platform access |
| No agents found | Verify environment selection; user may need Copilot Studio access |
| Clone fails | Check permissions; the user needs maker/admin access to the agent |