Inventory every Copilot Studio agent¶
Copilot Studio agents are usually built in a web designer, not in a repository, so there is no pull request to review and no file to diff. Marshal reads the solutions you export from Power Platform and keeps a versioned record of each agent: its model, instructions, tools, knowledge sources, and above all whose credentials each tool uses.
1. Export the solutions that hold your agents¶
$ pac auth create --environment https://contoso.crm.dynamics.com
$ pac solution export --name ContosoHelpdesk --path ContosoHelpdesk.zip
Power Platform can't export a managed solution, so export the unmanaged solutions where makers build, usually in a development environment. A folder cloned with the Copilot Studio extension for Visual Studio Code works too.
2. Record them¶
$ pip install marshal-ledger
$ marshal collect ContosoHelpdesk.zip --event shipped --environment prod
Each agent in the solution, and each of its sub-agents, becomes its own record. The format is detected; see Copilot Studio for exactly what is read from each file.
3. Ask the questions an admin center can't¶
$ marshal ls --platform copilot-studio
AGENT PLATFORM LATEST SHIPPED FRESHNESS COMPLETE
eval_testAgent copilot-studio v1 prod v1 prod: manual 0d 38%
mpa_LeaveManagement copilot-studio v1 prod v1 prod: manual 0d 53%
test_allthethings copilot-studio v1 prod v1 prod: manual 0d 36%
test_allthethings/HelperAgent copilot-studio v1 prod v1 prod: manual 0d 30%
Which agents use the maker's credentials for some tools and each user's own for others?
$ marshal ls --identity mixed
Which agents read a SharePoint site, or call a Dataverse operation?
$ marshal ls --knowledge "*sharepoint*"
$ marshal deps "tool/powerplatform.shared_commondataserviceforapps.*"
A Maker connection runs every user's request with the credentials the agent's author configured. An Invoker connection uses each user's own. Marshal records the mode of every action and topic call, and summarizes them as the agent's identity, so an agent that quietly acts as its author for everyone stands out.
4. Keep it current¶
Run the export on a schedule and push it as an observed event. Marshal then reports any edit made in the web designer as drift from what was shipped. The scheduled Copilot Studio workflow signs in to Power Platform with a federated credential, so no secret is stored, and Detect drift shows what a report looks like.
To share the inventory, push to a shared Marshal server instead of a local file, and browse it in the web view.