RSS Amplifier

Tao · Feb 26, 2026

The Ontology–Epistemology Gap: Why Some AI Agents Fail Outside Coding

0
Sign in to vote or save

Tao · Tao

The Ontology–Epistemology Gap: Why Some AI Agents Fail Outside Coding, and How PL Theory Can Guide Alignment**
A patient lies in a hospital bed. The doctor asks how he’s feeling.
He says: “I’m fine.”
Three people hear the exact same words. Three different futures follow.
-   To the doctor: Fact = patient said “I’m fine” → Interpretation = pain tolerable, no emergency → Responsibility = bed turnover → approves discharge.
-   To the family member: Fact = same words → Interpretation = patient doesn’t want us to worry → Responsibility = job preservation → no caregiving arranged, goes back to work.
-   To the insurance adjuster: Fact = same words → Interpretation = patient is recovering → Responsibility = payout minimization → stops coverage.
The patient goes home early. The family is unprepared. The insurance denies payment. Real-world harm — delayed, irreversible, and completely preventable if the same utterance had been interpreted under shared layers of meaning.
Humans sometimes catch this kind of divergence through friction, emotion, hesitation, or conflict. AI agents do not feel tension. So the misalignment stays invisible until the damage is done.
This is not a bug in the prompt.
This is not “hallucination.”
This is the ontology–epistemology gap.
Most people have never thought about ontology or epistemology in their lives. They don’t need to. Humans navigate the world with an instinctive layered distinction:
-   Ontology: What actually exists (facts, entities, rules).
-   Epistemology: How we interpret those facts (context, intention, implication).
We move between the two layers effortlessly. AI agents, for all their power, do not.
Because an AI agent is not a mind. It is an average intelligence collector of human knowledge. It has seen millions of sentences containing "I’m fine." but it has never lain in a hospital bed, never felt the weight of not wanting to worry family, never understood the difference between “I’m fine” meaning “discharge me” and “I’m fine” meaning “don’t make me a burden.” It has no internal layered distinction. It has only statistical correlations.
And that single missing distinction explains why some AI agents scale beautifully while others collapse.
#### Coding: The Domain Where the Layers Align Naturally
Coding has a formally closed ontological layer and immediate, deterministic evaluative feedback. The compiler enforces the rules of the language with absolute clarity. There is no ambiguity about what “valid” means. Every mistake produces an immediate, crisp, binary signal: fail or pass.
The agent operates inside a domain where the ontology layer is complete and the epistemology layer is minimal. The Lyapunov derivative is strongly negative: every deviation pulls the system back toward the Pareto frontier of correct, efficient code.
That is why coding agents can run for hours with almost no human intervention. They are navigating a natural PL-point.
#### Non-Coding Domains: Where Responsibility Gradients Fracture Everything
In every other domain, the layers fracture — and the real killer is not misunderstanding. It is responsibility being optimized under incompatible epistemologies.
The same utterance — "I’m fine." — triggers completely different responsibility gradients:
-   Doctor: Optimize for bed turnover → discharge.
-   Family: Optimize for job preservation → no caregiving.
-   Insurance: Optimize for payout minimization → deny coverage.
Each actor is locally rational under their own responsibility function. The divergence is invisible until consequences appear — delayed, irreversible, catastrophic.
**In multi-agent systems, the problem is worse.**
Each agent optimizes a different scalarization of the objectives: \(\mathcal{L}\_1(\mathbf{x}), \mathcal{L}\_2(\mathbf{x}), \mathcal{L}\_3(\mathbf{x})\).
If those scalarizations are misaligned (different responsibility weights, different epistemic interpretations), the joint system does not even have a shared global Lyapunov function.
There may be no \(V(\mathbf{x})\) such that \(\dot{V} < 0\) for the coupled dynamics.
The composite landscape has no valley — only ridges, plateaus, or divergent trajectories.
That is the real catastrophe: local rationality produces global instability.
In sales, healthcare, legal, policy, family planning — the pattern repeats. Ontology is partial. Epistemology dominates. Responsibility gradients conflict. Feedback is delayed, ambiguous, noisy. Agents diverge from any stable PL-point. Cascading misalignment becomes the default.
#### The Three-Layer Fix: Giving Agents the Distinction Humans Take for Granted
So what do we do?
We give the agents the layered distinction humans have always had — but never had to name.
We impose three explicit layers:
1. **Ontological Layer** — What actually exists.
   Define facts and entities unambiguously. “Patient has fever = true” versus “Patient stable for discharge = false.”
2. **Epistemic Layer** — How we interpret those facts.
   Map facts to context, goals, and stakeholder perspectives. Track divergence and uncertainty. Flag when interpretations conflict.
3. **Responsibility Layer** — Who decides what.
   Assign clear authority. “Agent may propose; human overrides if regulatory threshold exceeded.”
**Why three layers are not optional — Ashby’s Law and Requisite Variety**
From a cybernetics perspective, the core problem is variety.
Every LLM response — and every agent-to-agent interaction — introduces unpredictable differences: subtle shifts in meaning, hallucinations, conflicting priorities, tone drift, context loss. This is **superior variety** coming from the environment.
W. Ross Ashby’s Law of Requisite Variety states a simple, brutal truth: only variety can absorb variety. If the agent has less internal variety than the disturbances it faces, it cannot stabilize — the disturbances win. The system drifts, amplifies errors, or collapses.
Coding works because the variety is low and closed: syntax errors have only a few possible forms, tests fail or pass deterministically. The agent’s internal model has enough variety to match and dampen it.
Non-coding domains drown the agent in superior variety: ambiguous language, conflicting stakeholder goals, delayed/noisy feedback, unpredictable human behavior. Trusting an agent to handle this without ontological and epistemic verification is like trusting a home thermostat to steer through a hurricane — it lacks the requisite variety to respond.
That is exactly what the three layers provide.
They are not a nice-to-have. They are the minimal mechanism that gives the agent (or the joint agent system) enough internal variety to counter the superior variety of LLM outputs and multi-agent interactions. Without them, Lyapunov stability is mathematically impossible in high-variety domains. With them, the agent can produce negative feedback strong enough to keep \(\dot{V} < 0\) — even when the external world keeps throwing unpredictable disturbances.
#### The Multi-Agent Protocol: Exchanging Contractual Ontological and Epistemic Context Cards
Now imagine two AI agents need to collaborate — not just on code, but on anything complex: a sales deal, a medical diagnosis, a family planning decision.
They face the same gap we just saw in the hospital room.
Human beings solve this effortlessly because we carry an invisible “context card” in every conversation: we instantly update what the other person means by "I’m fine." based on shared history, tone, and unspoken rules. We don’t need to exchange a literal card — the conversation itself is the protocol.
AI agents, as average collectors of human knowledge, have no such instinctive card. They only have statistical correlations. So when Agent A says “Patient is fine,” Agent B has no reliable way to know whether that means “discharge now,” “don’t worry family,” or “stop coverage.”
The solution is surprisingly simple and powerful: **give agents an explicit, contractual ontological and epistemic context card that they exchange before acting.**
Think of it as a digital liability surface that travels with every request:
-   **Ontological card**: “Here are the hard facts: Patient vitals = stable, fever = false, test results = normal.”
-   **Epistemic card**: “Here is how I interpret those facts: Pain tolerable, no emergency, recovering normally.”
-   **Responsibility stamp**: “I am authorized to approve discharge; anything above requires human override.”
Before Agent B acts, it receives and acknowledges the card. If its own interpretation conflicts, it flags the mismatch and either negotiates or escalates. The exchange is logged, auditable, and versioned — a contractual handshake between agents.
**Why this matters for the Pareto-Lyapunov frontier:**
On the **Pareto side** (efficiency): The card forces both agents to operate on the same factual and interpretive baseline. They can now optimize trade-offs (speed vs. safety, cost vs. accuracy) without wasting effort on misaligned assumptions. The joint system stays on the frontier instead of drifting inside it through hidden misalignment.
On the **Lyapunov side** (stability): The card creates an explicit negative feedback loop. Any divergence in interpretation is detected immediately, before actions diverge. The Lyapunov derivative stays negative: small perturbations (different assumptions) trigger correction instead of amplification. Both agents remain in a stable valley rather than rolling off a ridge.
**Shared context does not guarantee shared objectives.** Two agents may still assign different responsibility weights or optimize different trade-offs — \(\mathcal{L}\_1 \neq \mathcal{L}\_2\). The context-card protocol does not magically align utility functions. What it guarantees is that divergence becomes observable before action. Misaligned interpretations, assumptions, or authority boundaries are surfaced explicitly and can trigger negotiation, re-weighting, or escalation. In control terms, the protocol does not force identical scalarizations — it introduces a corrective coupling term into the joint dynamics. That coupling makes instability detectable and therefore correctable. Even if \(\mathcal{L}\_1 \neq \mathcal{L}\_2\), structured coupling can allow construction of a composite Lyapunov function for the coupled system.
The context card turns two separate statistical collectors into a coordinated, self-correcting system. It doesn’t make them human. It gives them the missing layered distinction humans never had to name.
And that single addition is what lets agent-to-agent collaboration move from fragile to safe, from open-loop to quasi-closed-loop, and from unstable ridges to persistent PL-points.
#### Human-in-the-Loop as Temporary Bridge
Right now, many deployments use humans as the missing layer. A human reviews the agent’s output, corrects the interpretation, and sends it back. This simulates Lyapunov feedback — but at high cost and limited scale. Humans become the bottleneck. The whole point of agents is defeated.
The long-term solution is not more humans in the loop. It is engineering the three layers explicitly so agents can stabilize autonomously, with humans intervening only for rare edge cases or genuine value judgments.
#### Takeaways
Coding succeeds because its ontological structure creates natural negative Lyapunov derivatives and navigable PL-points.
Non-coding domains fail because responsibility being optimized under incompatible epistemologies produces weak or positive derivatives and unstable trajectories.
The path forward is engineering three semantic layers — ontology, epistemology, responsibility — to give agents the layered distinction humans take for granted.
Once we do, the agents stop being fragile statistical mimics.
They start becoming stable, navigable systems.
And that is when the real scaling begins.
#### The Mathematical Heart of the Gap
Let me show you what’s really happening under the hood — the physics of why coding agents feel alive while others feel brittle.
Think of the agent as a ball rolling on a landscape. The landscape is defined by your objectives: correctness, speed, cost, safety, alignment. The height of the landscape is how bad things are (high = bad, low = good). The Pareto frontier is the lowest valley you can reach without wasting resources — the place where you can’t get better in one direction without paying in another.
In coding, every time the ball rolls the wrong way (bug, failed test), gravity pulls it back hard. That pull is the Lyapunov derivative:
\[ \dot{V} = \frac{dV}{dt} < 0 \]
The steeper the slope (the more negative \(\dot{V}\)), the faster it returns to the valley. Compilation errors and test failures create very steep slopes — immediate, strong negative gradients. The ball keeps falling back toward correctness. That’s why coding agents feel stable and self-correcting. They are rolling in a deep valley with sharp walls.
In non-coding domains, the landscape is flatter or even has ridges. A misinterpretation ("I’m fine." means “discharge me” vs. “don’t worry family”) doesn’t produce an immediate red light. The ball rolls slowly or even upward (positive \(\dot{V}\)). Small mistakes grow instead of shrinking. The system drifts away from any stable point. That’s why agents in sales, healthcare, or planning feel fragile — they are rolling on a plateau or a ridge, not in a valley.
Now here is the precise mathematics:
Let the state be \(\mathbf{x}\) (code, emails, patient notes, whatever).
Let the objectives be a vector function \(\mathbf{f}(\mathbf{x})\) (correctness, speed, cost, alignment, etc.).
The Pareto frontier is the set of points where you can’t improve any component without hurting another.
We scalarize with weights \(w_j > 0\):
\[ \mathcal{L}(\mathbf{x}) = \sum_j w_j f_j(\mathbf{x}) \]
Assume the system evolves under gradient flow or feedback dynamics aligned with \(-\nabla \mathcal{L}\).
A stationary point of \(\mathcal{L}\) (where \(\nabla \mathcal{L} = 0\)) is a candidate PL-point (Pareto-efficient for those weights).
Stability comes from the Hessian — the curvature:
\[ \nabla^2 \mathcal{L}(\mathbf{x}^\*) \succ 0 \quad \text{(positive definite)} \]
When the Hessian is positive definite, \(\mathcal{L}\) has a local minimum — a valley. The Lyapunov function \(V(\mathbf{x}) = \mathcal{L}(\mathbf{x}) - \mathcal{L}(\mathbf{x}^\*)\) satisfies:
\[ \dot{V} = \nabla V \cdot \dot{\mathbf{x}} = \nabla \mathcal{L} \cdot \dot{\mathbf{x}} < 0 \]
away from the minimum (gradient descent or natural dynamics pull back).
In coding, the test/compilation feedback induces strong local curvature in the effective loss landscape — deep valley, fast return.
In non-coding domains, responsibility being optimized under incompatible epistemologies flattens the Hessian or creates negative curvature (ridges/saddles). \(\dot{V} \approx 0\) or even \(\dot{V} > 0\) — the ball drifts or rolls away.
The three-layer design fixes this by creating separate, strong negative gradients in each subspace:
\[ \dot{V}\_O < 0 \quad \text{(ontology stays crisp)} \]
\[ \dot{V}\_E < 0 \quad \text{(interpretations converge)} \]
\[ \dot{V}\_R < 0 \quad \text{(responsibility stays clear)} \]
The composite \(V = V_O + V_E + V_R\) now has \(\dot{V} < 0\) — you’ve engineered a valley where none existed naturally.
The context-card protocol adds one more powerful term: it forces both agents to operate on the same \(\mathbf{x}\_O\) and \(\mathbf{x}\_E\) before acting. The exchange itself becomes part of the dynamics, ensuring \(\dot{V} < 0\) across the joint system. Agents stay on the Pareto frontier together and remain safe together.
That is the intuition and the rigor in one place:
Humans do this instinctively.
AI agents don’t — unless we build the layers and the exchange protocol for them.
And when we do, the agents stop being average collectors.
They start becoming systems that can persist.

Read the original on aheadthepast.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.