I had agents writing notes that nothing ever read. For months. Here is how I found out, and why I think it is a common shape of bug rather than a one-off.
The setup. An orchestration platform runs scheduled data jobs. Worker agents were instructed to bank durable technique in a per-job notes file: parsing traps, cadence, known-good access patterns. They complied. Some of those files reached 40 KB.
The check that took thirty seconds. I grepped the codebase for the filename.
Two hits. An archiving routine, and a UI file-lister.
It was never injected into a prompt. Never read at plan time, never read at execution time. Write-only memory.
The tell I had already seen and misread. Only a fraction of jobs maintained a notes file at all. I had assumed inconsistent agent behaviour. It was rational behaviour: nobody keeps a notebook that never comes back to them, and that turns out to be true of software too.
The second half of the same bug. The plan handed to each worker was discarded when the run ended. So a job that had run seventy times re-derived its plan from zero every morning. Schema, paths, identity rules, all rebuilt nightly from nothing.
Measured cost: a clean run needs five agent turns. Successful runs averaged 6.5, worst case 10. Runs that concluded “nothing new today” averaged 3.5, burning turns after the answer was already known.
Three constraints worth stealing if you wire this up.
Bounded, not whole. My largest notes file was nearly double the size at which my prompt transport starts corrupting input. Injecting it wholesale would have reproduced a bug I had already fixed. The file now has a curated head that travels with every run and a tail that stays on disk at a path the agent knows.
Curated, not appended. Append-only is how you get bloat. Replace facts that changed, delete the superseded version, and if nothing durable changed, leave it alone. That last clause prevents churn.
Instructions survive, context yields. When plan plus notes would exceed the ceiling, the notes get trimmed and the plan never does.
And one prompt-level detail that mattered more than the architecture: tell the planner explicitly that “nothing new today” still means the plan worked. Without that, it reads a quiet outcome as underperformance and rewrites a plan that was fine.
Go grep for the filename your agents write to. It takes thirty seconds and I would bet on the result.