Every few weeks, a new agent framework ships. Every few months, someone declares that agents are finally here. And yet most of the agent demos I see are still impressive in a controlled environment and frustrating in production.
I've been thinking about why, and I think it comes down to three gaps that frameworks mostly ignore.
Gap 1: Reliable task decomposition
The hardest part of agentic behavior isn't tool use — it's deciding when to break a task into subtasks and how. Current models are inconsistent at this. They'll nail it on easy examples, fail silently on edge cases, and hallucinate a plan that looks reasonable until step three when something breaks.
What's missing is better scaffolding for planning that's legible to the developer — so you can inspect, override, and debug the plan before it executes. Most frameworks treat planning as a black box. That's fine for demos, bad for anything in production.
Gap 2: Memory that actually persists meaningfully
Everyone has added some form of memory to their agent stack. Vector stores, conversation history, summaries. But memory without schema is just noise retrieval. What I haven't seen yet is a clean, developer-friendly way to define what should be remembered, in what form, and when it expires. That's a product problem, not just a research problem.
Gap 3: Error recovery that degrades gracefully
Right now, most agent systems either succeed or fail completely. What I want is agents that can say "I got to step four and hit an ambiguity — here are two interpretations, which one did you mean?" without needing to restart the whole task. Partial progress + human-in-the-loop checkpoints is the pattern, but building it well is still harder than it should be.
None of this is unsolvable. But I think the frameworks and the research community are optimizing for benchmark performance rather than production resilience. The next generation of useful agents will be built by people who've been burned by the current generation's failure modes.