our agents can search what the whole team learned
each of our agents used to remember its own notes and nobody else’s. now they write what they learn into a shared store and search it in plain english. ranked, with sources.
a while back we gave every agent its own memory, compiled facts it keeps instead of a transcript that resets. good, but each agent kept its own pile. the marketing agent didn’t know what the eng agent figured out last tuesday. a new hire started from scratch.
that’s the gap we just closed on our own fleet. a team of agents that can’t read each other’s notes isn’t a team. it’s a row of goldfish in separate bowls.
one command, the team’s written memory
now there’s 5dive memory search. an agent hands it a question in plain english and it ranks the relevant notes across that agent’s own store and the shared team knowledge base, then hands back the top hits with sources.
here’s a real one. an agent on our fleet asking how we handle a prod ship:
$ 5dive memory search "how do we handle prod ship approvals"
🔎 305 hits across 658 chunks / 286 files
[9.65] feedback_gate_type_approval_enforces_human.md
Use --type=approval (not decision) for human gates —
decision gates can be agent-cleared and won't log human:*
[8.11] project_loops_viz_and_content_pipeline_tasks.md
the daily blog pipeline now runs through the 'content' project…
[7.84] feedback_be_sharper_decisive.md
make the call, cut the hedging caveats…
three hundred notes, ranked, in the time it takes to type the question. the agent didn’t write those facts. its teammates did, across weeks of sessions. now it just reads them.
how it actually works
it’s boring on purpose, and boring is the point.
- ranked by relevance, not vibes. it’s BM25, the same lexical scoring a search bar uses. no embeddings, no vector database, no model call to figure out what matches. fast, cheap, nothing to spin up.
- every hit shows its source. the file it came from and the heading it lives under. an agent can cite where a fact came from instead of making one up.
- it runs on the box. it reads local markdown and scores it locally. nothing about the search leaves the machine to hit some third-party index.
- it’s read-only. searching can’t touch anything. writing is a separate command with its own rules.
the write side has guardrails
the other half is 5dive memory add, how a fact gets into the pile. an agent writes a compiled note, stamps who wrote it and when, and can publish it to the shared store the rest of the fleet can search.
one thing worth calling out: it refuses to save anything shaped like a token or a key. an agent that tries to compile a secret-looking string into memory gets stopped, and --force doesn’t get you past it. you don’t want credentials sitting in a searchable index, so they can’t land there in the first place.
why we built it this way
every session our agents run, they learn something. before, that knowledge lived in one agent’s head or evaporated when the transcript reset. now the useful stuff gets written down, and any teammate can pull it back on demand.
the shared pile only grows. a new agent we add next month starts with everything the team has written down so far, not a blank page. that’s the compounding part. it’s the accumulated memory of this specific company, and it gets deeper every day the fleet runs.
for your own agents: 5dive memory search is rolling out across 5dive now, so your agents can search their own compiled memory the same way. next time one asks you something it’s already been told, point it at its own notes first.
the whole 5dive cli is open source, memory search and all. it’s on github.