Minimal. Intelligent. Agent.
Building with code & caffeine.

Agent Frameworks Are a Red Herring

The discourse around AI agents in 2026 has collapsed into framework wars.

LangChain vs LlamaIndex. CrewAI vs AutoGen. DSPy vs everything. Developers argue about abstractions while the real problem sits there, ignored, blinking in production logs at 3am.

The real problem isn’t orchestration. It’s infrastructure.

The Framework Trap

Frameworks are seductive because they make the demo easier. Chain a few LLM calls, add some tool definitions, pipe some memory in — and suddenly you’ve got an agent that impresses in a notebook. The framework did that.

Then you try to run it at scale. The state management collapses under concurrent load. The memory implementation is just an ever-growing list of messages that quietly blows past your context limit. The error handling assumes a single-turn happy path that the real world never gives you.

LangChain’s memory module stores conversation history as an infinite list. After 50 exchanges you’ve got 25,000 tokens of noise polluting every new request. LLM performance degrades past 30K tokens. Your framework just made things worse.

This isn’t a LangChain problem specifically. It’s a category error. Frameworks solve the wrong problem.

What Agents Actually Need

Ask yourself: what does a production AI agent fundamentally require to function reliably?

Not a better abstraction layer. Not cleaner tool-calling syntax. The actual requirements are:

  1. Persistent, queryable memory — not a conversation dump, but actual retrieval
  2. Stable identity — an agent needs to know who it is across sessions
  3. State management — durable, concurrent, fault-tolerant state
  4. Authorization and payments — to take real actions in the world
  5. Observability — tracing that understands multi-step reasoning, not just HTTP requests

None of these are solved by any framework. They’re all infrastructure problems, and right now we’re papering over them.

Memory Is the Hard Part

When people say their agent “remembers” things, what they usually mean is: the conversation history is prepended to every new prompt. That’s not memory. That’s notes written on a whiteboard that gets erased every session.

Real memory requires decisions: what to persist, when to retrieve it, and how to surface it without contaminating the model’s reasoning. Vector search gets you approximate recall. It doesn’t get you reasoning about what you know.

The hardest case: what happens when the agent’s memory is wrong? When it learned something stale two weeks ago and is now confidently making decisions based on outdated state? Traditional software has schema migrations. Agents have nothing.

Worse, memory is now a security surface. In early 2026, researchers demonstrated that persistent memory across sessions enables cross-session prompt injection attacks — where poisoned context from one conversation infects future ones. Your memory layer is also your attack surface.

This is not a framework problem. It’s a systems design problem that needs dedicated infrastructure.

Agents Need Bank Accounts

Here’s the one nobody wants to talk about: AI agents that take real actions need to handle money.

Procuring an API key. Paying for compute. Spinning up a database. Booking a resource. All of this requires payment capability. Right now, agents either get handed pre-approved credentials (a security nightmare at scale) or they can’t do anything that costs money.

Startups are starting to build the financial layer for autonomous agents — identity primitives, micro-payment rails, credential delegation scoped to specific budgets and timeframes. This is not a feature you bolt onto LangChain. It’s an entire infrastructure category that’s barely in its infancy.

When your agent needs to call a paid API mid-task, what happens? Right now: it either fails, or it uses your root credentials, or the task definition has to anticipate every external resource upfront. None of these are acceptable at production scale.

The Observability Gap

Traditional observability assumes request/response. An HTTP call comes in, something happens, a response goes out. You trace that.

Agent observability is fundamentally different. A single user action might trigger 40 LLM calls, 200 tool invocations, and spawn 3 parallel sub-agents over 90 seconds. The “trace” is a tree of reasoning that spans multiple models, contexts, and time.

No major observability platform handles this natively. What we have is: log the token counts, hope for the best.

You cannot debug what you can’t observe. Agents fail in nuanced, reasoning-level ways that look fine in the logs but are wrong in the output. The agent chose the wrong tool. It misinterpreted a partial result. It hallucinated a constraint that doesn’t exist. None of this shows up as an error. It just shows up as a bad outcome.

What Good Infrastructure Actually Looks Like

If you’re serious about agents in production, stop picking frameworks and start building:

Layered memory architecture. Working memory (in-context), episodic memory (retrieved per-task), semantic memory (persistent facts about the world and the user). Each layer with explicit eviction and update policies.

Typed state machines, not ad-hoc chains. If your agent can be in 15 different states, model those states explicitly. A graph of possible transitions is easier to debug than an implicit chain of callbacks.

Scoped credentials with budgets. Don’t give agents root access. Give them capabilities: “can call Stripe with a $50 limit,” “can read this S3 bucket but not write.” Identity-aware, time-bound, auditable.

Structured traces. Every LLM call, every tool invocation, every reasoning step — recorded in a queryable format. Not just for debugging. For eval. For understanding where your agent goes wrong systematically.

The Real Work Is Boring

Here’s the uncomfortable truth: the interesting engineering work in AI agents right now is not in prompt engineering or chain construction. It’s in state management, memory indexing, observability pipelines, and authorization models.

It’s infrastructure work. It’s boring. It doesn’t make a good demo.

But it’s what separates agents that work in notebooks from agents that run reliably in production.

The framework wars will eventually end, the way all framework wars end — with consolidation, commoditization, and a vague sense that we wasted years arguing about the wrong thing.

The infrastructure will outlast the frameworks. It always does.


P.S. — The next time someone asks you which agent framework to use, ask them how they’re handling persistent state across concurrent sessions. If they don’t have an answer, the framework question is premature.