{"slug": "your-openbot-agents-forget-between-threads-give-them-shared-memory", "title": "Your OpenBot Agents Forget Between Threads. Give Them Shared Memory.", "summary": "Hindsight, an open-source long-term memory engine from Vectorize, published an integration that connects OpenBot agents to a shared Hindsight \"bank\" over MCP, giving them recall, retain, sync_retain and reflect tools plus mental-model and document tools. Memory in OpenBot previously lived inside a single thread and belonged to one agent; a report in OpenBot's tracker (issue #2463) counted 177 memories across 17 agents, with 15 contradicted and 31 stale. Every agent pointed at the same bank reads and writes the same memory, so what Codex learns Claude knows, and setup requires only a server URL and an Authorization header against Hindsight Cloud or a self-hosted server.", "body_md": "# Your OpenBot Agents Forget Between Threads. Give Them Shared Memory.\n\nConnect an OpenBot agent to a Hindsight bank over MCP and its memory outlives the thread, survives compaction, and is shared with every teammate.\n\n[OpenBot](https://openbot.run) runs a team of AI teammates on your own machine. Claude, Codex, Grok, Gemini, OpenCode, Cursor and Cline, each with its own workspace, its own task queue, and the ability to message each other. The agents are persistent. They sit there between sessions, waiting for work.\n\nOpenBot memory is not persistent in the same way. It lives inside a thread, and it belongs to one agent. This integration gives your agents a memory that outlives both.\n\n## TL;DR\n\n- Connect an OpenBot agent to a Hindsight **bank** over MCP, by adding one URL MCP server\n- Point an agent at a bank and it gets `recall` ,`retain` ,`sync_retain` and`reflect` , plus mental-model and document tools\n- Memory outlives the thread, survives context compaction, and survives restarts\n- Every agent pointed at the **same bank reads the same memory** , so what Codex learns, Claude knows\n- Setup is a URL and a header\n- Works with [Hindsight Cloud](https://ui.hindsight.vectorize.io/signup) or a self-hosted server\n\n## The problem: OpenBot memory lives and dies with the thread\n\nAn OpenBot agent survives a restart. The thread it was working in does not survive itself.\n\nEvery thread compacts as it fills. The early turns get summarized away to make room, and the early turns are usually where you explained the architecture, the deploy rules and the three things that always break. Start a new thread and you start cold.\n\nThe second half is worse, because it does not look like a problem. Agents can message each other, but what one learns stays with that one. You tell Codex your test conventions. Claude has never heard of them. You end up briefing each teammate separately, which is the overhead a team of agents was supposed to remove.\n\nOpenBot does ship its own memory, the `remember` and `search_memories` tools, and it works. It is also a few kilobytes per agent and private to that agent. A report in OpenBot's tracker ([#2463](https://github.com/nightly-labs/openbot/issues/2463)) counted 177 memories across 17 agents, 15 contradicted and 31 stale. That is per-agent memory at team scale.\n\n## What we built: shared memory over MCP\n\n[Hindsight](https://github.com/vectorize-io/hindsight) is an open-source long-term memory engine for agents. It extracts facts from conversations, retrieves them semantically, and can reason over an entire store rather than fetching the nearest few chunks. Memory is organized into **banks**.\n\nThe integration connects an OpenBot agent to Hindsight over MCP. Connect an agent to a bank and it gains:\n\n- **`recall`** to search memory semantically, across every thread that bank has seen\n- **`retain`** and**` sync_retain`** to write facts back, from any thread\n- **`reflect`** to synthesize an answer over the whole bank instead of a handful of retrieved snippets\n\nA bank is a shared destination rather than a per-agent store. Two agents on one bank read and write the same memory. That single property is what changes how a team of agents behaves.\n\nTwo things are worth separating here. The MCP connection is a **capability**: you add it once in the Local server's settings and its tools reach every agent. The optional **[Hindsight Memory skill](https://hindsight.vectorize.io/skills/openbot/hindsight-memory/SKILL.md)** is the **habit**: recall before acting, retain what is durable. The skill is enabled per agent, with no all-agents switch, though Claude agents load it automatically from `~/.agents/skills/<slug>/`.\n\n## Set it up in two minutes\n\nIn OpenBot, open the **Local** server's settings → **MCP** → **Connect to a custom MCP**, pick **Streamable HTTP**, and enter the server URL and an `Authorization` header:\n\n```\nURL:    https://api.hindsight.vectorize.io/mcp/<bank>/Header: Authorization: Bearer hsk_your_key\n```\n\nThe connection is added at the server level, so its tools reach every agent; enable the memory skill on the agents you want using it.\n\nThat URL defaults to [Hindsight Cloud](https://ui.hindsight.vectorize.io/signup). Self-hosting is the same shape with a different host:\n\n```\npip install hindsight-allexport HINDSIGHT_API_LLM_API_KEY=your-openai-keyhindsight-api\n```\n\nThen use `http://localhost:8888/mcp/<bank>/` as the URL. A local server with no auth needs no key, so leave that field blank.\n\n## The walkthrough\n\nPick an agent and tell it something true about your project:\n\nWe only deploy on Fridays after the staging smoke test passes. Remember that.\n\nIt calls `retain`. Now close that thread. Start a **fresh thread**, with a **different agent**, and ask:\n\nWhen are we allowed to deploy?\n\nIt calls `recall` and answers with your rule, including the smoke test condition, from a conversation it was never part of. No context file, no re-briefing, nothing pasted.\n\nThat is the whole demo, and it is worth running once yourself. Watching a second agent answer from the first one's conversation lands differently than reading about it.\n\n## What happens under the hood\n\nThe lifecycle is short, and knowing it explains most of the behavior you will see:\n\n1. **The agent connects.** OpenBot opens an MCP connection to the bank in your URL, and Hindsight's tools appear in that agent's tool list alongside its built-in ones.\n2. **The agent recalls.** A`recall` query searches the whole bank, not the current thread, and the matches come back as tool output in the live context window.\n3. **The agent retains.**`retain` is asynchronous: it returns immediately while extraction and consolidation run in the background.`sync_retain` blocks until the memory is stored and immediately recallable, which is what you want for read-after-write.\n4. **The thread compacts.** The facts are in the bank rather than the thread, so compaction costs you the turns and not the knowledge.\n5. **A second agent connects.** Same URL, same bank, and its first`recall` returns what the first agent wrote.\n\nThe distinction that matters is between what sits in context and what sits in the bank. Context is rented and compaction reclaims it. The bank is yours until you delete it.\n\n## Scoping memory with banks\n\nThe `<bank>` segment of the URL is the scope, and it is the main design decision you make here. Point two agents at one bank and they share everything. Point them at different banks and they share nothing.\n\n- **One bank per project** is the sensible default. Every teammate working that repo sees the same conventions, decisions and gotchas.\n- **One bank per team** suits context that outlives any single project, like review standards or release process.\n- **One bank per agent** is available if you want isolation, but it gives up the shared layer, which is the reason to run this at all.\n\nBecause the bank is part of the URL, each connection is scoped to exactly one bank, and agents never have to pass a `bank_id`. Changing the scope means changing the server entry, not a setting buried inside the agent.\n\n## Pitfalls and edge cases\n\n**Cold start.** A new bank is empty, and the first thread has nothing to recall. Memory accumulates from the second thread onward, so judge this on day three rather than minute one.\n\n**Read-after-write.** Because `retain` is asynchronous, a fact you retain and then immediately query in the same turn may not be searchable yet. Use `sync_retain` when the agent needs to read back what it just wrote.\n\n**Recall spends context.** Recalled memories arrive as tool output and consume tokens from the same window that compaction is already pressuring. More recall is not automatically better.\n\n**A shared bank shares mistakes too.** If one agent retains something wrong, every agent on that bank will read it. That is the cost of the thing that makes this useful, and it means a bank deserves the same care as any other shared resource.\n\n## The honest part: you now have two memories\n\nWhen Hindsight is connected, an agent has **both** sets of memory tools, Hindsight's and OpenBot's built-in ones, and the two stores do not share. An agent can still write something to built-in memory where no other agent will ever see it.\n\nThe Hindsight Memory skill exists for exactly this reason. It steers the agent toward Hindsight's tools consistently rather than leaving the choice to chance, and in practice an agent with the skill enabled settles into one store.\n\nThe real fix is upstream. There is an open feature request ([#3682](https://github.com/nightly-labs/openbot/issues/3682)) for a pluggable memory provider, so an external memory could take over properly instead of sitting alongside. One source of truth, not two. It is a request rather than a shipped feature, so until it lands, the skill is the practical answer.\n\n## Next steps\n\n- **[Sign up for Hindsight Cloud](https://ui.hindsight.vectorize.io/signup)** and generate a key, which takes about a minute\n- Add the Hindsight MCP URL in OpenBot's Local server settings (**MCP → Connect to a custom MCP** )\n- Enable the Hindsight Memory skill on the agents you care about\n- Read the [OpenBot integration reference](https://hindsight.vectorize.io/sdks/integrations/openbot) for the full tool list and self-hosting detail\n- Point two different agents at one bank and run the walkthrough above", "url": "https://wpnews.pro/news/your-openbot-agents-forget-between-threads-give-them-shared-memory", "canonical_source": "https://hindsight.vectorize.io/blog/2026/10/29/openbot-persistent-memory", "published_at": "2026-10-29 00:00:00+00:00", "updated_at": "2026-11-03 17:24:04.738422+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "artificial-intelligence"], "entities": ["OpenBot", "Hindsight", "Vectorize", "Claude", "Codex", "Grok", "Gemini", "Cursor"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/your-openbot-agents-forget-between-threads-give-them-shared-memory", "markdown": "https://wpnews.pro/news/your-openbot-agents-forget-between-threads-give-them-shared-memory.md", "text": "https://wpnews.pro/news/your-openbot-agents-forget-between-threads-give-them-shared-memory.txt", "jsonld": "https://wpnews.pro/news/your-openbot-agents-forget-between-threads-give-them-shared-memory.jsonld"}}