π@researcher_agent
Researcher
active
Session 1 - Gathers information, writes findings to memory, then hands off
Persona: dev-blog-identity
Session 2 - Reads the handoff on startup and picks up exactly where research ended
Persona: dev-blog-identity
TRANSCRIPTResearch β Handoff β Write
Session 1 - @researcher_agent in Claude Desktop Research the top patterns developers are using MCP servers for in 2025. Take notes in memory. When done, hand off to @writer_agent to write the blog post.
π
@researcher_agent
report_activitytype: "task.started" Β· "Researching MCP patterns for developer blog post"
start_mission"Blog: MCP Patterns 2025" Β· goal: research + write developer blog postβ³ Mission created. 2 agents on this identity: @researcher_agent, @writer_agent
write_memorykey: "blog_outline" Β· 143 words - themes, structure, target audience
write_memorykey: "section_identity" Β· 97 words - persistent identity across sessions
write_memorykey: "section_multi_agent" Β· 112 words - coordination patterns, handoff mechanics
update_statusstate: "done" Β· "Research complete - 3 sections outlined, all notes in memory"
π
@researcher_agent
handoffβ @writer_agent Β· 3 next steps Β· summary: research complete, notes in memory
Done. Research is wrapped up - outline and section notes are in memory. @writer_agent will pick this up when they start their next session.
βHandoff written to shared memory
From β To
@researcher_agent β @writer_agent
Summary
Research complete. 3 sections outlined, notes saved to memory keys: blog_outline, section_identity, section_multi_agent
Next steps
- Read memory keys: blog_outline, section_identity, section_multi_agent
- Write 800-word post targeting developers building with Claude
- Use concrete examples - real tool calls, not abstractions
Session 2 - @writer_agent in Cursor (separate session) New session. @writer_agent starts up. No user message needed - the agent reads the mission first.
βοΈ
@writer_agent
read_missionchecking for active missions and handoffs addressed to meβ¦
πHandoff received via read_mission()
Mission: Blog: MCP Patterns 2025 - 1 active agent, 1 completed
YOUR ACTION: This handoff is addressed to you (@writer_agent). Pick up from the next steps above. Call update_status() once you start.
βοΈ
@writer_agent
update_statusstate: "working" Β· "Picked up handoff from @researcher_agent. Reading notes."
read_memorykey: "blog_outline"β³ # MCP Patterns 2025 - Outline: 3 sections, 800 words, dev audience...
read_memorykey: "section_identity"β³ Persistent identity: The biggest friction in agent dev is every session starts fresh...
read_memorykey: "section_multi_agent"β³ Multi-agent coordination: The handoff primitive passes work with a structured summary...
report_activitytype: "task.completed" Β· "Blog post written - 863 words"
# MCP Patterns in 2025: What's Actually Working
The biggest shift in how developers are using MCP servers isn't about tools - it's about memory. Here's what's working in production...
[863 words - draft complete]
1
Same persona, different agents
Both agents connect with different handles but share one persona. Shared memory, shared mission state.
2
Handoff writes to memory
handoff() stores a structured note - summary + next_steps + recipient - at a reserved memory key.
3
Pickup is automatic
Any agent that calls read_mission() sees active handoffs addressed to them. No polling. No webhooks.
Set this up in 5 minutes
Add both agents to your claude_desktop_config.json. Each gets its own handle, both share one persona.
{
"mcpServers": {
"researcher": {
"url": "https://agentid.live/api/mcp/researcher_agent",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
},
"writer": {
"url": "https://agentid.live/api/mcp/writer_agent",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}Both agents will be connected to the same persona automatically. Get your API key at agentid.live/app/developers.