Skip to main content

Command Palette

Search for a command to run...

AI Agent Hype Is Giving Way to Hard Systems Problems

Why risk, memory, protocols, and orchestration are becoming the real center of gravity in agent engineering

Published
7 min read
AI Agent Hype Is Giving Way to Hard Systems Problems
L
I am an engineer and a developer advocate who is excited about building the future with AI Agents.

The conversation around AI agents is getting more interesting.

A few months ago, the timeline was full of toy demos: an agent booking a restaurant, an agent writing some code, an agent chaining a few API calls together. That phase mattered because it made the category feel real. But that’s not where the conversation is now.

What’s surfacing instead is the stuff that actually decides whether agents become useful software or just clever demos: risk, memory, control, and the interfaces between components. In other words, the hard parts are starting to dominate the conversation.

The Shift: From Agent Demos to Agent Systems

There’s a pretty clear transition happening.

The first wave of agent content was about proving the concept. Can an LLM plan? Can it use tools? Can it loop on a task? Can it recover from failure?

The current wave is more sober. Teams are realizing that once an agent has access to tools, state, and side effects, the problem stops being “can the model reason?” and starts being “can the system behave predictably?”

That changes what matters.

Instead of obsessing over one more prompt tweak, builders are spending time on questions like:

  • What state should persist across steps?
  • What policies must be checked before an action runs?
  • How do you inspect why an agent made a decision?
  • Where does memory live?
  • How should one agent hand work off to another?
  • What’s the contract between planning and execution?

That’s a software architecture conversation, not just an AI conversation.

Why Risk Is Becoming the Enterprise Bottleneck

One of the strongest themes right now is risk.

A lot of “autonomous agent” talk still assumes that if the model is smart enough, the rest will work itself out. In practice, enterprise teams hit a different wall first: trust.

It’s not enough for an agent to complete a task. It has to complete it within policy.

That means things like:

  • checking whether a user is allowed to perform an action
  • validating whether the action exceeds spending or access thresholds
  • confirming whether the system has enough context to proceed safely
  • requiring approval for sensitive operations
  • logging the decision path for review

Without that layer, an agent is basically a highly articulate source of operational risk.

This is one of the reasons I’m skeptical when people frame agent progress as mostly a model-quality problem. Better models help, obviously. But if your execution layer has no notion of policy, verification, or rollback, then “smarter” just means your system can fail in more convincing ways.

Skills Matter More Than General Intelligence

Another thing becoming obvious: a capable agent is usually less about raw intelligence than about reliable capabilities.

In demos, “tool use” gets treated like a checkbox. In production, the quality of the tool layer is half the product.

If your agent can:

  • read and write structured data
  • call internal APIs safely
  • execute sandboxed code
  • navigate documents and knowledge bases
  • trigger workflows with clear schemas
  • recover when a dependency fails

then it suddenly looks much more useful, even if the underlying model hasn’t changed.

If it can’t do those things consistently, then a fancy planner doesn’t save you.

This is why I think the conversation is moving toward skills, interfaces, and execution environments. A lot of the leverage is there. The interesting question is no longer just “what can the model think?” It’s “what can the system do reliably, and under what constraints?”

Memory Is Still a Mess

Memory is another area where the hype is colliding with implementation reality.

People talk about memory as if it’s one feature. It isn’t. There are several different problems hiding under that word:

  • short-term working context for the current task
  • persistent user preferences across sessions
  • shared state between collaborating agents
  • retrieval from external knowledge sources
  • execution artifacts produced during prior steps

Those are different concerns with different lifecycles.

When teams collapse all of them into “agent memory,” the architecture gets muddy fast. You end up with unclear ownership, bloated context windows, and systems that remember the wrong things while forgetting the right ones.

The teams building more serious agent systems are starting to separate these concerns more explicitly. That’s a good sign. Once you do that, questions about storage, retrieval, session lifecycle, and cleanup become design decisions instead of accidental behaviors.

Open Protocols Are Getting More Attention for a Reason

There’s also a growing interest in open protocols across the agent stack.

That makes sense. We’re in the stage where every framework, model provider, and runtime wants to define its own shape for tools, memory, handoffs, and execution semantics. It feels familiar if you’ve lived through earlier waves of platform fragmentation.

The problem with closed or overly provider-specific agent interfaces is that they make orchestration brittle.

If every system represents capabilities differently, then:

  • tool definitions aren’t portable
  • agent-to-agent handoffs get custom-wired every time
  • state is harder to inspect and migrate
  • replacing one component means rewriting glue code everywhere

That’s why protocol design matters here. I don’t think agent systems mature by piling more abstractions on top of bespoke control flow. They mature when the contracts between components become explicit enough to inspect, compose, and swap.

That’s also why I’m generally biased toward declarative approaches in orchestration. Once behavior is represented as data and contracts instead of buried inside imperative branching logic, you get a system that’s easier to reason about, debug, and evolve.

State Diagrams, Control Flow, and the Limits of “Just Prompt It”

One underappreciated signal in the current discourse is how many builders are rediscovering state machines, workflow graphs, and formal control flow.

That’s not a step backward. It’s what happens when the cost of ambiguity becomes too high.

For simple tasks, vague prompting plus a few tool calls is fine. For long-running or high-stakes tasks, it breaks down quickly.

You need to know:

  • what stage the system is in
  • what transitions are allowed
  • what inputs are required before moving forward
  • what should happen on failure
  • what needs human review

That doesn’t mean every agent should become a giant flowchart. It means reliable systems need explicit control surfaces somewhere.

This is where I think a lot of current agent tooling still feels immature. Too much behavior is hidden in prompt strings, callback code, and framework-specific chain definitions. It works until you need to inspect it, change it, or hand it off to another team.

And honestly, this is one of the patterns that still bothers me most in the ecosystem: prompts embedded directly in application code as giant string literals. Prompts change like content. Application logic changes like software. Those are different lifecycles. Mashing them together makes iteration worse for both.

The New Center of Gravity: Orchestration

If I had to summarize what’s gaining traction right now, it’s this: the center of gravity is shifting away from the model call and toward orchestration.

That includes:

  • session management
  • memory boundaries
  • approval flows
  • tool execution infrastructure
  • state transitions
  • retries and recovery
  • traceability
  • agent-to-agent coordination

This is where most of the engineering time goes once you move beyond prototypes.

And it’s probably healthy that the broader conversation is catching up to that. The more the community talks about orchestration instead of magical autonomy, the more realistic the systems will get.

What This Means for Builders

If you’re building in the agent space right now, I think there are a few practical takeaways:

1. Treat execution as a product surface

Don’t treat tools as a thin add-on to the model. Invest in schemas, auth boundaries, observability, error handling, and safe retries.

2. Separate kinds of memory early

Don’t throw every form of context into one bucket. Distinguish session state, long-term preferences, retrieval context, and task artifacts.

3. Make policy visible

If an agent can trigger meaningful actions, policy enforcement can’t be implicit. Put it in the architecture.

4. Prefer inspectable systems over clever ones

A system you can debug beats a system that occasionally looks magical.

5. Design for composition

The long-term shape of this space probably looks more like multiple cooperating components than one giant all-purpose agent.

Closing Thought

The AI agent conversation is improving because it’s getting less enchanted by demos and more interested in systems design.

That’s a good thing.

The next wave of useful agents probably won’t come from pretending autonomy is solved. It’ll come from builders getting serious about contracts, state, execution, and control.

That may sound less exciting than the fully autonomous dream. But in practice, it’s the difference between software that makes a great video and software that survives contact with reality.