<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Andrew Estey-Ang</title>
    <description>The latest articles on Forem by Andrew Estey-Ang (@esteyang).</description>
    <link>https://forem.com/esteyang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3836074%2F57c42934-baa6-4e6f-80db-4789ae469f50.png</url>
      <title>Forem: Andrew Estey-Ang</title>
      <link>https://forem.com/esteyang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/esteyang"/>
    <language>en</language>
    <item>
      <title>Your AI Doesn't Have a Brain. It Has a Filing Cabinet.</title>
      <dc:creator>Andrew Estey-Ang</dc:creator>
      <pubDate>Wed, 08 Apr 2026 15:09:29 +0000</pubDate>
      <link>https://forem.com/esteyang/your-ai-doesnt-have-a-brain-it-has-a-filing-cabinet-2aem</link>
      <guid>https://forem.com/esteyang/your-ai-doesnt-have-a-brain-it-has-a-filing-cabinet-2aem</guid>
      <description>&lt;h2&gt;
  
  
  Your AI Doesn't Have a Brain. It Has a Filing Cabinet.
&lt;/h2&gt;

&lt;p&gt;Every AI memory tool on the market today makes the same pitch: "We'll remember your conversations so your AI doesn't forget." Import your chat history. Search across it. Get organized.&lt;/p&gt;

&lt;p&gt;Sounds great. There's just one problem: &lt;strong&gt;search is not memory.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Google Drive full of documents doesn't mean your company "knows" what's in them. A Notion workspace with ten thousand pages doesn't mean your team has shared understanding. And a database full of past conversations doesn't mean your AI "remembers" anything. It means your AI has a filing cabinet.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Filing Cabinet Test
&lt;/h2&gt;

&lt;p&gt;Here's a thought experiment.&lt;/p&gt;

&lt;p&gt;You've had a thousand conversations with AI assistants over the past year. In conversation #200, you told ChatGPT that your startup should focus on B2B enterprise sales. In conversation #800 — six months later, after watching three enterprise deals collapse — you told Claude that consumer PLG is the only viable path forward.&lt;/p&gt;

&lt;p&gt;A filing cabinet can find both of these when you search for "go-to-market strategy." It dutifully returns them, side by side, like a librarian handing you two books that happen to contradict each other without mentioning that they do.&lt;/p&gt;

&lt;p&gt;A brain would notice they contradict each other.&lt;/p&gt;

&lt;p&gt;This is the filing cabinet test, and it's the fastest way to evaluate whether an AI memory tool is actually giving your AI memory, or just giving it storage. Ask three questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Can it detect when your past self disagreed with your current self?&lt;/strong&gt; Not just retrieve both statements — actually flag the contradiction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can it track how your beliefs evolved?&lt;/strong&gt; Not just show you a timeline of conversations — model the arc from B2B conviction to PLG conviction, and know &lt;em&gt;why&lt;/em&gt; the shift happened.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can it decide which belief to act on?&lt;/strong&gt; Not just return the most recent one — weigh the evidence, consider the context, and surface the stronger position.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If your memory tool can't do any of these, it's a filing cabinet. A very fast, very expensive filing cabinet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Search Gets You (and Where It Stops)
&lt;/h2&gt;

&lt;p&gt;To be clear: search-and-retrieve isn't useless. Being able to pull up "that conversation where I figured out the pricing model" is genuinely valuable. It beats starting from scratch every time your context window resets.&lt;/p&gt;

&lt;p&gt;But search is a solved problem. Embeddings, vector databases, semantic similarity — the tooling is mature. You can build a decent search-over-conversations product in a weekend hackathon. And several companies have.&lt;/p&gt;

&lt;p&gt;The problem is what happens &lt;em&gt;after&lt;/em&gt; retrieval. When your AI pulls up five relevant past conversations to inform a decision, it has no way to reconcile them. It doesn't know that conversation #3 superseded the conclusions from conversation #1. It doesn't know that the budget numbers in conversation #2 were corrected in conversation #5. It doesn't know that your confidence in the technical approach from conversation #4 dropped after the production incident you discussed in a completely separate thread.&lt;/p&gt;

&lt;p&gt;Search gives you recall. It does not give you understanding.&lt;/p&gt;

&lt;p&gt;And this gap isn't academic. It has real consequences every time an AI agent acts on outdated or contradictory information because its "memory" was just a keyword match against a database of past transcripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Real Cognitive System Looks Like
&lt;/h2&gt;

&lt;p&gt;If search-and-retrieve is the filing cabinet, what does the brain look like? Here are the architectural properties that separate cognitive systems from storage systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contradiction detection.&lt;/strong&gt; When new information conflicts with an existing belief, the system doesn't silently store both versions. It surfaces the conflict. "In March you said the API should be REST-only. In June you said GraphQL is non-negotiable. Which position should I operate from?" A filing cabinet stores both. A brain asks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Confidence scoring.&lt;/strong&gt; Not all information is equal. Something you stated once in passing has different weight than something you've confirmed across fifteen conversations over three months. A cognitive system tracks how confident it should be in each piece of knowledge — and &lt;em&gt;why&lt;/em&gt;. When two beliefs conflict, confidence scores provide a principled way to resolve the tension rather than just defaulting to "most recent wins."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Belief lifecycle management.&lt;/strong&gt; Beliefs aren't static. They're born from a single observation, strengthened by corroborating evidence, challenged by contradictions, weakened by counter-evidence, superseded by newer conclusions, and eventually retired. A system that models this lifecycle explicitly can answer questions a filing cabinet never could: "When did I change my mind about this?" "What evidence drove that change?" "How stable is my current position?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross-conversation reasoning.&lt;/strong&gt; The hardest test for any memory system: connecting information from conversation A to information from conversation B through an inference that neither conversation made explicitly. "You told me the deployment deadline is April 15. You also told me the security audit takes 6 weeks. You haven't mentioned scheduling the audit yet." That's not retrieval. That's reasoning over a knowledge graph built from hundreds of separate interactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benchmark Gap Is Not 10%. It's 10x.
&lt;/h2&gt;

&lt;p&gt;Here's what happens when you actually test memory systems on whether they can consolidate and reason over facts scattered across many conversations.&lt;/p&gt;

&lt;p&gt;The FactConsolidation benchmark from the &lt;a href="https://github.com/xiaowu0162/LongMemEval" rel="noopener noreferrer"&gt;LongMemEval suite&lt;/a&gt; (ICLR 2025) was designed exactly for this. It doesn't test whether a system can find a needle in a haystack — any decent vector search can do that. It tests whether a system can synthesize facts from 6,000+ sessions into a coherent answer when the relevant information is spread across dozens of conversations and some of it contradicts other parts.&lt;/p&gt;

&lt;p&gt;Most memory systems that score well on simple retrieval tasks — the ones that look good in demos — collapse on consolidation. The gap between "can find the right conversation" and "can reason across all your conversations" isn't marginal. It's categorical. Systems that look great on single-session retrieval — find the right conversation, return the relevant snippet — often fail catastrophically when asked to consolidate facts across many sessions.&lt;/p&gt;

&lt;p&gt;This isn't a tuning problem. It's an architecture problem. You can't bolt consolidation onto a search index after the fact. The system has to be designed from the ground up to model beliefs, track confidence, detect contradictions, and maintain a living knowledge graph — not a dead archive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters Now
&lt;/h2&gt;

&lt;p&gt;Context engineering is becoming the defining discipline of 2026. As AI agents take on longer-running, multi-session tasks — coding projects that span weeks, research that builds over months, business decisions that evolve over quarters — the memory layer becomes the bottleneck.&lt;/p&gt;

&lt;p&gt;The agent that forgets what you decided yesterday isn't an agent. It's a very expensive autocomplete that you have to re-brief every morning. And the memory tool that can retrieve your old conversations but can't reason over them is just moving the re-briefing burden from "explain everything from scratch" to "manually reconcile five conflicting search results."&lt;/p&gt;

&lt;p&gt;We're past the point where "remembers your name and preferences" counts as AI memory. The bar is higher now. Developers building serious agent systems need memory infrastructure that passes the filing cabinet test — that can detect contradictions, track belief evolution, score confidence, and reason across hundreds of sessions.&lt;/p&gt;




&lt;h2&gt;
  
  
  We're Building the Brain
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://getpith.dev" rel="noopener noreferrer"&gt;Pith&lt;/a&gt; is a context engineering system that works with any MCP-compatible AI client — Claude Desktop, Claude Code, Cursor, Windsurf, Cline, VS Code. It runs locally on your machine, and it passes the filing cabinet test.&lt;/p&gt;

&lt;p&gt;When your AI learns something new that contradicts something it learned before, Pith catches it. When your confidence in a decision should change based on new evidence, Pith tracks it. When information from session #47 connects to information from session #203 in a way that matters for what you're building today, Pith surfaces it.&lt;/p&gt;

&lt;p&gt;It's not a search engine for your past conversations. It's a cognitive layer that actually understands what it knows — and updates that understanding as it learns more.&lt;/p&gt;

&lt;p&gt;If you're building AI agents that need to actually know things — not just search through things — the architecture matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://getpith.dev" rel="noopener noreferrer"&gt;Try Pith →&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

</description>
      <category>ai</category>
      <category>context</category>
      <category>memory</category>
      <category>agents</category>
    </item>
    <item>
      <title>What Memory Benchmarks Don't Test</title>
      <dc:creator>Andrew Estey-Ang</dc:creator>
      <pubDate>Thu, 26 Mar 2026 01:00:35 +0000</pubDate>
      <link>https://forem.com/esteyang/what-memory-benchmarks-dont-test-h9c</link>
      <guid>https://forem.com/esteyang/what-memory-benchmarks-dont-test-h9c</guid>
      <description>&lt;p&gt;Every comparison of AI memory systems ranks on retrieval accuracy. None rank on what happens when the system retrieves confidently wrong information, holds contradictory beliefs simultaneously, or trusts stale knowledge as if it were current. Here's the evaluation framework they're missing.&lt;/p&gt;

&lt;p&gt;In March 2026, three independent comparison posts evaluated AI agent memory systems. All three used LoCoMo as their benchmark. All three ranked systems by retrieval hit rate. All three declared a winner. None of them asked the question that actually matters in production: &lt;strong&gt;what does the system do when it's wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't a criticism of LoCoMo. It's an excellent benchmark for what it tests: whether a system can surface a relevant memory given a query. But retrieval accuracy is a necessary condition for useful memory, not a sufficient one. A system that retrieves the right fact 90% of the time and confidently hallucinates the other 10% — with no mechanism to distinguish between them — is not a production-grade system. It's a liability with a good benchmark score.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three failure modes LoCoMo can't catch
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Confident retrieval of stale beliefs
&lt;/h3&gt;

&lt;p&gt;Memory systems accumulate knowledge over time. That's the point. But knowledge changes. Your user's tech stack changes. Their team changes. Their priorities change. A memory system that retrieved a fact accurately in session 3 and still returns that same fact with the same confidence in session 47 — despite contradicting evidence accumulated in between — isn't malfunctioning according to LoCoMo. It's scoring a hit. The fact matches the query. Correct retrieval, wrong answer.&lt;/p&gt;

&lt;p&gt;The failure mode: &lt;strong&gt;staleness without decay.&lt;/strong&gt; No benchmark measures whether confidence scores track the age and corroboration of evidence. No benchmark measures whether a superseded belief is surfaced less than its replacement.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Simultaneous contradictory beliefs
&lt;/h3&gt;

&lt;p&gt;Information accumulates from multiple sessions, multiple sources, multiple moments in time. Contradictions are inevitable. "The project deadline is Q3." Then later: "The deadline moved to Q2." Both facts exist in the memory store. What does the system do?&lt;/p&gt;

&lt;p&gt;Most systems do nothing. They return both. Or they return whichever was retrieved with higher cosine similarity. The agent then has to figure out which to trust — and usually, it can't, because the memory layer didn't tell it that a contradiction exists.&lt;/p&gt;

&lt;p&gt;The failure mode: &lt;strong&gt;unresolved contradictions surfaced as equivalent facts.&lt;/strong&gt; LoCoMo doesn't test for this because its evaluation set doesn't systematically introduce contradicting information and then query across both sides of the contradiction.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. No confidence signal for the consuming agent
&lt;/h3&gt;

&lt;p&gt;Retrieval systems return memories. The best ones also return relevance scores — typically cosine similarity between the query embedding and the memory embedding. This is a retrieval signal, not an epistemic one.&lt;/p&gt;

&lt;p&gt;A memory with high cosine similarity to the query isn't necessarily a memory worth trusting. It might be unverified. It might conflict with two other memories the system didn't surface. It might be a single-observation belief that was never corroborated. The consuming agent has no way to know.&lt;/p&gt;

&lt;p&gt;The failure mode: &lt;strong&gt;retrieval scores treated as trust scores.&lt;/strong&gt; The downstream agent can't calibrate. It either trusts everything or trusts nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a complete evaluation framework looks like
&lt;/h2&gt;

&lt;p&gt;We're not proposing to throw out LoCoMo. We're proposing to add dimensions. Here's what a complete memory system evaluation should measure:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What it tests&lt;/th&gt;
&lt;th&gt;Current benchmarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Retrieval accuracy&lt;/td&gt;
&lt;td&gt;Does the system surface the right memory for a query?&lt;/td&gt;
&lt;td&gt;✓ LoCoMo, MemoryArena&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Staleness decay&lt;/td&gt;
&lt;td&gt;Does confidence decrease as evidence ages without corroboration?&lt;/td&gt;
&lt;td&gt;✗ Not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contradiction detection&lt;/td&gt;
&lt;td&gt;Does the system flag when new information conflicts with stored beliefs?&lt;/td&gt;
&lt;td&gt;✗ Not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supersession chains&lt;/td&gt;
&lt;td&gt;When a belief is updated, is the old belief demoted and linked to its replacement?&lt;/td&gt;
&lt;td&gt;✗ Not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Confidence calibration&lt;/td&gt;
&lt;td&gt;Do confidence scores correlate with factual accuracy across sessions?&lt;/td&gt;
&lt;td&gt;~ MemGPT partially&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cold-start quality&lt;/td&gt;
&lt;td&gt;How much context does a new session start with? How relevant is it?&lt;/td&gt;
&lt;td&gt;~ MemoryArena partially&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Irrelevant decay&lt;/td&gt;
&lt;td&gt;Do low-relevance memories fade over time to reduce noise?&lt;/td&gt;
&lt;td&gt;✗ Not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The core problem:&lt;/strong&gt; current benchmarks optimize for recall at retrieval time. Production memory systems need to optimize for &lt;em&gt;trust at inference time&lt;/em&gt;. These are related but different objectives. A system can score well on one while failing catastrophically on the other.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why this matters more as agents run longer
&lt;/h2&gt;

&lt;p&gt;A March 2026 survey of LLM agent memory architectures (&lt;a href="https://arxiv.org/abs/2603.07670" rel="noopener noreferrer"&gt;arxiv.org/abs/2603.07670&lt;/a&gt;) found that autonomous agents lack principled governance for contradiction handling, knowledge filtering, and quality maintenance — and that this leads to compounding trust degradation over time. The longer the agent runs, the worse it gets.&lt;/p&gt;

&lt;p&gt;This is the regime where retrieval accuracy alone breaks down as a metric. In a short-horizon benchmark like LoCoMo (which tests single-session recall), there's minimal opportunity for contradictions to accumulate. In real agentic deployments — where an agent is running across dozens or hundreds of sessions, accumulating knowledge from multiple users and data sources — the epistemic quality of the memory layer becomes the dominant factor in output quality.&lt;/p&gt;

&lt;p&gt;A &lt;a href="https://arxiv.org/abs/2503.07670" rel="noopener noreferrer"&gt;MemoryArena benchmark paper&lt;/a&gt; from the same month models this formally: multi-session agentic tasks are naturally a Partially Observable Markov Decision Process (POMDP). The agent never directly observes the full underlying state. Memory exists to approximate belief-state estimation. Optimal memory returns all-and-only information necessary to infer current task state. But current SOTA systems are "optimized for generic recall or compression, not task-relevant state variable preservation."&lt;/p&gt;

&lt;p&gt;In plain terms: they're retrieving. They're not reasoning about what to trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we're building at Pith
&lt;/h2&gt;

&lt;p&gt;Pith is the cognitive governance layer for agent memory. Contradictions are detected at ingestion, not at retrieval. Confidence scores reflect corroboration and recency — not embedding similarity. Beliefs move through a lifecycle: observed, corroborated, promoted, superseded, decayed.&lt;/p&gt;

&lt;p&gt;If you're building agents that run across multiple sessions, we'd like to show you what this looks like in practice.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://pith.run/blog/what-memory-benchmarks-dont-test" rel="noopener noreferrer"&gt;pith.run/blog/what-memory-benchmarks-dont-test&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>memory</category>
    </item>
  </channel>
</rss>
