Cross-Agent Memory
Multiple agents owned by the same user can share memories within a single tenant. This enables collaborative AI workflows where context transfers naturally between agents.
On this page
Memory Isolation Model
Synapse Layer enforces a strict isolation model:
Tenant = User
Each authenticated user maps to exactly one tenant. A tenant is the outermost boundary for memory access. Cross-tenant memory access is impossible — there is no API to query another user’s memories.
Agent = Namespace
Within a tenant, each agent_id acts as a namespace — a logical grouping of memories. Agents within the same tenant can read each other’s memories by performing recall without an agent_id filter.
How Cross-Agent Recall Works
By default, recall queries are scoped to the agent that stored the memory. To access memories from other agents within the same tenant, omit theagent_idfilter during recall:
# Agent-scoped recall (default)
results = await memory.recall("user preferences", limit=5)
# Returns only memories stored by this agent
# Cross-agent recall (tenant-wide)
results = await memory.recall(
"user preferences",
limit=5,
agent_id=None # omit agent_id filter
)
# Returns memories from ALL agents in this tenantThe recalled memories include the agent_id of the originating agent, allowing the caller to distinguish between its own memories and those from collaborating agents.
The agent_id Namespace
The agent_id serves as a logical namespace:
- Required at store time — every memory must be tagged with an agent_id
- Optional at recall time — omitting it enables cross-agent recall
- Free-form string — any value is accepted (e.g., "coding-assistant", "research-agent")
- Default value — if not specified, defaults to "default-agent"
Secure Agent Handover
For structured context transfer between agents, Synapse Layer provides Secure Agent Handover (currently in beta). Unlike passive cross-agent recall, handover is an active process:
- Creates a cryptographic session with SHA-256 token
- Packages selected context with metadata
- Enforces one-time consumption and TTL expiry
- Available via the
neural_handoverMCP tool
Note
Boundaries
Hard Boundaries (Cannot be Changed)
- Cross-tenant memory access is impossible
- No admin or superuser override exists for tenant isolation
- Tenant ID is derived from authentication, not from request parameters
Important Notes
- Cross-agent recall returns all memories in the tenant, not just from specific agents
- There is no per-agent access control within a tenant — all agents share the same memory pool
- Memory ownership is tracked by agent_id but does not restrict read access within the tenant