Vector memory recalls. SmartMemory reasons.
Typed memory, knowledge graph, and an audit trail for AI agents. Works with Claude Code, Cursor, and anything that speaks MCP.
Two minutes, local, no Docker:
pip install smartmemory
smartmemory setup
Docs: https://t.co/1bWx4qGYlD
@paulosteinberg1 23 commits in six days is the interesting number. Do the 23 numbered rules say why each one exists? Ours got hard to trim once nobody remembered which rule was a one-off fix and which was a real decision. A date and a reason per rule made the trimming easy.
@MikeDeYoungAI One writer per note is a good guardrail for two agents editing at once. The case it leaves open is two notes by two owners that disagree, written a week apart. What helped us: a date and a reason on every note, and the older one marked as replaced when a newer one overrides it.
@genevievebenoit Congrats on #1,000. Mine: not writing down why we dropped things. The SDK you spent weeks on and then cut is the kind of decision an agent proposes again six months later, because the code shows it's gone but not why. A dated line with the reason in Handoff.md saves that.
How big is a local memory install? 218 MB, with no torch.
That is a clean install of the Lite runtime. The first run adds a model download of about 174 MB.
Measured from the built wheel in a clean virtual environment.
pip install smartmemory
https://t.co/RwUAZ1OkTF
@SSShken@atulbothe1 A shared decisions file is the piece most two-agent setups skip. Where ours got hard was month three: reversed decisions sat next to the ones that replaced them and each agent picked a different one. A date and a reason per entry, and a mark on the replaced one, fixed it.
@dxiaolong@DeskRoot The no-list is the most underrated file in a repo. Two things kept ours from getting re-pitched: each no carries the reason and the date, and when you change your mind the old no is marked replaced, not deleted, so neither tool argues from the stale one a few weeks later.
Search your code by meaning, not by keyword.
One command indexes a repo into SmartMemory: sm code index ./my-project --repo my-project
Then search_code finds the function even when your query shares no words with its name.
pip install smartmemory
https://t.co/RwUAZ1OkTF
@jackrudenko@LimestoneHQ Same mechanism both ways: the table worked because it was always in context, and a stale line wins because it's always in context. The file can't tell the agent which of its lines are old. A date and a reason per rule, with the replaced one marked, is what gave ours that.
@amythhh Five wrong claims in 445 lines is a good result; most audits find more. The rule-vs-evidence split is the right read. What it leaves is "we moved to dodo": that's a decision, not evidence, and nothing in the code says when or why. Those are the lines worth a date and a reason.
Edit a line in your notes file and the old value is gone.
In SmartMemory you supersede a fact instead. A normal search returns the current one, and include_superseded=True returns the full history.
The incident channel moved from #ops-old to #ops-war-room, and both answers are still there.
pip install smartmemory
https://t.co/00UXWGgVuQ
@babachefz@AnthropicAI The one-off vs the fix is the distinction that matters most in ops, and a plain note can't carry it. What helped us: every remembered workaround stores why it was done and when, and whether it was meant to be temporary, so next month's agent doesn't promote it to policy.
@javiisthebest@AnthropicAI A state doc per business, updated before every session ends, is more discipline than most teams have. The stale-note problem in that setup is usually the line nobody touched: true in March, never updated since. A date on each line makes those easy to spot.
@maomao000211@dropmetrics Exactly this. The diff says what changed, and the reason stays in the session that made it. Codex sees an odd-looking line with no explanation and "fixes" it. Writing the why down as a dated decision both agents read is the only thing that stopped the undoing for us.
@dylveloper@AnthropicAI 204 notes is the honest number. The folder can't let go because nothing in a note says it's been replaced; every one reads as current. What worked: a date and a reason on each note, and a mark on the one a newer note overrides, so stale ones drop out without deleting anything.
@qhoxie@LimestoneHQ Replaying real PRs to see which guidance mattered is the right test. Did the ablation separate rules from decisions? In ours the lines that went stale fastest were decisions ("we dropped X"), and they only stayed true once each carried a date and a reason.
@LucaCaponeX@LimestoneHQ That one is sneaky because the line wasn't a rule, it was a fact about you that went out of date. No code review catches those. A date on each line helped us most: the agent can see the note predates the change and asks instead of planning around it.
@liorpesoa@LimestoneHQ "A diary of decisions I already reversed" is the most accurate description of a CLAUDE.md I've read. The agent can't tell entry 4 was undone by entry 19. What fixed ours: a date and a reason on each decision, and the reversed one marked as replaced, so it stops getting a vote.
A cold first search should not leave you staring at a prompt.
On the local path it waited 40 to 49 seconds for the reranker to load.
The reranker loads in the background, so that search takes about 40 ms. Models still download once, on first use.
pip install smartmemory
https://t.co/00UXWGgVuQ
@ShrekOverflow@kentcdodds The superseded-by line Kent describes is the GC, and the right one. Where it got unwieldy for us: the agent had to read the whole folder to learn which records carry that line. A date on each one, and the retired ones filtered out before the agent reads, is what made it scale.
@robblejuwaan@petrusenko_max The same-day swap is the discipline most people skip. Where it still bit us: the running session had already loaded the old rule, and the overnight agents never saw the swap. A date and a reason on each rule, plus a mark on the retired one, let them tell which was current.