One policy update. All agents reflect it.
When coordination rules live in prompts, changing policy means updating every agent and redeploying. MemexAI's shared memory layer gives all agents in your product a common source of truth — updated once, read by everyone, no redeploy needed.
Coordination that lives in prompts doesn't scale.
A real product pipeline isn't one agent. It's an orchestrator, a researcher, a writer, a reviewer — specialists that hand work between them. Each has its own system prompt. Each embeds the same coordination rules: escalation criteria, rate limits, tool usage policies, shared vocabulary.
When a policy changes — new API rate limit, updated escalation threshold, revised tool constraints — you update every prompt, coordinate a deploy, and hope nothing drifts. In practice, prompts fall out of sync. The orchestrator and the reviewer have different understandings of what "escalate" means.
The per-user memory problem is separate: each user's private context (preferences, history, state) needs to follow the user across whichever agent is currently handling them. If that context lives in the orchestrator, specialist agents don't see it. If you copy it into each agent's prompt, you create duplication and inconsistency.
What you need is a layer that separates global coordination policy (same for all agents, all users) from per-user state (private to one user, available to any agent serving them) — and that updates both without a deployment.
Two namespaces. One memory layer.
shared/ — global policy
Files under shared/ are loaded into every agent's prompt block, read-only. Escalation rules, tool constraints, rate limits, coordination conventions — all in one place. Update a shared file and every agent's next call reflects the change.
# shared/policies.md ## Escalation Route to human if: user explicitly requests, or confidence < 0.7. Never escalate for technical errors — retry once first. ## Rate limits search_properties: 100 req/min — batch when possible document_analysis: 10 concurrent max ## Handoff protocol When passing to specialist: include task_id, user_id, and a one-line context summary. Never forward raw history.
user/ — per-user context
Per-user state is physically isolated under users/{userId}/**. Any agent handling this user calls getPromptBlock({ userId }) and gets their current context — preferences, history, task state — automatically. No orchestrator needs to forward it.
This means specialist agents don't need to know about each other. The researcher writes what it learned. The reviewer picks up that context next call. The memory layer is the coordination substrate — not the orchestrator's prompt.
Agents never cross tenant boundaries. Physical path isolation means the researcher working on user A's task cannot read user B's memory, even if both run in the same process.