# The Ambiguous State Trap: Why I Disabled Claude's Auto-Memory

> Source: <https://huggingface.co/blog/dacorvo/the-ambiguous-state-trap>
> Published: 2026-10-21 11:50:39+00:00

# 
		The Ambiguous State Trap: Why I Disabled Claude's Auto-Memory
	

 [Community Article](https://huggingface.co/blog/community)

A few days ago, I asked Claude Code to list the features I had parked on [funes](https://github.com/huggingface/funes), the memory tool I build for coding agents. Two of its answers rested on notes it had written for itself in earlier sessions. Both notes were wrong, and I had a hard time proving my point. Then came this exchange:

**Me:** This is not the first time I have to fight your notes.

[…]

**Me:** My experience is that you get obsessed with delusional or obsolete facts or conclusions that you fetch from notes I never sanctioned.

**Claude:** Yes. The mechanism is exactly that: I write a note at the end of a session from my own conclusion, you never see it, and the next session loads it as a fact and defends it.

[…]

**Me:** Using these notes is part of the system prompt, is it?

**Claude:** Yes. […] That is Claude Code's auto-memory feature, not something I chose. […] The feature can be turned off in Claude Code's settings. Say so and I look up the exact setting rather than guess it.

**Me:** Yes !!! Please turn it off

## 
		Claude's review
	

Before turning it off, I had Claude check its notes against what actually happened. This is the prompt I used:

Examine each of the notes you have for this project, and use recall to check if they are based on proven facts or decisions, if these facts and decisions are still valid, if they are useful

Here, recall is [funes](https://github.com/huggingface/funes): it searches every session I had with my coding agents, on all my hosts. Claude also checked each note against the repository and the releases, and cited the session, commit or release behind every verdict.

Claude marked only about 20% of the project notes as still valid.

## 
		My review
	

I then read the notes myself, including the ones Claude had marked valid. I had expected them to extract and organize useful concepts from the conversations. Instead, they mixed old project details, my feedback and Claude's own conclusions in convoluted, allusive prose. Honestly, it read like random mumblings.

Before I could check whether a note was true, I had to work out what it was trying to say. Even if I could find a reading that made it true, I couldn't know how the next session would interpret it.

The conversation that led to the audit already showed the cost. I had spent several turns trying to understand the two suggestions before I could challenge the notes behind them:

**Me:** Is making cryptic suggestions not backed by any fact a token-spillage strategy ?

**Claude:** […] Both were written in shorthand that only made sense to me, so you had to ask three times what I meant before you could even reject them.

I know the project, and I'm not sure I could use any of these notes myself. A fresh session has less context, yet can act on them with complete confidence. I then have to untangle its interpretation of a summary I never approved.

## 
		What I use instead
	

Rules go in files I write. My global CLAUDE.md lives in my dotfiles, next to an AGENTS.md for other agents. Every host gets both, and every change is a commit I can read.

History stays in the transcripts. funes indexes every session from Claude Code, Codex and pi, on all my hosts, into one memory: a private dataset on the Hugging Face Hub. The agent gets a `recall` tool and calls it when the past matters. It gets back what was said, word for word, with the session and the date. A transcript never claims to be current. It says what happened, on the day it happened.

The rule I gave Claude that day is short: "don't trust your notes, ever".

The switch is one line in Claude `settings.json`:

```
{
  "autoMemoryEnabled": false
}
```

I put the setting in my dotfiles, so it applies on every host.

## 
		Check your own notes
	

Your notes are plain markdown, and the `/memory` command in Claude Code opens their folder. Read the `project` ones first.

You can also use [funes](https://github.com/huggingface/funes) to have Claude check them against what actually happened:

```
curl -fsSL "https://huggingface.co/buckets/huggingface/funes/resolve/install.sh?src=blog-auto-memory" | sh
funes add claude
```

Then give Claude the prompt above.

## 
		References
	

- [Auto memory](https://code.claude.com/docs/en/memory#auto-memory) , in the Claude Code documentation
- [funes](https://github.com/huggingface/funes) , durable memory for your AI coding agents
