Some time ago OpenAI published Swarm: an educational framework for building multi-agent systems.
Their approach focuses on two main concepts: ć» ššØš®šš¢š§šš¬: Each agent follows specific š instructions and uses š ļø tools to execute them. ć» ššš§ššØššš¬ š¤: Agents can transfer control to one another using tool/function calling.
When I first read these ideas, I thought: š“šŖš®š±šš¦ š£š¶šµ š±š°šøš¦š³š§š¶š! And they pair well with the recent unified tool support in Haystack.
š§āš» So, I decided to re-implement these concepts using Haystack, and in just a few lines of code, I had a working prototype.
š Bonus feature: this implementation isn't tied to a single model provider - different agents can be powered by different models!
I replicated the ACME customer service example from the original article, with 3 Agents: š Triage Agent - Llama 3.2 running on Ollama š Sales Agent - Anthropic Claude 3.5 Sonnet š Issues and Repairs Agent - OpenAI GPT-4o mini
Want to see the full implementation and give it a try? Check out the blog post and notebook! āØ