Concept landed: Skills, plugins & sub-agents Tech: Claude Managed Agents multi-agent + custom Skills + the pre-built docx skill Time: 60 minutes Output: A coordinator agent that fans work out to 3-5 specialist sub-agents, each with its own skills, that assemble a real branded Word document.
This is the architecture that wins the next $50M transformation deal: coordinator + specialists + skills. It maps directly to how every services firm structures real work. A senior partner orchestrates; specialists (legal, pricing, technical) own their lanes; the senior partner synthesises and delivers.
You're going to build exactly that, in 60 minutes, around a Deal Desk scenario. Drop an RFP in, get a branded response doc out, watch the parallelism happen in real time on the events stream.
You need a workspace API key on the Console (multi-agent is currently in research preview — your workspace may need to be granted access).
cd 03-specialist-swarm
pip install -r requirements.txt
export ANTHROPIC_API_KEY="sk-ant-..."Three cards in scenario-cards.md. Each gives you a coordinator + a different roster of specialists. Pick one. Different teams should pick different cards.
-
Create the specialists. Run
python create_specialists.py. This creates 3-4 sub-agents (Pricing, Legal, Technical Fit, Competitive) and saves their IDs to.specialist_ids.json. -
Create the coordinator. Run
python create_coordinator.py. This creates the coordinator agent withmultiagent: coordinatorconfig, listing the specialists in its callable roster. -
Upload the skills. Run
python upload_skills.py. This packages the custom skills inskills/and uploads them via the Skills API. Each specialist gets the skill that matches its domain. -
Run the deal. Run
python run_deal_desk.py. This:- Uploads the synthetic RFP (
synthetic-data/rfp-acme-corp.md) as a file - Starts a session against the coordinator
- Asks the coordinator to produce a full proposal response
- Streams the events so you can watch the parallel thread fan-out
- Saves the final docx to
outputs/proposal-response.docx
- Uploads the synthetic RFP (
By minute 30 you have a Word document in outputs/, generated by a coordinator + specialists who each used their own skill.
See stretch-goals.md. The big ones:
- Custom firm-voice skill — codify your own firm's voice (every services firm has one)
- Critic sub-agent — add a fifth agent that reviews the coordinator's draft before it's finalised
- Memory across deals — coordinator remembers past wins and re-uses the right ones
- Synthetic MCP for past wins — wire up a fake CRM to the pricing specialist
Two-monitor setup:
- Monitor 1: the events stream from the coordinator session, scrolling. You'll see
session.thread_created× 4, parallelrunning, thenagent.thread_message_receivedflowing back. The visible parallelism IS the demo. - Monitor 2: open
outputs/proposal-response.docx. Real document, branded, ready to send.
Narrate the events stream while it runs. The room will get it.
03-specialist-swarm/
├── README.md
├── scenario-cards.md
├── stretch-goals.md
├── requirements.txt
├── create_specialists.py (creates the sub-agents)
├── create_coordinator.py (creates the coordinator)
├── upload_skills.py (uploads custom skills via Skills API)
├── run_deal_desk.py (runs the full swarm against an RFP)
├── stretch_critic_subagent.py (stretch: critic agent)
├── skills/ (custom skills, one per specialist)
│ ├── pricing-playbook/SKILL.md
│ ├── legal-checklist/SKILL.md
│ └── competitive-intel/SKILL.md
└── synthetic-data/
├── rfp-acme-corp.md (the RFP that triggers the swarm)
├── past-wins.json (used by pricing specialist)
└── product-overview.md (used by technical specialist)