goose.maniak.ai · problem → solution

What breaks without a gateway — and how AgentGateway fixes it.

Visuals for Solo Enterprise AgentGateway on the goose lab. Each diagram pairs a real operational problem with the control-plane pattern you can run live from ./scripts/lab-menu.sh.

docs solo.io/agentgateway menu V or diagrams lab 172.16.10.155

#One control plane

Agents need tools, models, identity, and cost attribution. Without a gateway those concerns scatter across every client. AgentGateway consolidates them.

Virtual MCP:31606/mcp · menu #1 MCP auth & RBAC:31606/mcp-secure Identity hopspassthrough · impersonate Entra OBO:30160/graph-me Elicitationsper-user OAuth LLM LB & failover/llm-lb · /llm-failover Cost controlsvirtual keys · budgets
Terminal: ./scripts/lab-menu.sh diagrams ./scripts/lab-menu.sh then press V

#MCP connectivity

#Virtual MCP

Without a gateway, every agent opens N MCP connections. With AgentGateway, one session federates many tool servers.

Problem

  • N client configs and base URLs
  • Each tool server wired into every agent
  • Adding a server means redeploying clients

before

agent MCP A MCP B MCP C

With AgentGateway

  • One Streamable-HTTP session to /mcp
  • Tools namespaced by target
  • New labeled Service appears automatically

after · menu #1 · test-virtual-mcp.sh

client /mcp virtual A_* B_*
./scripts/test-virtual-mcp.sh· menu item 1

#MCP auth, tool RBAC, rate limits

Enterprise IdP at the edge: authenticate once, filter tools by persona, and apply fair-use limits — without putting OAuth on every MCP server.

Problem

  • Open MCP on the network
  • Every agent sees every tool
  • Noisy agents flood expensive tools

With AgentGateway

  • Strict Entra JWT on /mcp-secure
  • CEL on jwt.roles / groups filters tools
  • Local rate limit by persona
./scripts/lab-menu.sh groups ./scripts/entra-mcp-groups.sh set platform|sales ./scripts/test-mcp-security.sh all

#Identity hops

User → gateway → tool. Policy chooses whether to forward the Entra JWT or mint an STS identity with the same subject.

Problem

  • Who is the subject after multi-hop?
  • One shared token loses audit fidelity
  • Backends need different credential shapes

With AgentGateway

  • Passthrough — validated Entra JWT as-is
  • Impersonation — STS mint, same sub, no act
  • Per-backend policy selection
./scripts/test-identity-hops.sh· identity.html

#Entra OBO → Graph

Middle-tier JWTs cannot call Graph. The gateway performs Entra’s jwt-bearer OBO exchange and injects a Graph-scoped token.

Problem

  • Wrong audience for Graph
  • OBO logic and secrets in every agent

With AgentGateway

  • tokenExchange.entra ExchangeOnly
  • STS holds the app secret
  • MCP only calls Graph /me

middle-tier JWT → STS OBO → Graph token → MCP

middle-tier JWT STS OBO Graph token graph-me Graph /me
./scripts/test-entra-obo.sh

#Elicitations

When the upstream credential is not Entra (e.g. GitHub), STS orchestrates consent, stores the token, and injects it — the MCP client never holds the secret.

Problem

  • Need the user’s SaaS token, not a bot PAT
  • OAuth mid-agent breaks autonomous flows

With AgentGateway

  • Miss → UI /age/elicitations
  • Authorize once → STS store
  • Retry injects credential for all later calls
./scripts/test-elicitation.sh· elicitations.html

#LLM consumption

#Load balancing & failover

One OpenAI-compatible client; the gateway spreads load (P2C) and walks priority groups when a model is unhealthy.

Problem

  • Pinned to one vendor / model
  • Outages fail the agent
  • Client-side multi-model is fragile

With AgentGateway

  • /llm-lb — power-of-two choices
  • /llm-failover — priority + health eviction
  • Keys stay on the gateway

/llm-lb P2C · /llm-failover priority ladder

client AgentGateway LB · failover gpt-5.5 grok-4.5 Claude P2C within group priority if unhealthy
./scripts/test-llm-lb-failover.sh all ./scripts/test-llm-gateways.sh all

#Cost controls

Virtual keys attribute spend (org → group → user). Team budgets keep platforms from silently burning the LLM bill.

Problem

  • Shared API keys — no attribution
  • Finance cannot answer “who spent what?”

With AgentGateway

  • Virtual keys → cost hierarchy
  • Model catalog prices in USD
  • Team budgets in Solo UI Cost Management
./scripts/test-cost-vk.sh all ./scripts/test-budget-teams.sh status

#Run from the terminal

diagrams + menu
./scripts/lab-menu.sh diagrams        # overview in terminal
./scripts/lab-menu.sh diagrams all    # every diagram
./scripts/lab-menu.sh                 # interactive · press V
./scripts/lab-menu.sh pitch           # guided feature path