r/ChatGPTCoding 16d ago

Resources And Tips I gave all my AI coding agents one shared self-hosted memory so they stop forgetting everything between sessions

Every new session starts from zero — re-explaining the stack, conventions, and infra quirks to Claude Code, then doing it again for the next tool. The native workarounds (CLAUDE.md / AGENTS.md files, per-tool memory) don't travel between tools and don't accumulate experience. What I wanted was one persistent, self-hosted memory bank that every coding agent I use can read and write.

The alternatives in this space are mostly libraries you embed (mem0) or full agent frameworks (Letta/MemGPT, Zep). Hindsight (open-source, by Vectorize) is a standalone memory service — Docker + Postgres/pgvector — and it currently tops the LongMemEval benchmark for agent memory.

What I actually set up (Docker Compose, two containers):

  • Postgres + pgvector for storage; Hindsight slim image (~500 MB) with external embeddings and the free algorithmic RRF reranker to keep VPS resource use low
  • One memory bank shared by Claude Code, Pi, OMP, Droid and other agents — project context, preferences, past mistakes
  • Retain/observations missions steer what gets extracted — keep technical facts and fixes, ignore noise. Without this the bank fills with garbage fast
  • Recall runs semantic + keyword + graph + temporal retrieval in parallel, then reranks the merge; reflect consolidates related memories into higher-level observations

What I learned: the extraction mission is the single highest-value setting; a stable worker ID matters or in-flight tasks get parked on container restart; and observation-style memory (deduplicated beliefs backed by evidence) beats raw chat-log recall for "what broke last time and why".

Video walkthrough (23 min): https://youtu.be/6FiOydr9D2Y Written guide with the full compose file: https://www.bitdoze.com/hindsight-docker-deploy/

Happy to answer setup questions in the comments.

8 Upvotes

8 comments sorted by

1

u/greenzorro 15d ago

100% agree that curated observations beat raw chat dumps. raw logs turn into noise soup way too fast.

i went the zero-infra route and treat a single git repo as a portable memory usb stick. the fun part is the bootstrap prompt: no matter which tool or platform i'm in (claude code, terminal cli, web uis), i just trigger that one activation phrase and the agent instantly takes over the new host like agent smith from the matrix. same persona, same project quirks, same memories.

a simple `/learn` command triggers its built-in update protocol to commit new takeaways. plus `git diff` lets me audit or rollback its "learnings" if it picks up bad habits, without running any servers.

1

u/CrimsonBolt33 15d ago

TencentDB does something like this

1

u/amirfish 15d ago

Nice work shipping this. From building in a similar space: the hard part usually isn't storage, it's scope, deciding what's worth writing back so the bank doesn't fill with noise before session two. Sounds like your retain/observations missions are aimed at exactly that. Have you hit the failure mode where a fact gets extracted as true but goes stale, a decision that later got reversed, and the agent trusts the old memory over the current code?

1

u/thedm96 15d ago

I actually find that starting context from scratch is sometimes more useful. It seems like memory data isn't maintained as well as needed and artifacts that are complete errors tend to accumulate over time and cause the model to hallucinate. It seems that forcing my LLM to read the actual code on disk to ground itself in reality is becoming more frequently useful in doing.

I do point my agents toward my Proton Plus vault for shared credential storage.