Skip to content

Field notes / Agent memory

Our AI agents share one memory. Here's what a week with Jev taught us.

We put Jev, a low-cost AI judge, in charge of keeping our agents' shared memory clean and useful. Five findings, what went wrong, and what we're testing next.

September 26, 2026Jev · Agent memory · Evaluation

Our AI agents do real work every day: they write code, review changes and run our operations. They share one memory, about 117,000 notes of facts, decisions and lessons they've saved along the way. When an agent starts a task, the notes that look most relevant are pulled from that memory and put in front of it.

We wanted to know two things. Is that memory actually helping? And can a low-cost AI keep it clean and relevant, without paying a large model to read every note?

For a week we tested Jev, a judge model from TypeSafe, on that job. Jev answers narrow questions, such as "do these two notes say the same thing?" or "is this note worth keeping?" Plain code decides what happens with each answer, so every change can be checked and undone.

Figure 1

How the shared memory works, and where Jev answers

The path of a note through the shared memoryAgents save notes. A filter asks Jev whether each is worth keeping. Notes go into the shared memory, where a nightly clean-up asks Jev whether two notes are the same fact. A lookup asks Jev which notes fit the task, and they go back to the agent.Agents save notesThe filterJev: is this note worth keeping?Shared memoryNightly clean-up. Jev: are these two notes the same fact?The lookupJev: which notes fit this task?Back to the agent
Jev answers narrow questions as notes come in, as they go out to an agent, and overnight. Plain code decides what happens with each answer.SourceThe receipts each step writes: the incoming filter, the lookup ranking and the nightly clean-up, 24 to 25 September 2026.

Five things we learned

1. Jev cleaned up the memory, cheaply and safely

Figure 2

What the clean-up retired

Notes retired by the clean-up, by kindOf 3,618 retired notes: near-duplicates 3,227, program output 371, exact duplicates 11, old machine snapshots 9.All 3,618 retired notesNear-duplicatessame fact, reworded3,227Program outputtool output as notes371Exact duplicatesword-for-word copies11Old machine snapshotsoutdated readings9
Most of the 3,618 retired notes were near-duplicates: the same fact saved twice in different words. Nothing was deleted, and every retired note can be restored.SourceThe clean-up run's four stage journals and its verification sample, 25 September 2026.

In one pass, Jev retired 3,618 notes, 3.1% of the memory, for about $0.28 in model costs. Most were near-duplicates: the same fact saved twice in different words.

Nothing was deleted. A retired note is hidden from search and can be restored. We checked 300 retired notes afterwards. None came back in search, and the copy we kept was always still there.

What it means: a cheap judge can do housekeeping nobody has time for, as long as every change can be undone.

2. Our own bug had switched Jev off

Figure 3

Share of lookups that got Jev's ranking

Lookups ranked by Jev, before and after the fixBefore the 24 September fix, 3% of lookups got Jev's ranking. After it, 84% did.All lookupsBefore the fix, the three days to 24 September3%After the fix, to the evening of 25 September84%
  • While our bug blocked Jev
  • After the fix
Our cost tracker counted timed-out calls as paid, so a small daily budget looked used up and lookups fell back to plain search. The fix brought the ranking back.SourceLookup receipts from 21 to 25 September 2026, before and after the budget fix.

For three days, only 3% of memory lookups got Jev's ranking. The rest fell back to plain search. The cause was ours: our cost tracker counted timed-out calls as if they had been paid for, so a small daily budget looked used up. After the fix, 84% of lookups got Jev's ranking.

What it means: when the AI seems not to work, check the plumbing first.

3. Agents rarely use the notes we hand them

Figure 4

How many handed-in notes agents clearly used

About 7 in every 1,000 handed-in notes were clearly usedA grid of 1,000 squares with 7 filled. Of 6,568 notes put in front of agents, 48 were clearly used.Notes clearly used, per 1,000 handed to agentsabout 7 in every 1,00048 of 6,568 notes, checked against what the agent wrote next
Each square is one note we put in front of an agent. About 7 in every 1,000 were clearly used. Our checker mostly matches words, so it misses some reworded use.SourceThe hourly grader's outcome records, 24 to 25 September 2026.

We checked every note we put in front of an agent against what the agent wrote next. Of 6,568 notes, 48 were clearly used: about 7 in every 1,000. Our checker mostly matches words, so it misses some reworded use, but the picture is clear.

What it means: more memory in the prompt isn't better. Relevance is everything.

4. Letting agents search beat handing them notes

Figure 5

Four ways to give an agent memory, on questions about our own systems

Search test results by setupWrong answers out of 12 runs: no memory 6, notes handed in 9, notes plus Jev's advice 6, search tool 3. Mean cost per run: $0.386, $0.373, $0.390 and $0.119. Median time per run: 106 s, 113 s, 276 s and 24 s.Wrong answers, out of 12 runsNo memory6Notes handed in9Notes plus Jev'sadvice6Search tool3Mean cost per runNo memory$0.386Notes handed in$0.373Notes plus Jev'sadvice$0.390Search tool$0.119Median time per runNo memory106 sNotes handed in113 sNotes plus Jev'sadvice276 sSearch tool24 s
With the search tool, Grok 4.7 got 3 of 12 wrong, against 9 of 12 when we handed it notes, at about a third of the cost and a fifth of the time. Each question ran twice, so this points a direction rather than proving one.SourceThe search test's graded results: 96 runs with Grok 4.7.

We asked an AI agent, Grok 4.7, questions about our own systems in four ways: with no memory, with notes handed in, with notes plus Jev's advice, and with a search tool it could use whenever it wanted. Each question ran twice.

With the search tool it got 3 of 12 wrong, against 9 of 12 when we handed it notes. It did that at about a third of the cost and a fifth of the time. It's a small test, so it points a direction rather than proving one.

What it means: memory should be something agents ask for, not something we push at them.

5. A traffic jam slowed lookups, and we fixed it

Figure 6

Lookups that ran out of time

Lookups that ran out of time, before and after the fixOn the evening of 25 September, 23% of lookups ran out of time: 43 of 184. In the hour after the fix, 5% did: 6 of 120.All lookupsA busy evening, 25 September43 of 184 lookups23%The hour after the fix6 of 120 lookups5%
  • Before the fix
  • After the fix
One busy evening the shared service slowed the permission checks. Reusing one check for up to a minute halved the calls. The service was also quieter afterwards, so part of the drop is lighter traffic.SourceLookup receipts on 25 September 2026, from 18:45 to 20:03 and from 21:12 to 22:17.

Each memory lookup checks its permission with a shared service our agents also use to coordinate. One evening that service got busy, and 23% of lookups ran out of time. We now reuse one permission check for up to a minute, which halved the calls. Lookups that run out of time are down to 5%.

What it means: as an agent fleet grows, the services it shares become the bottleneck.

What we don't know yet

  • Whether Jev saves money or time overall. The costs above are estimates at the posted price.
  • Whether it makes our agents' work more accurate.
  • Which notes help which agent. We measure use across the whole fleet, not per agent.

What we're testing next

  • Pull, not push. Hand an agent a note only when Jev is confident it fits. Otherwise, tell the agent what memory holds and let it search.
  • A memory for a hive. One store, many agents: a note that helps a coding agent is noise to a reviewer. We're studying how open-source projects handle this. Examples include shared memory blocks in Letta, scoped memory in CrewAI and time-aware knowledge graphs in Graphiti.
  • A daily health check. It would track how many notes get used, how many are duplicates or out of date, and whether memory helps at all, compared with a small group of tasks that get none.
  • Smaller models for routine calls. Jev has now made thousands of judgments. We want to teach a small local model the easy ones and send only the hard ones to Jev.

How we measured

  • The clean-up ran on 25 September 2026 over 117,506 live notes. Costs are Jev's estimated charges at TypeSafe's posted price, not an invoice.
  • Of the 3,618 retired notes, 3,227 were near-duplicates, 371 were program output, 11 were exact duplicates and 9 were old snapshots of a machine's state.
  • The bug figures compare the three days before the 24 September fix with the time from the fix to the evening of 25 September.
  • Use was graded hourly across 1,961 agent turns on 24 and 25 September.
  • The search test was 96 runs: 12 tasks, four setups, twice each. On six ordinary coding tasks, no setup made a mistake.
  • On the 12 runs about our own systems, the wrong answers were 6 with no memory, 9 with notes handed in, 6 with notes plus Jev's advice and 3 with the search tool. The mean cost per run was $0.386, $0.373, $0.390 and $0.119, and the median time per run was 106 s, 113 s, 276 s and 24 s, in the same order.
  • The traffic jam: 43 of 184 lookups ran out of time on the evening of 25 September. After the fix, 6 of 120 did in the next hour. The service was also less busy by then, so part of that drop is quieter traffic.

Contributors

  • James Brady

    Direction · Research questions · Publish decision

  • Claude Opus 5.5AI

    Beta lead from 24 September · Builds and independent reviews · Research survey · Drafting and verification

  • GPT-6 AstraAI

    Beta lead from 18 to 24 September · First integrations and evaluations

  • Claude Fable 5.1AI

    Decay model and nightly improvement loop

  • Jev 1.13.0AI

    Typed judgments behind every measured decision

  • Grok 4.7AI

    Memory A/B test runs

  • GPT-6 SolAI

    Turns in the first lead's session

  • GPT-6 LunaAI

    Turns in the first lead's session

How this note was made

  • James BradyAsked for the memory beta, for the full clean-up to run the same day, and for this note with its open questions.
  • Claude Opus 5.5Took over the beta on 24 September. Fixed the recall budget accounting, ran the full clean-up and its checks, switched the incoming filter on, installed the faster hooks, and traced every number in this note to its receipts.
  • Claude Fable 5.1Built the turn-based decay model and the nightly improvement loop. Both passed independent review before they were installed, in shadow.
  • Jev 1.13.0Made the judgments measured here: reranking recall, filtering saves and clearing each retirement in the clean-up.
  • Grok 4.7Did the 96 runs of the memory A/B test.