[KongchangAI]
· 3 min read· 1,985 words

Agentic Everything: Most Agent Frameworks Are Solving Yesterday's Problems

Agentic Everything: Most Agent Frameworks Are Solving Yesterday's Problems

LLM agents are stateless text predictors; production systems need a small kernel, not the smart colleague model.

Through Maya's case of an agent booking a date six days in the past, the article reveals the fundamental error of modeling LLM agents as smart colleagues: agents are essentially stateless text predictors with no memory or goals between calls. Most agent frameworks solve capability problems, but production truly lacks reliability, observability, and controllability. The author proposes a durable kernel of just three things: memory storage, tool contracts, and guardrails. Everything above it is replaceable scaffolding. Before building, answer "what happens when this fails" and decide automation tiers by consequence severity.

Maya asked her agent to schedule a meeting. The agent confirmed the time, checked attendees' calendars, drafted a concise agenda, and sent the invitation. Everything looked perfect. The only problem: it scheduled it for last Tuesday—a date six days in the past.

Agentic Everything original screenshot

This failure was aesthetically flawless. Confident, fluent, completely wrong. The agent did everything the framework defined as correct. It just didn't understand time. This isn't a bug—it's a fundamental property of the abstraction we're building.

The Colleague Mental Model Will Bite You

Most people—including me at first—model LLM agents as smart colleagues you can delegate tasks to. You'd tell a colleague "schedule this for next Tuesday," and they'd confirm: "Do you mean this Tuesday or next Tuesday?" They'd flag ambiguity, push back. This mental model underpins every agent framework demo, and its wrongness bites you every single time.

An LLM agent is a stateless text predictor with tools attached. Input: everything that fits in the context window. Output: the statistically most likely token sequence, possibly wrapping a tool call. Nothing persists between calls. No goals—only a probability distribution over the next token, conditioned on a prompt.

Maya's agent didn't "think" it was booking the right date. It just generated the statistically most likely sequence given the input. That sequence happened to contain a past date. When the colleague mental model meets stateless token prediction, you get failures that look like competence—until you check the details.

The colleague mental model is the root cause of most agent failures. Design for a stateless text predictor, not a smart teammate.

Stateless text predictor is the key to understanding LLM agent behavior. "Stateless" means the model retains no internal memory or goals between calls—each call starts from scratch, with input limited to whatever's in the current context window. It doesn't have intentions, plans, or a self-model that persists across time like humans do. Instead, it outputs the statistically most likely token sequence given the input. This means the model doesn't "want" to do anything—it's just sampling from a probability distribution. When we treat agents as goal-oriented colleagues, we ignore this fundamental property: it won't proactively ask about ambiguity, nor will it reflect "is this date reasonable?" before acting. Understanding statelessness helps explain why agents confidently generate past dates, and why external memory, guardrails, and tool contracts are needed to compensate for this flaw.

Why Most Agent Frameworks Are Solving Yesterday's Problems

The first wave of agent frameworks made GPT-4's capabilities accessible: chain-of-thought, tool use, multi-step planning. This has real value. But the hard part was never capability. Maya's agent had plenty of capability—it used tools correctly, confirmed before acting, and produced impeccable output formatting. What it lacked was reliability, observability, and controllability.

Frameworks are great for demos. You can prototype in an afternoon. But demos are always success stories—nobody posts the version where the agent confidently books six days ago.

Frameworks solve capability because capability shines in demos. Reliability means trust without verification. Observability means being able to replay why a decision was made. Controllability means intercepting before damage occurs. Most frameworks treat these as afterthoughts—installable plugins rather than architectural primitives.

The result is predictable: confident failures at the edges of the training distribution, with no uncertainty signal. That last part is the most dangerous.

Where Things Actually Fail in Production

Failure ModeWhy It Happens
Ambiguous instructionsA colleague would ask—the agent generates a plausible guess
Time-sensitive contextCalendar problems—no anchoring to "now"
Cross-session stateStateless between calls, no persistence primitives
Confident errorsNo uncertainty signal—clean output regardless of correctness

Observability, controllability, and reliability are the core dividing lines between production-grade agent systems and demo prototypes. Observability means being able to replay and inspect each step of an agent's decisions—inputs, outputs, and internal state—to understand "why it did that." Controllability means intercepting or correcting an agent before it takes harmful actions, such as hard blocking based on rules. Reliability means the agent consistently executes tasks correctly without human verification. Most agent frameworks prioritize solving "capability"—letting models call tools and plan steps—because these show dramatic results in demos. But capability isn't reliability: an agent that perfectly calls a calendar API can still book the wrong date. Production environments require systems that expose uncertainty, log errors, and degrade safely when anomalous behavior appears at the edges of the training distribution—rather than confidently outputting wrong results.

The Durable Kernel Is Actually Small

After debugging Maya's calendar incident, I stripped every agent I maintain down to a three-piece kernel: memory storage, tool contracts, and guardrails. Everything else—planning loops, reasoning chains, meta-prompting—sits above the kernel, not inside it.

The durable value is a small kernel: memory storage, tool contracts, guardrails shell. Everything else is scaffolding that can and should be swapped independently.

Memory storage holds what needs to survive between calls—not the entire conversation, but the decisions, references, and state the agent needs to persist. Tool contracts define not just what tools do, but what happens when they fail: timeouts, retry budgets, fallback outputs. Guardrails aren't suggestions—they're hard boundaries enforced at the infrastructure layer, not the prompt layer.

This kernel is small enough to reason about, test, and trust. Everything above it—agent frameworks, orchestration layers, UIs—becomes replaceable. That's the point. When a better planning framework arrives next month, you swap the top layer without rebuilding the kernel.

My list evaluation pipeline is the most useful agent system I've built on this kernel. It ingests records on schedule, filters by configurable qualification thresholds (role match, location constraints, application friction), evaluates each passing record against quality scoring criteria, and surfaces the best matches in periodic summaries. Each step uses a different tool from the kernel's tool contract layer—scheduled triggers, deterministic rule-based filtering, LLM structured output evaluation, template-generated summaries—each with explicit failure handling. When the LLM returns malformed JSON, the kernel doesn't retry indefinitely. It logs the error, continues execution, and the summary includes "3 records skipped due to evaluation error." Human review catches the gaps.

Orchestration runs in n8n, not an agent framework. This isn't accidental. n8n is a workflow engine—a series of nodes each doing one thing, with explicit branching and defined error states at every step. I can open any historical run and see exactly what happened at each node. If a step fails, the workflow stops and I get alerted. If I need to change filtering criteria, I modify one node. This is observability, controllability, and maintainability—the three things agent frameworks consistently fail to deliver. "Agent" behavior emerges from workflow design, not framework magic. I want to understand exactly why it did what it did.

What the Kernel Actually Runs

ComponentTool UsedFailure Behavior
Schedule triggerCron nodeMissed window → next run catches up
Qualification filterRule node (deterministic)Rule error → log which record failed
Quality evaluationLLM node (structured output)Malformed JSON → skip, flag for review
Summary assemblyTemplate nodeEmpty set → send "no matches" instead of crashing
Human approvalWebhook pauseTimeout → defer to next run, notify owner

The kernel didn't make the pipeline smart. It made the pipeline honest. When the evaluator fails, you know why. When a record is skipped, you can find it. When the summary is empty because there are no matches, no one wastes time reviewing a blank screen. That's the value of a small kernel: not intelligence, but honest declarations from every component.

Tool contracts are one of the kernel's three pieces, and they go far beyond defining a tool's function signature—they specify complete behavior when tool calls fail. A robust tool contract should include: timeout thresholds (e.g., abandon after 3 seconds without response), retry budgets (max 2 retries, only for idempotent operations), fallback outputs (return defaults or skip markers on failure), and error classification (retryable vs. permanent errors). For example, when an LLM node returns malformed JSON, the contract specifies no infinite retries—instead, log the error, skip that record, and mark "N records skipped due to evaluation error" in the summary. Tool contracts elevate failure handling from vague prompt-layer instructions to hard infrastructure-layer constraints, making each component's failure behavior predictable and auditable—keeping the whole system honest rather than pretending competence in the face of uncertainty.

Architecture Follows the Answer

Before building any agent system, answer one question: what happens when this fails?

  • Catastrophic—writing wrong data, sending to the wrong person, transferring funds incorrectly → human review before action execution
  • Annoying but recoverable—created wrong file, retryable failed API call → automate, but set hard retry limits and rollback
  • Imperceptible—imperfect summary, slightly off classification → fully automate, move on

Maya's calendar agent falls into "annoying but recoverable." The fix wasn't a new framework or a smarter model. She added a 60-second delay after booking, then sent herself a confirmation email with the booked date for review before the invitation went out. That's the production fix. The aesthetically perfect failure became a good-enough system that hasn't erred since.

The question you answer before building is the difference between a system that runs reliably and one that books meetings in the past.

The agents that survive in production aren't the smartest. They're the ones with honest abstractions—a small trustworthy kernel with replaceable scaffolding around it.

Automation tiers should be decided based on the severity of failure consequences, not the technical difficulty of the task. These three tiers map to different architectural patterns: catastrophic errors (wrong transfers, sending sensitive data to the wrong recipient) must introduce human review nodes before execution, typically manifesting as workflow pauses waiting for webhook callbacks; annoying but recoverable errors (wrong file created, retryable API failures) can be fully automated but must have hard retry limits and rollback mechanisms to prevent error accumulation; imperceptible errors (imperfect summaries, slightly off classifications) are suitable for full automation and moving forward, because human intervention costs more than the error itself. This framework helps developers clarify before building: which steps require mandatory human confirmation, which can trust automation, and which can tolerate imperfection. Maya's calendar agent falls into the second category, so adding a 60-second wait and confirmation email fixes it—no need to swap frameworks or models.

Core Takeaways

This article points to a critical issue with current AI agent frameworks: they're built on stateless text prediction models, lacking the ability to understand context and time like human colleagues. This abstraction leads to failures that look competent but are actually flawed.

Designing for a stateless text predictor with tools, not for a smart teammate, is crucial. Recognizing that these agents operate on token probability distributions—not goals or temporal understanding—is the prerequisite for avoiding major errors.

Before building any agent system, ask yourself: what happens when this fails? The answer determines the architecture.

One-line Summary

LLM agents are stateless text predictors; production systems need a small kernel, not the smart colleague model.

Paragraph Summary

Through Maya's case of an agent booking a date six days in the past, the article reveals the fundamental error of modeling LLM agents as smart colleagues: agents are essentially stateless text predictors with no memory or goals between calls, generating only the statistically most likely token sequence. Most agent frameworks solve capability problems, but what's truly lacking in production is reliability, observability, and controllability. The author proposes that a durable, effective agent kernel has just three things: memory storage, tool contracts, and guardrails. Tool contracts define failure handling; guardrails are hard boundaries at the infrastructure layer. Everything above the kernel is replaceable scaffolding. Before building an agent, answer "what happens when this fails," and decide automation tiers based on consequence severity: catastrophic errors need human review, recoverable errors need retry limits, imperceptible errors can be fully automated.

#LLM agent#stateless text predictor#agent frameworks#tool contracts#guardrails#observability#controllability#production AI
Share:

Related articles