AgentSkillsCN

copilot-studio-cli

通过 Power Platform 和 Dataverse API 管理 Microsoft Copilot Studio 代理的 CLI 工具。 适用于以下场景时使用此技能: - 导出 Copilot Studio 对话活动并生成分析数据 - 列举、创建、更新或删除 Copilot Studio 子代理 - 探索 Power Platform 环境与机器人 - 查询 Copilot Studio 功能标记 触发关键词:Copilot Studio、Power Platform、Dataverse、机器人活动、子代理、对话导出

SKILL.md
--- frontmatter
name: copilot-studio-cli
description: |
  CLI for managing Microsoft Copilot Studio agents via Power Platform and Dataverse APIs.
  Use this skill when:
  - Exporting Copilot Studio conversation activities and generating analytics
  - Listing, creating, updating, or deleting Copilot Studio sub-agents
  - Discovering Power Platform environments and bots
  - Querying Copilot Studio feature flags
  Trigger keywords: copilot studio, power platform, dataverse, bot activities, sub-agent, conversation export

Copilot Studio CLI

Bash CLI for managing Microsoft Copilot Studio agents. Script location: scripts/export-activities.sh

Dependencies

bash
npm install -g @pnp/cli-microsoft365  # M365 CLI for auth
brew install jq                        # macOS (or apt install jq)
# curl is pre-installed

Configuration Discovery Workflow

1. Authenticate

bash
m365 login  # Opens browser

2. Get Tenant ID

bash
m365 tenant id get
# Returns: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

3. List Environments

bash
m365 pp environment list --output json | jq '.[] | {name: .properties.displayName, id: .name, dataverse: .properties.linkedEnvironmentMetadata.instanceApiUrl}'

The id is your Environment ID. Environment URL pattern: https://{ENV_ID}.environment.api.powerplatform.com

4. List Bots

bash
./scripts/export-activities.sh --list-bots \
  -t 'TENANT_ID' \
  -e 'https://ENV_ID.environment.api.powerplatform.com' \
  --env-id 'ENV_ID'

The Schema Name is your COPILOT_BOT_ID.

Configuration

Environment variables or config/copilot-export.json:

bash
export COPILOT_ENV_URL="https://ENV_ID.environment.api.powerplatform.com"
export COPILOT_BOT_ID="bot_schema_name"
export COPILOT_TENANT_ID="tenant-id"

Commands Reference

Discovery

bash
# List environments
./scripts/export-activities.sh --list-envs -t 'TENANT_ID'

# List bots
./scripts/export-activities.sh --list-bots -t 'TENANT_ID' -e 'ENV_URL' --env-id 'ENV_ID'

# List sub-agents
./scripts/export-activities.sh --list-subagents -b 'BOT_SCHEMA' --env-id 'ENV_ID'

# Feature flags
./scripts/export-activities.sh --feature-flags --env-id 'ENV_ID' -t 'TENANT_ID'

Export Conversations

bash
# Single conversation
./scripts/export-activities.sh -c 'CONVERSATION_UUID' -b 'BOT_SCHEMA' -t 'TENANT_ID' -e 'ENV_URL'

# Multiple conversations with date filter
./scripts/export-activities.sh -c 'CONV1,CONV2' --days 7 -b 'BOT_SCHEMA' -t 'TENANT_ID' -e 'ENV_URL'

# Re-generate analytics
./scripts/export-activities.sh --analytics-only -o ./reports/existing_export

Sub-Agent Management

bash
# Export config to YAML
./scripts/export-activities.sh --export-agent --agent-schema 'bot.agent.Agent_Xyz' --env-id 'ENV_ID'

# Create agent
./scripts/export-activities.sh --create-agent -b 'PARENT_BOT' --agent-name 'My Agent' --yaml-file './config.yaml' --env-id 'ENV_ID'

# Update agent
./scripts/export-activities.sh --update-agent --agent-schema 'bot.agent.Agent_X' --field data --value './config.yaml' --env-id 'ENV_ID'

# Delete agent
./scripts/export-activities.sh --delete-agent --agent-schema 'bot.agent.Agent_X' --env-id 'ENV_ID'

Output Structure

Exports to ./reports/copilot_export_TIMESTAMP/:

FileContents
raw_activities.jsonFull DirectLine activities
messages.json/csvExtracted messages
tool_usage.json/csvSub-agent invocation stats
ai_observations.jsonAI research observations
execution_metrics.jsonTiming data
plan_timeline.jsonDynamic plan events
dashboard.htmlVisual HTML report
REPORT.mdMarkdown summary

Troubleshooting

ErrorSolution
"Could not determine Dataverse URL"Pass --env-id with valid environment ID
Authentication errorsRun m365 login
Missing permissionsNeed Dataverse API access, Flow.Read.All