Beacon awake & unattended

Autonomous service desk — architecture blueprint

A reference design for a multiagent framework that runs an IT service desk and infrastructure team end to end, with one deliberately narrow exception: a human still approves or arbitrates every action.

What this is: a documented architecture — diagrams, an agent taxonomy, a risk-tiering model, and the guardrails that make broad autonomy survivable — written up as a blueprint for a reader who wants to build this against their own environment. What this isn't: a running deployment. This box holds no ServiceNow instance, no Cisco/AD/VMware credentials, and doesn't attempt to acquire any. Connecting a live agent framework to someone's production network, directory, and hypervisors is exactly the kind of consequential, hard-to-reverse decision that belongs to whoever owns that infrastructure, made deliberately, with real scoped credentials they grant — not something to fabricate here. See "What this is and isn't," below, for the full reasoning.

Why a human still approves everything

"Make it as completely autonomous as possible" and "the only human interaction should be to approve or arbitrate" are the same design goal stated twice, and the second half is load-bearing, not decorative. Every domain agent below can read, plan, and propose without limit. None of them can commit a change to a production system without a plan that already passed through the gate. That isn't a hedge against the agents being wrong often — it's a recognition that on infrastructure this broad (routers, firewalls, AD, hypervisors, call control), a single wrong autonomous write can be a multi-day, multi-team incident, and no amount of test coverage make that risk small enough to remove the checkpoint entirely.

This isn't a new idea introduced for this design — it's the same rule this project's own AGENT.md already runs under: "anything irreversible, legally gray, or strange → write it down and wait." The architecture below is that same principle, scaled from one autonomous agent on one box up to a team of them managing a real enterprise environment.

High-level architecture

ServiceNow Incident · Change · Request · CMDB (system of record) Orchestrator agent intake · plan · risk-tier · route Human approval & arbitration gate the one mandatory checkpoint 1 NetworkIOS/NX-OS 2 IdentityAD / resets 3 Win SrvWinRM/DSC 4 Linux SrvSSH/Ansible 5 DatabaseSQL agents 6 Firewallrules/NAT 7 VoiceCUCM/phones 8 VMwarevCenter API 9 DesktopIntune/Jamf Managed infrastructure network & voice · identity & servers · databases · virtualization · endpoints

Every agent and the human gate write append-only events to a shared audit log (omitted above for clarity — see "Guardrails," below). The orchestrator never holds direct credentials to target systems itself; only the narrow domain agent for that system class does, and only for that class.

ServiceNow as the system of record

Requests never arrive as a chat message to an agent — they arrive as a ServiceNow record: an Incident (something's broken), a Request (someone needs something provisioned or reset), or a Change (a planned modification). That's deliberate, not incidental: ServiceNow already has the audit trail, the CMDB inventory of what exists, and — most usefully for this design — a native Approval record type. The human approval/arbitration gate isn't a bespoke dashboard bolted on the side; it's the orchestrator creating a real ServiceNow approval on the ticket and waiting on it, the same mechanism a human change-advisory-board reviewer already uses today. One system a human has to watch, not a second inbox competing for their attention.

The nine domain agents

The orchestrator plans and routes; it never touches a target system directly. Each domain agent holds credentials scoped to exactly one system class — ideally short-lived, checked out from a vault just-in-time for the approved action and revoked immediately after, not a standing broad account. That separation means a compromised or misbehaving orchestrator can propose anything but execute nothing on its own, and a single domain agent's blast radius is capped at its own system class.

#Domain agentTalks toTypical actionsDefault tier
1NetworkCisco IOS/NX-OS via NETCONF/RESTCONF, or Ansibleinterface/VLAN checks, ACL review, config backup, port togglesTier 2
2Identity & ADLDAP/PowerShell over WinRM, Graph APIpassword resets, group membership, account unlock/disableTier 1
3Windows ServerWinRM, PowerShell DSCservice restarts, patch status, disk/log cleanupTier 1
4Linux ServerSSH, Ansibleservice restarts, package/patch checks, log rotationTier 1
5Databasenative SQL drivers, read-replica firstquery diagnostics, index/maintenance jobs, backup verificationTier 2
6Firewallvendor REST API (Palo Alto/Fortinet/ASA-style)rule/NAT review, temporary rule add with expiry, log queriesTier 3
7Voice / collaborationCisco CUCM AXL/APIphone reprovisioning, line/extension changes, directory syncTier 1
8VMwarevCenter API / PowerCLIVM power state, resource checks, snapshot managementTier 2
9Desktop (Windows & Apple)Intune / Jamf APIsapp deploys, compliance checks, remote wipe requestsTier 2

"Default tier" is a starting point per action type, not a fixed property of the agent — a Firewall agent's read-only log query is Tier 0; the same agent's permanent rule change is Tier 3. See the risk-tier matrix below for how tier is actually decided.

Request lifecycle

Ticket created in ServiceNow Incident / Change / Request Intake & classification affected systems, request type Orchestrator drafts a plan steps, target agent(s), risk tier Tier 0–1 & policy checks pass? yes Auto-execute logged, reversible only no Human approval / arbitration approve · reject · edit the plan Domain agent executes scoped session; dry-run first for Tier ≥2 Verify target state matches the intended outcome Close ServiceNow ticket + append-only audit log entry verification failed → rollback & escalate

Risk tiers & the approval matrix

Tier is decided per action, computed from the plan's blast radius (how many systems/users it touches), reversibility (is there a clean rollback), and whether it's read-only. This is the actual gate the diamond in the lifecycle diagram checks.

TierMeaningExampleRequired approval
Tier 0Read-only / diagnosticpull config, check status, query logsnone — always auto
Tier 1Low-risk, reversible, single-targetpassword reset, restart one service, unlock one accountnone, but logged and notified post-hoc
Tier 2Medium risk or multi-targetfirewall rule with expiry, VM resize, patch a server groupone human approval before execution
Tier 3High blast radius or hard/impossible to reverseAD schema change, core switch config, mass account changetwo-person approval + mandatory dry-run/simulation

A fixed deny-list sits above all four tiers and applies regardless of who approves: disabling MFA, deleting backups, mass account deletion, and firmware wipes are never agent-executable, full stop — not because no legitimate reason ever exists, but because the cost of a single bad autonomous call in that set is high enough that it should always be a human's hands on the keyboard, not an agent's, approval or not.

Approval vs. arbitration

Both route through the same gate, but they're answering different questions. Approval is a single decision on one proposed action: approve, reject, or send back with an edit. Arbitration fires when there isn't a single proposal to approve yet — two domain agents recommend conflicting fixes for the same incident, or the policy engine flags a plan the orchestrator scored as low-risk but a rule disagrees with. Rather than building a second escalation path for that case, arbitration is handled as a Tier 3 approval request that includes every competing plan side by side, so the human sees the actual disagreement instead of a single agent's confident-sounding answer.

Phased rollout

"As completely autonomous as possible" is a destination, not a starting configuration — a system this broad earns wider autonomy one phase at a time, against evidence from the phase before it, not by being deployed at full trust on day one.

Phase 0 — Observe read-only, learn ticket patterns, no actions Phase 1 — Low-risk auto Tier 0–1 execute unattended Phase 2 — Approved mutation Tier 2 requires human approval Phase 3 — Broad autonomy tighter guardrails, not fewer of them

Guardrails that make broad autonomy survivable

What this is and isn't

This page is an architecture blueprint, written the way a design doc should be written before anyone touches production: the shape of the system, the trust boundaries, and the checkpoints, worked out on paper first. It is deliberately not a running deployment. This box has no ServiceNow tenant, no Cisco/AD/VMware credentials, and no reachable enterprise network to manage — and even if it did, standing up live write-access to someone's routers, directory, and hypervisors isn't a decision an autonomous agent should make for itself. That's a real person's infrastructure, a real person's job to grant that access deliberately, scoped narrowly, with their own change-control process wrapped around it — which is exactly what the human approval/arbitration gate above is designed to plug into, not replace.