Both products rule on the tool call.
Only one also rules on every byte crossing the LLM boundary.
Containment.ai enforces at two points for autonomous agents: an SDK that rules on every governed tool call before it executes — the same layer Microsoft's AGT occupies — and an HTTPS proxy in front of OpenAI, Anthropic, Bedrock, and Azure OpenAI that inspects every prompt and completion and decides whether the regulated content inside the call is allowed to leave. (For the highest-assurance end, the same discipline is delivered in-path by the flagship Mission Authorization Gateway.) This page is an honest, side-by-side look at where each product is stronger — and why teams shipping agents on regulated data end up needing the content-level enforcement AGT doesn't ship.
Looking for the product, not the comparison? Start with Agent Governance. Last reviewed 2026-07-12; revised when a release changes the comparison.
Both products enforce at the tool-call layer. Microsoft's Agent Governance Toolkit (AGT) does it with an in-process @govern wrapper; Containment.ai does it with the Agent Governance SDK, which rules allow / deny / modify / defer / step_up on every governed action before it executes. The difference is what sits above that layer: Containment.ai also enforces at the HTTPS boundary to the LLM provider — configurable content rules for PHI, MNPI, export-control indicators, secrets, prompt injection, and more, plus real-time redaction and a LiteLLM-based multi-provider proxy with no agent-framework lock-in.
AGT's genuine strengths are real and we name them: zero-trust agent identity (SPIFFE / DIDs), OWASP Agentic Top 10 coverage, and execution sandboxing. The honest pitch: if you ship autonomous agents on Azure Foundry, LangGraph, CrewAI, or the Microsoft Agent Framework on regulated data, AGT's identity and sandboxing primitives compose cleanly alongside Containment.ai — but only Containment.ai rules on the content the agent's calls actually carry.
Two layers of agent governance
AGT sits at the function-call boundary inside the agent process. Containment.ai sits there too — via the Agent Governance SDK — and additionally at the HTTPS boundary to the LLM provider, where content-level enforcement lives. AGT never sees that second layer.
Microsoft AGT
- In-process SDK (
@governwrapper for Python, TS, .NET, Rust, Go) - Intercepts tool-function invocations: file ops, shell, MCP, inter-agent
- Zero-trust agent identity (SPIFFE, Ed25519, DIDs)
- OWASP Agentic Top 10 (10/10) + NIST AI RMF mappings
- Decisions:
allow/deny/require_approval - MIT, free, Microsoft-maintained
Containment.ai
- ✓Agent Governance SDK rules on every governed tool call pre-execution — allow / deny / modify / defer / step_up
- ✓HTTPS proxy in front of OpenAI, Anthropic, Bedrock, Azure OpenAI
- ✓Inspects every prompt and completion crossing the boundary
- ✓Configurable deterministic content rules — PHI, MNPI, export-control indicators, secrets, PII, source-code leakage, prompt injection, shadow-AI, and more
- ✓Decisions:
allow/block/redact— agent keeps working, sensitive bytes don't leak - ✓Audit-grade decision logs designed for SOC 2, HIPAA, ISO 27001, ITAR, and EAR evidence needs
- ✓Built for federal and regulated workloads: single-tenant deployment, with on-prem and air-gapped delivery on the roadmap (canonical status on our Trust page)
Honest feature matrix
No marketing-speak. Where AGT is stronger, we say so. Where we are stronger, we say so. Where the gap is structural, we explain it.
| Capability | Microsoft AGT | Containment.ai |
|---|---|---|
| Architecture | In-process SDK / function wrapper | SDK at the tool dispatch + HTTPS proxy in front of LLM providers |
| Interception point | Tool / function calls; inter-agent messages | Governed tool calls (SDK) and every byte going to or from the LLM provider (proxy) |
| Decision verbs | allow / deny / require_approval | Tool call: allow / deny / modify / defer / step_up. LLM boundary: allow / block / redact (substitute sensitive content with placeholder; agent keeps working) |
| Zero-trust agent identity (SPIFFE / DID / mTLS) | Yes — AGT's strength. | No (we identify humans and orgs, not agents) |
| Execution sandboxing / privilege rings | Yes — AGT's strength. | No |
| OWASP Agentic Top 10 mapping | 10/10 covered | Partial — prompt-injection detection at the content layer plus pre-execution tool-call rulings via the SDK; no published 10/10 mapping. Identity and sandboxing classes remain AGT strengths. |
| PHI (HIPAA) detection | Not in shipped scope | Yes — dedicated detector |
| MNPI / insider-trading content detection | Not in shipped scope | Yes — dedicated detector |
| Configured export-control policy matching | Not in shipped scope | Yes — policy-configured matching. Containment does not make export-classification determinations. |
| Secrets / API-key leakage detection | Not in shipped scope | Yes — dedicated detector |
| Prompt-injection detection | Yes (12-vector PromptDefense evaluator) | Yes (content-pattern + behavioral signals) |
| Shadow-AI discovery | Repo / process / config scanning | Actual API traffic observation (catches BYOK / personal-key bypass) |
| Multi-LLM provider coverage | LLM-agnostic at the tool layer (no provider-specific code) | LiteLLM-based proxy — OpenAI, Anthropic, Bedrock, Azure OpenAI, and any LiteLLM-supported provider; no agent-framework lock-in |
| Tamper-evident audit log | Merkle-verified Decision BOM — AGT's strength. | Append-only audit_events; cryptographic chaining on the roadmap |
| Primary buyer | Developer / platform engineer | CISO / compliance / privacy officer |
| License / commercial | MIT, free; Microsoft-maintained (Azure pull-through) | Commercial — SaaS or single-tenant deployment; on-prem and air-gapped delivery on the roadmap |
| AARM (CSA) conformance | Not yet claimed | Aligned with AARM v1.0 — see our AARM page for per-requirement status |
When does each matter?
Use AGT (alone) when…
- You ship a developer tool or internal automation agent that does not touch regulated content.
- Your primary need is zero-trust agent identity attestation or execution sandboxing — the primitives AGT ships that we don't.
- Your compliance frame is OWASP Agentic Top 10, not HIPAA / SEC / ITAR / GDPR.
Use Containment.ai (with or without AGT) when…
- ✓You need pre-execution rulings on the tool calls your agents make — the Agent Governance SDK covers the dispatch layer, so adopting AGT is not a prerequisite for governing agent actions.
- ✓Patient data, customer records, source code, or financial material could end up in an LLM prompt.
- ✓You need real-time redaction — let the agent keep working, but strip the SSN before it reaches OpenAI.
- ✓You need to govern BYOK / shadow-AI — engineers with personal API keys bypass any SDK governance you ship inside the app.
- ✓HIPAA, FedRAMP, SEC Rule 17a-4, ITAR, EAR, GDPR Article 32 are in scope.
- ✓You use more than one LLM provider and need a single policy plane across all of them.
Run both when AGT's identity and sandboxing primitives matter to you: AGT attests who the agent is and sandboxes what it can touch; Containment.ai rules on what the agent does — at the tool dispatch and at the LLM boundary — and on what its actions carry. A first-party AGT adapter — so a single policy decision can route through both layers — is on our roadmap; contact us if you want early access.
Sources
This page is researched, not generated. Primary sources behind every claim above:
- Microsoft Agent Governance Toolkit — github.com/microsoft/agent-governance-toolkit
- AGT announcement — Microsoft Open Source Blog, 2026-04-02
- AGT architecture — ARCHITECTURE.md
- AGT quickstart — microsoft.github.io/agent-governance-toolkit/quickstart
- Containment.ai platform whitepaper — containment-whitepaper.html
- Containment.ai compliance roadmap — compliance.html
We will revise this comparison as AGT releases new versions. If you spot an inaccuracy, email engineering@containment.ai and we'll fix it within one business day.
See it stop a real prompt
30-minute demo. We'll show the proxy intercepting a HIPAA-PHI paste in real time, alongside a pre-execution tool-call ruling in the same flow.
Or email enterprise@containment.ai directly.