Managed Agent Runtimes, Compared at the API Call

OpenAI Agents API (Sept 10, 2026) joined Anthropic Claude Managed Agents (April 8) and Google Vertex AI Agent Engine (GA 2025) in the category. All three expose a managed harness that runs an agent's orchestration loop for you — sessions, tool execution, compaction, recovery, subagent fan-out. This page compares them down to the request, response, error model, and pricing formula.

Category: Managed Agent Runtime / Managed Agent Harness Date: September 10, 2026 Sources: 30+ primary docs, official pricing pages, vendor blogs Pattern: Tokens + Runtime + Memory
TL;DR The category shape OpenAI Agents API Anthropic Managed Agents Vertex AI Agent Engine API-call comparison Capability matrix Advanced agentic patterns Pricing models Reference architectures Decision matrix Sources

TL;DR 3 cards

OpenAI Agents API
Public beta · Sept 10, 2026

One API call wraps the Codex harness. Session + subagent + sandbox in a single endpoint. Nine partner sandboxes on day one.

Hosted harness
Codex (Codex Cloud, ChatGPT for Work)
SDK
openai Python/JS, beta namespace
Beta header
OpenAI-Beta: agents=v1
Sandboxes
OpenAI-hosted, self-hosted, 9 partners
Region
US only at launch
Anthropic Claude Managed Agents
Public beta · April 8, 2026

The harness behind Claude Code Cloud. Four primitives: Agent, Environment, Session, Event. Built-in compaction and prompt caching.

Hosted harness
Claude Code Cloud runtime
SDK
anthropic Python/TS, claude CLI
Beta header
anthropic-beta: managed-agents-2026-04-01
Sandboxes
Anthropic cloud, self-hosted
Region
Claude Platform; AWS Bedrock variant
Vertex AI Agent Engine
GA 2025 · Paid tier Feb 11, 2026

Serverless runtime for ADK-built agents. Most mature; native IAM, A2A protocol, Memory Bank GA. Model-agnostic across Gemini tiers.

Hosted harness
ADK (open-source Agent Development Kit)
SDK
vertexai.agent_engines Python
Beta header
None (GA)
Sandboxes
Agent Runtime, Code Execution sandbox
Region
All Google Cloud regions

Same category, three different model philosophies. OpenAI ships one tightly-integrated harness (Codex is the product). Anthropic ships one harness per model (Claude Code is the product). Google ships an open harness (ADK) and lets you deploy any agent to a managed runtime — the model is decoupled from the harness entirely.

The category shape what all three do

Every managed agent runtime ships the same five primitives. The names differ; the mechanics don't.

PrimitiveWhat it doesWhy it matters
Session orchestrationLong-running task loop with state, idempotency, resumptionWithout this you build the agent loop yourself — usually 2-3 months of work
Tool executionSandboxed code, file ops, web search, MCP serversThe agent needs to do things; MCP is the standard interop surface across all three
Context managementCompaction, summarization, caching when context overflowsLong sessions blow past model context windows; without compaction the agent halts
MemoryShort-term session state + long-term cross-session recallCross-session continuity is what makes an agent a relationship not a tool
Identity & recoveryAgent authenticates downstream, restarts after crash, checkpoints mid-taskThe agent becomes a first-class principal in your system; needs governance

The differentiators live in how each vendor exposes these primitives: SDK shape, sandbox partners, pricing formula, protocol support, and the model ecosystem you can plug in.

OpenAI OpenAI Agents API

The newest entry. Public beta since Sept 10, 2026. Exposes the same Codex harness that powers Codex Cloud and ChatGPT for Work through a single API namespace.

Core primitives

OpenAI termWhat it maps to
SessionThe top-level unit. Created with client.beta.agents.sessions.create(...). Long-running, multi-turn.
Multi-agentmulti_agent: { enabled: true, max_concurrent_subagents: N } in the create call. Subagents fan out and aggregate.
SandboxCompute environment. Options: OpenAI-hosted, self-hosted, or partner (Blaxel, Cloudflare, Daytona, DigitalOcean, E2B, Modal, Oracle, Runloop, Vercel).
Skills / PluginsReusable tool bundles attached to the session at create time.
WorkspaceThe persistent filesystem the agent reads and writes to across the session.

SDK call — create a multi-agent session

from openai import OpenAI
client = OpenAI()

session = client.beta.agents.sessions.create(
    model="gpt-5.6",
    multi_agent={
        "enabled": True,
        "max_concurrent_subagents": 3,
    },
    tools=[
        {"type": "mcp", "server": "github"},
        {"type": "code_interpreter"},
    ],
    sandbox="openai-hosted",          # or "self-hosted" or a partner slug
    workspace="/workspace",
    instructions=(
        "Investigate service-api's elevated 5xx rate over the last 30 minutes. "
        "Delegate deployment, error, and dependency analysis to subagents. "
        "Save findings, evidence, and recommended mitigation in /workspace/outputs."
    ),
)

# Stream events
for event in client.beta.agents.sessions.stream(session.id):
    print(event.type, event.data)

What you get out of the box

What you don't get

Production validation (verbatim from the announcement)

Pricing formula

From the announcement: "billed at standard model rates plus container rates." The OpenAI changelog entry: "Build agents with a managed Codex harness while OpenAI handles session orchestration, context compaction, and recovery." No per-session-hour fee is published; container rates come from the sandbox partner you choose.

Anthropic Claude Managed Agents

The first-mover. Public beta since April 8, 2026. The platform behind Claude Code Cloud. Four core primitives documented in the official docs: Agent, Environment, Session, Events.

Core primitives

Anthropic termWhat it is
AgentThe model + system prompt + tools + MCP servers + skills. Created once, referenced by ID across sessions.
EnvironmentConfiguration for where sessions run: Anthropic-managed cloud sandbox or self-hosted sandbox.
SessionA running agent instance within an environment. Progresses through idle → running → rescheduling → terminated.
EventMessages exchanged between your application and the agent (user turns, tool results, status updates). Streamed via SSE.

SDK call — create an agent and start a session

import anthropic

client = anthropic.Anthropic()  # picks up ANTHROPIC_API_KEY + beta header

# 1. Define the agent ONCE — model, system prompt, tools, MCP servers, skills
agent = client.beta.agents.create(
    model="claude-opus-4-6",
    system="You are a financial analyst. Use the available tools to read SEC filings.",
    tools=[
        {"type": "bash_20250909", "name": "bash"},
        {"type": "file_edit_20250909", "name": "file_edit"},
        {"type": "web_search_20250909", "name": "web_search"},
        {"type": "mcp", "server_url": "https://mcp.sec.gov"},
    ],
    skills=["financial-modeling-v3"],
)

# 2. Create an environment (where the sandbox lives)
env = client.beta.environments.create(
    type="anthropic-cloud-sandbox",
    region="us-east-1",
)

# 3. Launch a session that references both
session = client.beta.sessions.create(
    agent={"type": "agent", "id": agent.id, "version": "latest"},
    environment=env.id,
)

# 4. Send a user message as an event
event = client.beta.sessions.events.create(
    session_id=session.id,
    type="user.message",
    content="Pull Q2 10-Q for NVDA, summarize the data-center segment commentary.",
)

# 5. Stream events back (server-sent events)
for evt in client.beta.sessions.events.stream(session_id=session.id):
    if evt.type == "tool.call":
        print(f"[tool] {evt.tool_name}({evt.input})")
    elif evt.type == "session.status":
        print(f"[status] {evt.status}")  # idle / running / rescheduling / terminated

Built-in tools (no extra wiring)

Advanced features

State machine — sessions are explicit

The four states (idle, running, rescheduling, terminated) are the most operationally useful primitive across the three vendors. You can poll for status, receive webhook events, and use the transition logic for cost control (billing only accrues during running).

What you don't get

Pricing formula (verbatim from docs)

ChargeRateNotes
TokensStandard model ratesOpus 4.6: $5/$25 per MTok · Sonnet 4.6: $3/$15
Session runtime$0.08 per session-hourActive running state only; idle / rescheduling / terminated don't accrue
Web search$10 per 1,000 searchesSame as standalone API
Cache writes1.25x base input5-minute TTL
Cache reads0.1x base inputSame multiplier as Messages API

Rate limits: 60 RPM create endpoints, 600 RPM read endpoints (org-level). Standard tier-based model rate limits layer on top.

Google Vertex AI Agent Engine

The most mature. GA since 2025 (formerly "Reasoning Engine"). Sessions + Memory Bank + Code Execution began billing February 11, 2026. The runtime is part of the rebranded Gemini Enterprise Agent Platform as of Cloud Next 2026.

Core primitives

Google termWhat it is
Agent EngineA deployed, running agent instance. You build the agent locally with the open-source Agent Development Kit (ADK) and deploy it.
SessionTurn-by-turn context persistence. Billed by stored events that contain content.
Memory BankLong-term, structured memories extracted from conversations. GA since April 2026.
Code Execution sandboxIsolated sandbox where agents run code. Per-second vCPU + RAM metering.
Agent IdentityNative IAM principals for agents (first-class citizens in Cloud IAM).
A2A protocolAgent-to-Agent protocol support for inter-agent communication.
ADKAgent Development Kit — open-source SDK in Python, Go, Java, TypeScript. Stable at v1.0.

SDK call — build with ADK and deploy

from vertexai.preview import agent_engines
from vertexai.preview.reasoning_engines import LangchainAgent
import vertexai

# 1. Initialize
vertexai.init(project="my-project", location="us-central1", staging_bucket="gs://my-bucket")

# 2. Define your agent locally with ADK (or any framework — LangChain, custom, etc.)
from google.adk.agents import Agent
from google.adk.tools import VertexAISearchTool, CodeExecutionTool

local_agent = Agent(
    name="research_agent",
    model="gemini-2.5-pro",
    instruction="You are a research analyst. Use Vertex AI Search to ground answers.",
    tools=[VertexAISearchTool(corpus="company-filings"), CodeExecutionTool()],
)

# 3. Deploy to Agent Engine (managed runtime)
remote_app = agent_engines.create(
    agent_engine=LangchainAgent(agent=local_agent),
    requirements=["google-cloud-aiplatform[agent_engines]", "langchain"],
    display_name="research-agent-v1",
    description="Research analyst grounded in company filings",
)

# 4. Create a session and send a query
session = remote_app.create_session(user_id="alice")
print(session)
# {'session_id': '...', 'user_id': 'alice'}

events = remote_app.stream_query(
    session_id=session["session_id"],
    message="Summarize NVIDIA's Q2 2026 data-center revenue growth.",
)

for event in events:
    print(event)  # {'content': '...', 'author': 'research_agent'}

Why Vertex is the most enterprise-ready

Pricing formula

ChargeRateNotes
Agent Engine runtime$0.0864 per vCPU-hour
$0.0090 per GB-hour memory
Per-second metering; idle excluded
Sessions$0.25 per 1,000 eventsOnly content-bearing events (user messages, model responses, function calls). Checkpoints excluded.
Memory storage$0.25 per 1,000 memories/monthBuilt-in strategies
Memory retrieval$0.50 per 1,000 retrievalsFirst 1,000/month free
Code ExecutionvCPU + RAM meteringPer-second, idle excluded
Free tier50 vCPU-hours + 100 GB-hours memory per monthPer project

The Sessions + Memory + Code Execution prices started accruing on January 28, 2026; runtime was already metered from the earlier GA.

API-call comparison side by side

The three SDKs are different shapes. This is what a create-session call looks like in each.

Side-by-side anatomy

AspectOpenAIAnthropicGoogle
SDK importfrom openai import OpenAIfrom anthropic import Anthropicimport vertexai
from vertexai.preview import agent_engines
Client initOpenAI()Anthropic()vertexai.init(project, location, staging_bucket)
Beta headerOpenAI-Beta: agents=v1anthropic-beta: managed-agents-2026-04-01None — GA
Define agentInline in sessions.create()First-class client.beta.agents.create(), returns IDLocally with ADK, deployed as agent_engines.create()
Create sessionclient.beta.agents.sessions.create(model, tools, sandbox, ...)client.beta.sessions.create(agent={id}, environment={id})remote_app.create_session(user_id="...")
Send messageStream events from sessionclient.beta.sessions.events.create(session_id, type="user.message", content=...)remote_app.stream_query(session_id, message=...)
Stream eventsclient.beta.agents.sessions.stream(session_id)client.beta.sessions.events.stream(session_id)Generator returned by stream_query()
SubagentsInline multi_agent: { enabled, max_concurrent }Agent Teams (research preview)A2A protocol natively supported
MCPInline in tools arrayInline as tool typeNative MCP support + IAP-secured MCP servers
Sandbox choiceOpenAI, self, 9 partnersAnthropic cloud, self-hostedAgent Runtime (default), Code Execution
Cancel sessionclient.beta.agents.sessions.cancel(id)client.beta.sessions.update(id, status="terminated")Delete session resource

Beta header — every call must carry one

Both OpenAI and Anthropic require a beta header. OpenAI uses OpenAI-Beta: agents=v1; Anthropic uses anthropic-beta: managed-agents-2026-04-01. Google is GA, so no header. SDKs set this automatically; raw HTTP clients need to add it manually on every request — Morsy's WaveSpeed source flagged this as a "trip people up" pattern.

Capability matrix what a developer can build

This is the developer-facing capability table — what each platform lets you build without bolting on external infrastructure.

Long-running sessions (hours)All three ✓
State persists across disconnects; resume by session ID.
Sandboxed code executionAll three ✓
Python + Node in managed sandbox; OpenAI adds partner sandboxes, Google adds Code Execution, Anthropic ships bash.
Built-in bash / shellAll three ✓
Anthropic exposes bash directly; OpenAI exposes it via the code interpreter; Google exposes it via Code Execution.
MCP server connectivityAll three ✓
Google adds IAP-secured MCP + Agent Gateway egress to MCP servers across VPC.
Web search / fetchAll three ✓
Anthropic: $10/1K. OpenAI: standard rates. Google: Vertex AI Search integration.
Multi-agent / subagent fan-outAll three ✓
OpenAI: declarative max_concurrent. Anthropic: Agent Teams (preview). Google: A2A protocol + Agent Designer.
Context compactionAll three ✓
Auto-summarizes earlier turns when context grows.
Prompt cachingAnthropic ✓ · Google ✓ · OpenAI standard
Anthropic: built-in with explicit multipliers. Google: implicit. OpenAI: standard prompt caching applies.
Self-hosted sandboxAnthropic ✓ · Google ✓ · OpenAI ✓
Anthropic: data-residency requirement. Google: VPC + CMEK. OpenAI: workspace + capability directories.
Long-term memory across sessionsGoogle ✓ · Anthropic ✓ · OpenAI ✗
Google: Memory Bank GA ($0.25/1K stored). Anthropic: dreaming/outcomes (research preview). OpenAI: not announced.
Scheduled / cron executionAnthropic ✓ · Google ✓ · OpenAI ✗
Scheduled deployments (Anthropic), Cloud Scheduler + Agent Engine (Google). Not yet on OpenAI.
Agent versioning / pinningAnthropic ✓ · Google ✓ · OpenAI ✗
Pin to specific agent version; roll forward without breaking in-flight sessions.
Multi-modelGoogle ✓ · Anthropic ✗ · OpenAI ✗
Google: Gemini tiers + Claude + Llama via Model Garden. Anthropic and OpenAI: model-locked.
Native IAM / governanceGoogle ✓ · Anthropic scoped perms · OpenAI limited
Google: first-class IAM principals for agents. Anthropic: scoped permissions + vaults. OpenAI: workspace-scoped.
A2A protocolGoogle ✓ · Anthropic via Agent Teams · OpenAI ✗
Native support for cross-vendor agent communication.
Zero Data RetentionNone
All three maintain session state; ZDR explicitly unavailable across the board (sessions are stateful by design).
HIPAA BAAGoogle ✓ via BAA · Anthropic ✗ · OpenAI Enterprise only
Anthropic: explicitly not currently eligible. OpenAI: Enterprise tier eligible. Google: BAA available on request.
EU data residencyGoogle ✓ · Anthropic ✓ · OpenAI ✗
OpenAI Agents API is US-only at launch. Anthropic runs Claude Platform; Bedrock variant offers EU regions. Google spans all GC regions.

Advanced agentic patterns what sophisticated workloads require

Beyond the primitives, the real question for "sophisticated agentic workloads" is which platform lets you build the patterns production agents actually need.

Pattern 1 — Long-horizon task with crash recovery

Goal: A multi-day research task that survives network failures, model errors, and tooling outages.

CapabilityOpenAIAnthropicGoogle
Session resume✓ Built-in✓ State persists server-side; resume via session ID✓ Session resource persists
CheckpointingImplicit via compactionExplicit checkpoints via event streamBuilt-in (system control events are not billable)
Max session durationDays (per Nash.ai quote)"Hours" per docs; 45-min ceiling on Claude Code autonomous runsConfigurable; long-running workloads supported

Winner for this pattern: OpenAI's session-resume is the most operationally proven (Nash.ai runs thousands in production). Anthropic has the cleanest state-machine model but caps are still being characterized. Google is configurable but more devops burden.

Pattern 2 — Subagent orchestration for parallel work

Goal: A coordinator agent fans work out to N specialists, each with its own tools.

# OpenAI — declarative in the session create call
session = client.beta.agents.sessions.create(
    model="gpt-5.6",
    multi_agent={
        "enabled": True,
        "max_concurrent_subagents": 5,    # ← explicit concurrency cap
    },
    instructions="Coordinate 5 subagents to investigate the outage.",
)

# Anthropic — Agent Teams (research preview)
# Each subagent is its own session with its own runtime + tokens
# Sub-agents inherit the parent's tools or override via agent spec
team = client.beta.agent_teams.create(
    coordinator_agent_id=coordinator.id,
    members=[
        {"agent_id": db_specialist.id, "role": "investigator"},
        {"agent_id": deploy_specialist.id, "role": "remediator"},
    ],
)

# Google — A2A protocol with Agent Engine instances
# Each agent runs in its own Agent Engine; coordinator dispatches via A2A
coordinator.send_message(
    target_agent=db_specialist_app.resource_name,
    message="Investigate elevated 5xx rates.",
)

Winner for this pattern: OpenAI's declarative subagent config is the simplest. Anthropic's Agent Teams is the most flexible but still research preview. Google's A2A is the most interoperable across vendors.

Pattern 3 — Long-term memory across sessions

Goal: An agent that remembers the user's preferences, project state, and prior conversations indefinitely.

CapabilityOpenAIAnthropicGoogle
Built-in solutionNone announcedDreaming / outcomes (research preview)Memory Bank GA — structured memory primitives
Custom implementationBring your own DB; persist via workspaceSameSame, or use Memory Bank
PricingContainer rates for storageBundled$0.25/1K stored, $0.50/1K retrieved

Winner for this pattern: Google. Memory Bank is the only GA, production-priced, cross-session memory primitive across the three.

Pattern 4 — Data-residency / compliance

Goal: Run agents inside your VPC, on data that never leaves your region.

CapabilityOpenAIAnthropicGoogle
Self-hosted sandbox✓ Workspace + capability dirs✓ Self-hosted environment✓ VPC + Private Service Connect + CMEK
EU residency✗ US-only✓ AWS Bedrock variant offers EU✓ All GC regions
HIPAA BAAEnterprise tier eligible✗ Not eligibleOn request
SOC 2 / ISO 27001YesYesYes (Google Cloud compliance)

Winner for this pattern: Google, narrowly. Anthropic on AWS Bedrock is a close second. OpenAI is US-only with no ZDR — disqualifying for many enterprise workloads.

Pattern 5 — Tooling interop (bring your own MCP server)

Goal: Connect to internal tools (GitHub Enterprise, Salesforce, internal APIs) via MCP.

All three support MCP natively. The differentiator is the governance layer around MCP:

Winner for this pattern: Google, by a wide margin, for enterprise MCP governance. The Agent Gateway with VPC egress is a year ahead of where OpenAI/Anthropic are.

Pattern 6 — Cost predictability for bursty workloads

Goal: Cap spend during spikes; only pay for actual compute.

ApproachOpenAIAnthropicGoogle
Idle meteringPay per active container$0.08/hr only while runningvCPU/RAM per-second, idle excluded
Hard capContainer limit on session createSession budgets API + rate limitsCloud quotas + budget alerts
Best fitBursty with clear compute boundaryWait-heavy agent flows (human approval, OAuth handshakes)Long-running production workloads

Winner for this pattern: Anthropic, by a hair. The four-state session model with idle-time metering is the cleanest cost primitive. Google's per-second vCPU/RAM is comparable but you need to model your workload to predict spend.

Pricing models the formula converges

All three vendors converged on the same formula: tokens + runtime + memory. The only divergence is whether runtime is metered per active session-hour (Anthropic) or per active compute unit (Google).

Cost dimensionOpenAI Agents APIAnthropic Managed AgentsVertex AI Agent Engine
Model tokensStandard model rates (GPT-5.6, etc.)Standard rates (Opus 4.6: $5/$25 · Sonnet 4.6: $3/$15)Standard Vertex rates (Gemini tiers + others)
RuntimeContainer rates (varies by sandbox partner)$0.08 / session-hour (active only)$0.0864 / vCPU-hour + $0.0090 / GB-hour
MemoryNot yet announcedBundled$0.25 / 1K events · $0.25 / 1K memories stored · $0.50 / 1K retrieved
Web searchStandard rate$10 / 1K searchesPer-query, varies by corpus
Code executionBundled in containerBundled in session runtimePer-second vCPU + RAM
Free tierNone publishedNone — beta billing live50 vCPU-hr + 100 GB-hr memory / month
Batch discountStandard Batch API applies✗ Batch API discount does NOT applyStandard Batch API applies

Worked example — a 2-hour agent with 5 tool calls

Assume: Sonnet 4.6, 200K input tokens + 50K output tokens, 5 web searches, 1-hour idle waiting for human approval, 1-hour active tool execution.

Cost lineOpenAIAnthropicGoogle
Tokens (200K in + 50K out @ Sonnet rates)~$1.25 (GPT-5.6 mixed)$0.60 + $0.75 = $1.35~$0.70 (Gemini 2.5 Pro)
Runtime (1 hour active)~$0.50 (sandbox partner rate)$0.08~$0.10 (1 vCPU active)
Web searches (5)~$0.05$0.05~$0.02
Memory (50 events)Bundled$0.01
Total~$1.80~$1.48~$0.83

Anthropic wins on this workload because the $0.08/hour is dramatically cheaper than per-vCPU-hour billing, and idle time is free. For workloads with heavy concurrent compute, the math flips.

Reference architectures infrastructure

OpenAI Agents API

Your App OpenAI SDK Agents API Codex Harness Session Orchestration Subagent Fan-out Compaction + Recovery OpenAI Sandbox Cloudflare edge sandbox Modal GPU sandbox Vercel / Blaxel / E2B + 5 more partners MCP Servers GitHub · Slack · DB

Anthropic Claude Managed Agents

Your App Anthropic SDK Managed Agents Claude Code Cloud Runtime Agent + Environment Session (idle/running/...) Event Stream (SSE) Anthropic Cloud Sandbox managed infrastructure Self-Hosted Sandbox your infrastructure MCP Servers MCP Tunnels research preview Vaults / Webhooks

Google Vertex AI Agent Engine

Your App vertexai SDK Agent Engine Managed Runtime Sessions Memory Bank Code Execution A2A Protocol IAM Principals Agent Gateway VPC egress + MCP Model Armor content inspection Vector Search 2.0 RAG Cloud Trace observability ADK Agent any framework MCP Servers

Decision matrix which one to pick

If you're a developer building sophisticated agentic workloads, the choice is rarely "which is best in absolute terms" — it's "which matches my constraints." Use this matrix.

If your constraint is…PickWhy
You're already on OpenAI models and want the simplest harnessOpenAIOne API call, Codex harness, 9 partner sandboxes for deployment flexibility.
You need 9 different deployment targets (edge, GPU, your VPC, partner clouds)OpenAIDay-one sandbox partner breadth is unmatched.
You want long-running autonomous sessions (days, not hours)OpenAIMost operationally proven in production (Nash.ai scales thousands).
You're building with Claude and want prompt caching + compaction out of the boxAnthropicThe Claude Code Cloud runtime is the canonical Claude Code backend.
Your workload is wait-heavy (human approval, OAuth, external jobs)Anthropic$0.08/hr while running + idle is free is the cleanest cost primitive for this.
You need a four-state session model (idle / running / rescheduling / terminated)AnthropicExplicit state machine, webhook-friendly.
You need multi-model (Gemini + Claude + Llama in the same project)GoogleOnly Vertex offers native multi-model + A2A across vendors.
You need EU data residencyGoogle or Anthropic on BedrockOpenAI Agents API is US-only at launch.
You need long-term memory across sessions, production-pricedGoogleMemory Bank is GA. Anthropic dreaming is research preview. OpenAI unannounced.
You need enterprise IAM, VPC isolation, CMEK, governanceGoogleAgents as first-class IAM principals; native VPC + Private Service Connect.
You're integrating MCP servers behind a corporate firewallGoogleAgent Gateway egress to VPC MCP servers is year ahead of competitors.
You want a free tier to evaluateGoogle50 vCPU-hr + 100 GB-hr memory / month free.
You want open-source agent framework portabilityGoogleADK is open-source. Deploy any LangChain, CrewAI, custom agent.

One sentence per vendor: OpenAI ships the simplest one-call API with the most deployment partners. Anthropic ships the most operationally explicit state machine at the lowest runtime cost. Google ships the only mature multi-model, governance-first, memory-equipped platform for enterprise.

Primary sources

All claims above trace to one of the following primary documents. Beta docs are flagged where applicable.