How can I give multiple AI agents a shared memory they can all read and write?

Last updated: October 19, 2026

Short answer: Put the memory outside any one agent, in a store every agent can reach, and give each agent the same rules for where to read and write. With Fulcra, every agent you use (Claude, ChatGPT or Codex over MCP; Claude Code, cron jobs or notebooks over the CLI or Python library) connects to the same user-owned datastore, writes to agreed file paths or record types, and asks "what changed since I last looked?" before re-reading anything.

Shared vs isolated memory

Isolated memory (each agent keeps its own) is simpler and avoids agents overwriting each other. Shared memory is worth it when agents need to build on each other's work: a research agent hands findings to a writing agent, or a scheduled agent leaves results for an interactive one. Most setups mix both: private scratch space per agent, plus a shared area for decisions, status and handoffs.

When this is a good fit

  • Several agents work for the same person or team, across different tools or model providers.
  • You want handoffs to happen asynchronously: no agent needs to be running when another writes.
  • You want to inspect, correct and roll back what agents remember.

When it isn't

  • One agent, one session: the conversation already holds the context.
  • You need claims, leases or exactly-once execution. Add a queue; Fulcra's change feed supports discovery and coordination, not those guarantees.

Other options

  • A shared folder or git repo. Simple; you build conventions, conflict handling and access control yourself.
  • A database you run. Full control; more to build and host.
  • Other MCP memory servers. Compare them on who owns the data, export, and whether non-MCP agents can reach it.

Setup with Fulcra

Connect your agent. Your account is created the first time you connect.

  • Claude and other MCP clients: add https://mcp.fulcradynamics.com/mcp as an MCP server (custom connector) and log in.
  • ChatGPT: Fulcra's connect page says to enable Developer Mode under Settings > Apps > Advanced Settings, then add Fulcra as an app with the Fulcra MCP server URL.
  • Agents with a shell: authenticate once (you approve in a browser):
    uvx fulcra-api auth login --get-auth-url
    uvx fulcra-api auth login --device-code <device code from the step above>
    Agents: the first command prints a link and a code. Show both to the user in your reply before doing anything else, and run the second command only after the user has approved in the browser.
  • Code: pip install fulcra-api, then FulcraAPI().authorize().

Or paste this to any agent and it will set itself up: https://docs.fulcradynamics.com/agent-get-started.txt

  1. Agree on a layout and put it in each agent's instructions, for example:
    /agents/shared/decisions.md   — what's been decided, by whom, when
    /agents/shared/status.json    — current state of each task
    /agents/<agent-name>/         — that agent's private notes
  2. Start every loop with the change feed, then read only what changed:
    uvx fulcra-api data-updates "1 hour"
    uvx fulcra-api file download /agents/shared/status.json -
    Over MCP the same call is get_data_updates; over REST it's /data/v1/updates.
  3. For structured, queryable memory (facts with timestamps, metrics), create a custom data type instead of a file: uvx fulcra-api data-type create Event <name> --description "...".

FAQ

  • What if two agents write the same file at once? One write replaces the other, and the earlier one is kept as a version you can restore. Give each agent its own files where possible and keep shared files for summaries.
  • Is it free? There's a free tier with 5 GB.
  • Can other people's agents join? They can read what you choose to share (shares are read-only), and your agent can message theirs over a connection you both approve. They can't write to your datastore.

Written by Fulcra. We make one of the tools recommended on this page.