About This Resource

A framework for routing requests among multiple AI agents and coordinating conversations. Originally published as AWS Multi-Agent Orchestrator, it provides components for agent selection and shared conversational context.

Saved Notes

Original notes saved with this link. They may describe an earlier version.

GitHub - awslabs/multi-agent-orchestrator: Flexible and powerful framework for managing multiple AI agents and handling complex conversations

Multi-Agent Orchestrator

Flexible and powerful framework for managing multiple AI agents and handling complex conversations.

The Multi-Agent Orchestrator is a flexible framework for managing multiple AI agents and handling complex conversations. It intelligently routes queries and maintains context across interactions.

🔖 Features

  • 🧠 Intelligent intent classification — Dynamically route queries to the most suitable agent based on context and content.
  • 🔤 Dual language support — Fully implemented in both Python and TypeScript.
  • 🌊 Flexible agent responses — Support for both streaming and non-streaming responses from different agents.
  • 📚 Context management — Maintain and utilize conversation context across multiple agents for coherent interactions.
  • 🔧 Extensible architecture — Easily integrate new agents or customize existing ones to fit your specific needs.
  • 🌐 Universal deployment — Run anywhere - from AWS Lambda to your local environment or any cloud platform.
  • 📦 Pre-built agents and classifiers — A variety of ready-to-use agents and multiple classifier implementations available.

What's the Multi-Agent Orchestrator?

The Multi-Agent Orchestrator is a flexible framework for managing multiple AI agents and handling complex conversations. It intelligently routes queries and maintains context across interactions.

The system offers pre-built components for quick deployment, while also allowing easy integration of custom agents and conversation messages storage solutions.

This adaptability makes it suitable for a wide range of applications, from simple chatbots to sophisticated AI systems, accommodating diverse requirements and scaling efficiently.

🏗️ High-level architecture flow diagram

  1. The process begins with user input, which is analyzed by a Classifier.
  2. The Classifier leverages both Agents' Characteristics and Agents' Conversation history to select the most appropriate agent for the task.
  3. Once an agent is selected, it processes the user input.
  4. The orchestrator then saves the conversation, updating the Agents' Conversation history, before delivering the response back to the user.

Introducing SupervisorAgent: Agents Coordination

The Multi-Agent Orchestrator now includes a powerful new SupervisorAgent that enables sophisticated team coordination among multiple specialized agents. This new component implements an "agent-as-tools" architecture, letting a lead agent coordinate specialized team members in parallel while maintaining context and delivering coherent responses.

Key capabilities:

  • 🤝 Team Coordination - Coordinate multiple specialized agents working together on complex tasks
  • ⚡ Parallel Processing - Execute multiple agent queries simultaneously
  • 🧠 Smart Context Management - Maintain conversation history across all team members
  • 🔄 Dynamic Delegation - Intelligently distribute subtasks to appropriate team members
  • 🤖 Agent Compatibility - Works with all agent types (Bedrock, Anthropic, Lex, etc.)

The SupervisorAgent can be used in two powerful ways:

  1. Direct Usage - Call it directly when you need dedicated team coordination for specific tasks
  2. Classifier Integration - Add it as an agent within the classifier to build complex hierarchical systems with multiple specialized teams

Here are just a few examples where this agent can be used:

  • Customer Support Teams with specialized sub-teams
  • AI Movie Production Studios
  • Travel Planning Services
  • Product Development Teams
  • Healthcare Coordination Systems

Learn more about SupervisorAgent →