Skip to content

Zero-Access Agent

Give the AI the reports, never the systems. An architecture for answering questions about an endpoint fleet with an AI agent that holds no access to any live system. Scheduled read-only jobs export sanitized, pre-aggregated snapshots; the agent answers only from those.

Build it yourself Source on GitHub

The pattern, in one screen

  1. Source — Intune / Entra. read-only (.Read.All) via Managed Identity; the AI never touches it.
  2. Collect — scheduled Azure Automation runbooks pull read-only from Graph and pre-aggregate into slim CSV snapshots.
  3. Store — Azure Blob: full CSVs for Power BI, slim snapshots for the agent.
  4. Retrieve — Azure AI Search over the snapshots, RBAC read-only.
  5. Answer — an Azure AI Foundry agent that holds no scopes and no keys, and answers only from the index.

It trades freshness for containment — snapshots are as current as the last run, not live. That trade is the whole point.

The ten collectors

Each is a real read-only runbook, and each pairs with a script page and a Power BI report in the library.

Start with the walkthrough

  • Build it yourself — empty subscription to read-only runbooks + a Power BI report.
  • Collection layer setup — the Automation Account, Managed Identity, read-only Graph roles.
  • Enrichment tool — the one optional, human-run utility that can write. Fenced, opt-in, named openly.

One honest exception

The read-only guarantee covers the collection → agent path. The repo ships one optional, human-run enrichment utility that can write device warranty into Notes. It's fenced off, opt-in, defaults to a read-only report — and named openly rather than hidden.