If you're building production AI agents in July 2026, you're probably standing at the exact same wall thousands of teams are hitting right now.
You picked LangGraph, CrewAI, or another framework. You shipped an agent. It works in a demo. Then production happens: your agent needs to call tools across three different runtimes. You need per-agent budgets. Your security team asks for audit trails. You want to route some requests to Claude, others to Gemini, based on policy. Your teammate's agent needs to hand off context to your agent without losing state.
Suddenly, your framework feels... insufficient. Not broken. Just incomplete.
Here's why: every major agent framework in 2026 is solving the wrong problem.
What Frameworks Actually Solve
LangGraph, CrewAI, Microsoft Agent Framework, OpenAI Agents SDK, Pydantic AI—they all solve agent logic: state graphs, tool calling, multi-agent coordination, streaming, human checkpoints. They're excellent at this.
What they don't solve is agent infrastructure: multi-runtime coordination, per-agent identity, invocation-layer policy enforcement, session persistence across framework boundaries, unified observability, and budget tracking.
The gap matters at scale. One agent in one runtime is fine. Two agents across two runtimes works as long as you hand-manage the coordination. Five agents across three runtimes with different teams accessing them requires infrastructure that the frameworks simply don't provide.
This is why the 2026 agent infrastructure conversation has split into two pieces that have to work together but aren't the same thing.
The Three-Layer Pattern
Production agent infrastructure in July 2026 converges on three distinct layers:
Layer 1: Agent Logic (framework territory)
- State graphs, reasoning loops, multi-step planning
- Tool definitions and invocation logic
- Human-in-the-loop checkpoints
- Streaming, retries, error handling
- Examples: LangGraph, CrewAI, Microsoft Agent Framework
Layer 2: Control Plane (infrastructure territory)
- Session persistence across framework restarts
- Per-agent identity (not shared credentials)
- Invocation-layer policy enforcement (which agent can call which tool)
- Unified session querying across runtimes
- Cost attribution per step
- Audit trails for compliance
- Credential scoping at invocation time
- Multi-runtime memory coordination
- Examples: LiteLLM Agent Platform, Temporal (for durable execution), custom control planes
Layer 3: Data Plane (infrastructure territory)
- Fast routing to LLM providers
- Request translation across provider APIs
- Cost tracking per token
- Load balancing and failover
- Low-latency serving (sub-1ms overhead)
- Examples: LiteLLM-Rust, Bifrost, Portkey (as a gateway)
Here's the critical insight: these are not the same thing, and you cannot build Layer 2 by bolting features onto Layer 1.
Why They Can't Be Combined
Frameworks excel at deterministic control flow and explicit state management. They're built to be programmable: you define nodes, edges, conditions, and the framework executes your DAG.
Control planes excel at policy enforcement and governance. They manage constraints that are external to the agent logic: "Agent A is not allowed to call the database tool," "Agent B has a $10/hour budget," "all tool calls must be logged immutably for compliance." These constraints are metadata about the agent, not logic inside the agent.
Adding control-plane features to a framework (say, CrewAI adding "agent budgets via prompt") creates two problems:
Policy isn't reliable at the prompt layer. Agents learn to work around system prompts. A determined or misconfigured agent can still burn budgets, call unauthorized tools, or skip audit logging. You can't enforce a policy you can't defend.
It slows down the framework for everyone. If every tool call triggers a database lookup to check permissions, if every model response is evaluated for policy violations, if every agent step logs to Postgres with full tracing—you've just turned a fast, lightweight orchestrator into a heavyweight system. The framework suffers.
The clean answer: separate them. Let the framework be great at orchestration. Let the control plane be great at governance. Wire them together with clear APIs.
What This Looks Like in Practice
A team deploying five coding agents across Claude Code, Cursor, and OpenCode in production would look like this:
Claude Code (agent runtime)
↓
LiteLLM Agent Platform (control plane)
├─ session persistence (Postgres)
├─ per-agent identity
├─ tool authorization
├─ audit logging
↓
LiteLLM-Rust (data plane)
├─ routes tool calls to the right destination
├─ translates between runtimes
├─ sub-1ms overhead
↓
Tools (APIs, databases, executables)
The framework (Claude Code, Cursor, OpenCode in this case) doesn't need to know about the control plane. It calls tools through the gateway. The control plane intercepts every invocation, checks authorization, logs it, tracks budget, and decides whether the call is allowed. The data plane routes it efficiently.
If you need to add a new agent (Bedrock), you don't rewrite the framework code. You add a new runtime to the control plane, configure permissions, and you're done.
If you need to change a policy (revoke database access from Agent A), you don't redeploy code. You update the policy in the control plane. Instant.
This is why production agent infrastructure is now three layers, not one framework.
Why This Matters for Your Evaluation
If you're comparing agent platforms right now, here's what to look for:
Does the framework...
- Handle agent logic and orchestration? ✓ (all of them do this well)
- Persist agent sessions durably across restarts?
- Enforce per-agent identity without shared credentials?
- Allow policy changes without redeployment?
- Support multiple runtimes (Claude, Gemini, Bedrock, local models)?
- Provide immutable audit trails per tool call?
- Track per-agent budgets at the invocation layer?
If the answer to 2-7 is "no," the framework is incomplete for production. You'll build the control plane yourself (expect 3-6 months of engineering), or you'll pair it with infrastructure that provides these guarantees.
The well-run teams aren't the ones using the smartest framework. They're the ones with the most boring, reliable infrastructure underneath.
The Pattern You're Seeing
LangGraph surpassed CrewAI in GitHub stars during early 2026, driven by enterprise adoption and its graph-based architecture that maps cleanly to production requirements like audit trails and rollback points. This isn't because LangGraph is a better orchestrator. It's because its explicit state graph makes it easier to pair with a control plane—the state is visible, traceable, and auditable.
Production teams also need to compare durability, approval paths, audit evidence, and failure recovery. Most comparison pages stop at API shape. The highest-cost mistakes happen after launch: runaway tool calls, skipped approvals, unclear ownership, and incomplete audit timelines. Use an agent framework for agent behavior. Add an Agent Control Plane before autonomous agents touch production systems.
This is the exact pattern. Frameworks are necessary. Control planes are also necessary. Confusing them is why agent projects stall.
Getting It Right
If you're building agents right now:
Pick the framework that fits your logic. If your agents naturally map to teams of specialists, CrewAI is good. If you need complex control flow with retry logic and human checkpoints, LangGraph is solid. Don't overthink this—the framework is the easy part.
Plan the control plane from day one. Even if you're prototyping, think about: How will I handle per-agent identity? Where do credentials live? What audit trails do I need? Can I change policies without redeploy?
Evaluate control planes separately. LiteLLM Agent Platform is one example—session-based, multi-runtime, Postgres-backed. Some teams build their own. Some use infrastructure like Temporal (for durable execution). The key is: does it give you the governance guarantees you need?
Pair them with a fast data plane. Once you're at 3+ agents or 100+ concurrent sessions, your data-plane latency matters. You want sub-1ms overhead so policy checks don't slow down agent work.
The agents that win in production aren't the ones with the most capability. They're the ones with the clearest separation between logic and infrastructure, where each piece has one job and does it well.
This is the operational reality teams are discovering in July 2026. If your agent framework makes you feel like something's missing, you're probably right. And what's missing isn't in the framework—it's in the control plane you haven't built yet.
Top comments (0)