Comparison · updated June 2026

Hexgate vs Microsoft Agent Governance Toolkit.
Per-user authorization, or agent-level policy?

Microsoft's Agent Governance Toolkit (AGT, April 2026) and Hexgate both sit between an AI agent and its tools. They look similar from the outside (policy YAML, tool-call interception, audit logs), but they answer different questions. AGT controls what the agent is allowed to do. Hexgate controls what each end-user is allowed to do, through the agent.

TL;DR
  • Pick AGT when you need broad governance coverage across the OWASP Agentic Top 10, run on the Microsoft stack, or operate a fleet of internal agents that each have their own identity.
  • Pick Hexgate when one agent serves many end-users (B2B SaaS, support copilots, billing assistants) and decisions must depend on which user invoked it, not just which agent is running.
  • Use both when you want AGT's wider governance surface plus Hexgate's per-user enforcement: AGT as the org-wide control plane, Hexgate as the per-request authorization gate.
Feature by feature

Where they overlap, where they diverge.

Ten dimensions that matter when you're picking an authorization layer for AI agents in production. "Even" means both ship a credible answer; the label names which one we'd give the edge to.

DimensionMicrosoft AGTHexgateEdge
Identity modelAgent identity (SPIFFE / DID / mTLS)Agent identity + per-request user (signed Biscuit token)Hexgate
Policy subjectsagent_id, tool, action.typerole, user_id, tool, args constraintsHexgate
Same code, many usersContainer-per-agentContextvar lookup; one wrapped agent serves every user concurrentlyHexgate
Capability attenuationNot supported. Policies are pre-declared, evaluated server-sideBiscuit caveats narrow rights at request timeHexgate
Enforcement pointApplication middleware (tool-call wrapper)Application middleware (tool-call wrapper)Even
Policy engineYAML / OPA / Cedar, same-processOPA Rego compiled to signed WASM (Ed25519) + in-process pydantic engineEven
Integration footprintFramework-agnostic policy engine; you wire the tool wrappersDrop-in adapters: OpenAI Agents, LangChain, Google ADK, Pydantic AIHexgate
Approval workflowapprovers list in policyapproval_handler callback (sync/async, per-call)Even
License & installMIT, GitHub + PyPIMIT, pip install hexgateEven
OWASP Agentic Top 10

Ten risks, item by item.

AGT advertises coverage of all ten, a broad framework and its own claim. Line them up per item and a different picture shows up: Hexgate goes deep on the authorization-critical ones and slots in next to AGT for the rest. "Broad" means framework-level coverage; "Planned" is on our roadmap.

OWASP Agentic riskMicrosoft AGTHexgate
ASI01 Agent Goal HijackBroadFramework coveragePartialPer-call authz limits blast radius, audit flags it
ASI02 Tool Misuse & ExploitationCoveredMCP security gatewayCoveredPer-call + per-argument authz, MCP gate
ASI03 Identity & Privilege AbusePartialAgent identity only (no per-user)CoveredPer-user Biscuit, role policy, attenuation
ASI04 Agentic Supply ChainBroadFramework coveragePartialSigned WASM bundles; wider scope on the roadmap
ASI05 Unexpected Code ExecutionBroadAgent hypervisorPartialApproval gates + sandboxed workspace
ASI06 Memory & Context PoisoningBroadFramework coveragePartialAudit + detection
ASI07 Insecure Inter-Agent CommsCoveredMCP gatewayPlannedTransparent proxy + identity
ASI08 Cascading FailuresBroadTrust scoring across chainsPlannedKill-switch + audit; mostly architectural
ASI09 Human-Agent Trust ExploitationBroadFramework coveragePartialApproval flows add friction, audit
ASI10 Rogue AgentsBroadFramework coverageCoveredBan kill-switch + anomaly detection

AGT goes wide. Hexgate goes deep on the authorization-critical risks (ASI02, ASI03, ASI10) and complements AGT on the rest. Both are MIT and a one-line install, so "use both" is a real option, not a cop-out.

The wedge

Per-user authorization is where the toolkits diverge.

Both products gate tool calls. The difference is what the gate knows about who is calling.

Microsoft AGT: agent as the principal

AGT's policy schema keys decisions on agent_id, tool, and action.type. The README is explicit: "AGT enforces governance at the application middleware layer, not at the OS kernel level. The policy engine and agents share the same process boundary." There is no user_id in the schema, no on-behalf-of (OBO) flow, and no capability attenuation. End-user identity, if you need it, has to be layered on outside, typically via Microsoft Entra and OAuth OBO (sub + act.sub claims).

Hexgate: the user travels with the call

Hexgate threads end-user identity through every decision. A per-request User context manager carries user_id, role, and session_idas a signed Biscuit token; role policies decide what that role can do. Identity is resolved at call time from a contextvar, so the same wrapped agent serves many users concurrently, with different effective permissions, without seeing each other's policies. Biscuit's caveat system lets you narrow rights at request time, the way macaroons do.

Why this matters in production

Most real agentic products aren't fleets of distinct agents. They're one agent serving thousands of customers, each with their own role, plan, and data scope. If your authorization layer only knows which agent is running, every tool wrapper has to re-implement "which customer is this, what can they touch," and that's where bugs live. Hexgate moves that question into policy.

Where AGT pulls ahead

AGT is the first open-source toolkit advertising coverage of all 10 OWASP Agentic Top 10 risks, with a broader surface: MCP security gateway, agent hypervisor, trust scoring across delegation chains, EU AI Act / HIPAA / SOC 2 mapping. If your audit team wants a single artifact that maps to a compliance framework, AGT has more ground covered out of the box.

Combining them

You don't have to pick one.

They live at different points in the stack. AGT can be your org-wide policy decision engine and compliance map; Hexgate can sit inside it as the per-request authorization gate. The combination looks like this:

AGT as the outer ring

Use AGT for organization-wide policy posture: block dangerous tool classes globally, enforce MCP gateway checks, run the trust / delegation chain audits, and feed your compliance dashboards.

Hexgate as the per-user gate

Inside the agent, Hexgate handles the per-request user identity, runs the role-keyed policy against signed Biscuit tokens, and emits the decision stream your application needs to know which customer was allowed to do what.

Get started

Try per-user authorization in minutes.
Same agent code, different effective permissions per user.

Install the SDK and wrap your existing OpenAI Agents, LangChain, Google ADK, or Pydantic AI agent in one line. Or book a walkthrough of the platform, audit log, and signed-bundle workflow.