Problem :
Orchestrator agent delegates tasks to specialized sub-agents, a critic agent reviews the output -classic setup. But: every agent runs in isolation. None of them know what the others are working on, what assumptions they're making, or whether they're about to repeat the same mistake as the agent before them. The orchestrator ends up as a pure task router instead of an actual control layer.
Solution:
I built a shared state folder that all agents access through an MCP server. Each agent writes its current progress while working -not just at the end, but continuously:
→ The orchestrator sees in real time where each sub-agent stands, instead of only waiting for finished outputs
→ Sub-agents can read other agents' progress before starting - no re-deriving context that already exists
→ The critic agent has access to the full working history, not just the final result - reviews get sharper because it can see exactly where a decision was made
The MCP server essentially turns the folder into shared memory between processes that would otherwise be completely stateless to each other.
Result:
Noticeably less redundant work between agents, and the orchestrator can actually orchestrate instead of just delegating and hoping for the best.
This is my first pass at solving this.
I'm sure there are more elegant ways to handle shared state between agents, and I'm genuinely curious how others are approaching it.
Anyone else building similar shared-state mechanisms?