LearnMicrosoft 365 Copilot › 5 · Agents

Autonomous agents and triggers

Remove the human turn-taking and an agent becomes a worker: triggered by events, pursuing goals, taking actions at machine speed. The design discipline is bounding what it can do between human checkpoints.

The flow — what actually happens

Plain-language first; the packet-level view underneath each step is what you'd see in a Wireshark trace, and what healthy looks like.

  1. A trigger fires

    An email arrives, a record changes, a schedule ticks. No human asked anything — the agent's run begins because the world changed. This is the moment that separates autonomous from conversational: nobody is watching THIS run.

    On the wire Trigger event -> agent runtime invocation, logged per run with the triggering context — run history is your only witness, which is why it must be retained and reviewed.
  2. The reasoning loop

    The agent plans against its instructions: read the invoice, check the PO, draft the response, decide next steps. Each iteration can call actions. The loop is where capability lives — and where a bad plan compounds unattended.

    On the wire Action calls to registered endpoints, each with the agent's identity (Agent ID) on the wire — per-action telemetry under that identity is your audit trail and your anomaly detector.
  3. The checkpoint (if you designed one)

    Well-designed autonomy escalates at consequence boundaries: draft-for-approval instead of send, propose instead of execute beyond thresholds. The checkpoint is a design artifact — its ABSENCE is a decision too, one someone should have made consciously.

    On the wire Approval steps appear as human tasks (Teams/Approvals) in the run — a run history with zero human touchpoints on consequential actions is the red-flag pattern to hunt.
  4. Completion — or the kill switch

    The run ends, results logged. When something is wrong AT SCALE (a loop misfiring on every record), the question is 'who can stop it in one minute?' — disable the agent identity (CA/Entra), pause the agent, or kill the trigger. All three paths should be documented BEFORE enablement.

    On the wire The disable event and the run-rate falling to zero — your incident's closure evidence, and a drill worth running once before production.

The bounding checklist (per autonomous agent, before enablement)

  1. Trigger scope: exactly what starts it; volume ceiling expected.
  2. Action allowlist: what it may do, with WRITE actions enumerated separately — reads inform, writes commit.
  3. Consequence thresholds: above X (money, external comms, deletions), a human checkpoint — explicit, tested.
  4. Identity least-privilege: the Agent ID's permissions match the allowlist (governance concept) — not the maker's own god-rights.
  5. Kill paths: the three stop mechanisms named, with WHO may pull them.
  6. Run retention: history kept long enough to reconstruct any dispute.

An agent that can't produce this one-pager isn't ready for triggers — that's the promotion gate.

Failure patterns to design against

Pattern Bound that prevents it
Loop storm (trigger feeds its own output) Trigger filters + run-rate ceilings
Confident wrong actions at scale Consequence thresholds + draft-mode defaults
Scope creep after go-live Change-review on definitions (audit alerts)
Orphaned autonomy (owner left, agent kept running) Ownership lifecycle + periodic re-attestation

What to watch (proofs)

  • Run-rate baselines per agent: normal volume graphed — the storm is a spike you can alert on within minutes, not a month-end surprise.
  • Human-touchpoint ratio: consequential actions with vs without approvals in run history — the checkpoint design, measured in production.
  • The kill drill: one rehearsed disable, timed — 'who can stop it' as a tested number, not an org-chart guess.
  • Write-action audit: everything the agent COMMITTED (sent, changed, posted) under its identity — the weekly review that keeps autonomy boring.

Discussion

No messages yet — start the thread.

Sign in with your email to join the discussion — we send a one-time link, no password.