What it observes

The Copilot agents in one site, and the sources each one declares.

PowerShell
m365-governance collect agents \
  --client-id <id> \
  --site-url https://<tenant>.sharepoint.com/sites/<site> \
  --output ./evidence/agents/
ModeAgents
Needs--site-url
Profiledefault
Produces findingsNo
Consumed byThe agent inventory in a report, and any viewer

The one slice with no rule, declared rather than hidden

The standing rule of this engine is that a collection path no rule can consume must not exist: a path nobody reads is a maintenance cost with no output. agents is the single deliberate exception, and it is recorded in the code rather than smuggled past a test.

Why there is no rule. Microsoft publishes nothing about how many agents an organisation should have, or where they should live. A threshold would be invented, and a pass against an invented threshold means nothing. Under the basis model there is no documented-limit and no documented-guidance to point at, so no rule can honestly be written.

Why it is still collected. The inventory is worth having. consumed_by names the consumer explicitly so that "no rule" never reads as "nobody looked".

Why this is readable at all

An agent in SharePoint is a .agent file in the site's Site Assets library. There is no agent service to call. The file's own definition names every site, library or item the author told it to read.

The field names come from Microsoft's declarative agent manifest schema 1.8, which is stronger provenance than the module's types alone.

Two documented properties this cannot report

Recorded so nobody reads their absence as their absence from the agent:

  • search_associated_sites, which makes a source pointed at a hub reach every site associated with it.
  • part_id for OneNote.

Both are governance relevant. Neither is surfaced by PnP on the source item, so neither is observable from here.

Two things it deliberately does not do

It does not report who may use an agent. That is the file's permissions, a separate read. Answering half of it here would invite the reading that the two halves are one: the file decides who holds the agent, and something else decides who may reach what it points at.

What the Engine publishes

Generated from the Engine's capability manifest at1.0.0b6@b4bf9c325233. No value on this panel is maintained by this site.

Answers
the Copilot agents in one site, and the sources each declares
Collector
PnP PowerShell · mode Agents
Reads
  • Get-PnPWeb
  • Get-PnPCopilotAgent
Least privilege
not established

No source settles the least privilege for this collector, so the Engine states none. An invented permission would be worse than an admitted gap, because somebody would grant it.

Produces
sharepoint ·site
Proven against a tenant
live-validated

Rules that decide from it

No rule reads this evidence, and that is a recorded decision rather than a gap: the agent inventory in a report, and any viewer is what consumes it. A threshold invented for a surface Microsoft publishes no position on would make a pass mean nothing.

Contracts it produces

Every collection writes evidence and an account of itself. The manifest publishes no narrower per-capability list, so this states what it does establish rather than guessing at more.