graph TD
A[User Interface Layer] --> B[Orchestration Layer]
B --> C[Agent Management Layer]
C --> D[Docker Container Layer]
subgraph "User Interface Layer"
A1[Agent Designer] --> A2[Workflow Monitor]
A2 --> A3[Performance Metrics]
A3 --> A4[Intervention Tools]
end
subgraph "Orchestration Layer"
B1[Team Manager] --> B2[Task Decomposer]
B2 --> B3[Progress Monitor]
B3 --> B4[Intervention Handler]
end
subgraph "Agent Management Layer"
C1[AutoGen Integration] --> C2[Agent Registry]
C2 --> C3[Communication Bus]
C3 --> C4[State Manager]
end
The north star for this project is to create a robust multi-agent system that efficiently manages and executes complex tasks through a well-coordinated team of specialized agents. The system should provide a seamless user experience through an intuitive UI, allowing users to design, monitor, and optimize workflows in real time. The team orchestrator will play a crucial role in dynamically adapting to task requirements and agent capabilities, ensuring optimal performance and task completion.
Special thanks to GPT and Claude <3
The multi-agent system is built using Python and Docker. It includes components for web searching, code execution, and user interaction through a conversational interface. The system is designed to be extensible, allowing for the integration of additional tools and functionalities.
- Core Differentiators:
class UnifiedTeamOrchestrator:
"""Combines:
- Real-world management principles
- Advanced task decomposition
- Dynamic role assignment
- Real-time monitoring
- Visual workflow tracking
"""
- Key Innovations:
- Fact-based planning: Uses verified facts, facts to look up, and educated guesses
- Business-inspired workflow: Based on real management experience
- Visual monitoring: Real-time tracking and visualization
- Stall detection: Identifies and handles blocked progress
- Role optimization: Matches agent capabilities to tasks
- Architecture Flow:
graph TD
A[Initial Task] --> B[Fact Gathering]
B --> C[Task Planning]
C --> D[Role Assignment]
D --> E[Execution]
E --> F[Monitoring]
F -->|Success| G[Complete]
F -->|Stalled| H[Replan]
H --> B
- What Sets Us Apart:
- Business-driven design vs purely academic approaches
- Real-time visualization vs black box execution
- Practical management principles vs theoretical frameworks
- Focus on tracking and improvement vs just task completion
- src/: Contains the main source code for the agents, configuration, and execution logic.
- tools/: Utilities for web searching and directory structure printing.
- scripts/: Batch scripts for setting up and managing the Docker environment.
- docker/: Docker configuration files for building and running the system.
- Architecture Overview:
- GUI Layer: Handles visualization and user interaction
- Core System: Manages workflows, tasks, and team configuration
- Specialized Agents: Different types of AI agents for specific tasks
- Docker Environment: Provides isolated execution environment
- Key Features:
- Intuitive drag-and-drop workflow design
- Visual workflow monitoring with node editor
- Real-time metrics tracking
- Docker containerization for safe code execution
- Specialized agent roles (Research, Code, Viz, QA, PM)
- Task decomposition and dynamic team formation
- Main Components:
- MultiAgentSystem: Main orchestrator class
- AgentMonitor: Handles UI and visualization
- WorkflowManager: Manages agent workflows
- TeamManager: Handles agent team composition
- DockerWorkspaceManager: Manages Docker containers and volumes
- Workflow:
- System initialization (configuration, Docker setup)
- Monitor setup (UI components, message queue)
- Workflow creation and team assignment
- Real-time monitoring and visualization
- Graceful shutdown and cleanup
To set up the project, follow these steps:
-
Clone the Repository:
git clone https://github.com/pattty847/Multi-Agent-Team.git cd Multi-Agent-Team
-
Create a Virtual Environment:
python -m venv .venv source .venv/bin/activate # On Windows use: .venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Run Setup Script: Execute the setup script to build and start the Docker containers.
scripts/setup.bat
-
Access Jupyter Lab: Use the Jupyter script to launch Jupyter Lab for interactive development.
scripts/jupyter.bat
-
Run Tasks: The system can perform tasks such as web searches and code execution through the agents.
-
Stop the System: Use the stop script to stop the Docker containers when done.
scripts/stop.bat
Contributions are welcome! Please fork the repository and submit a pull request with your changes. Ensure that your code adheres to the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for more details.