A powerful multi-agent system for adaptive AI reasoning and automation. AgenticFleet combines Chainlit's interactive interface with AutoGen's multi-agent capabilities to create a flexible, powerful AI assistant platform.
demo.mp4
- Introduction
- System Architecture
- Quick Start
- Installation Guide
- Model Provider Installation
- Supported Model Providers
- Key Features
- Configuration
- Error Handling
- Community Contributions
- Star History
- API Overview
- Advanced Configuration
- Supported Features
- Performance Optimization
- Contributing
- License
AgenticFleet operates through a coordinated team of specialized agents that work together to provide advanced AI capabilities. This project leverages Chainlit's interactive interface with AutoGen's multi-agent system to deliver robust and adaptive solutions.
A comprehensive platform for deploying, managing, and interacting with AI agents.
Agentic Fleet is a sophisticated platform that provides a modular architecture for managing AI agents, tasks, and communication. It supports multiple agent types, task management, and communication channels with a focus on extensibility, allowing for easy integration of new agent types, tools, and interfaces.
- Agent Management: Create, update, and delete AI agents with different capabilities
- Task Management: Assign tasks to agents and track their progress
- Real-time Communication: Chat interfaces for real-time interaction with agents
- Multiple Interfaces: REST API and Chainlit-based UI
- Tool Integration: Web search, content generation, and data processing tools
- Authentication: API key-based authentication for secure access
- Logging: Comprehensive request logging for monitoring and debugging
- Database Integration: SQLAlchemy ORM for data persistence
The Agentic Fleet system is organized into several key components:
-
API Layer (
src/agentic_fleet/api/
)- FastAPI-based REST API for interacting with the system
- Endpoints for agent management, task execution, and chat interactions
- Middleware for authentication, logging, and error handling
-
Database Layer (
src/agentic_fleet/database/
)- SQLAlchemy ORM models for data persistence
- Models for agents, messages, and tasks
- Database session management and connection pooling
-
Service Layer (
src/agentic_fleet/services/
)- Business logic for agent operations, task management, and chat interactions
- Client factory for LLM model instantiation and caching
- Message processing services
-
Agent System (
src/agentic_fleet/agents/
)- Implementation of agent types (e.g., MagenticOne)
- Agent registration and discovery
- Agent execution and lifecycle management
-
Tools (
src/agentic_fleet/tools/
)- Utility tools available to agents
- Web search capabilities (Google, Bing)
- Content generation (images, PDFs)
- Web page fetching and data extraction
-
UI Layer (
src/agentic_fleet/ui/
)- Chainlit-based chat interface
- Settings management
- Task visualization and management
- Message handling and formatting
-
Configuration System (
src/agentic_fleet/config/
)- YAML-based configuration for agents, models, and system settings
- Environment variable integration
- Configuration validation and loading
- Python 3.10+
- PostgreSQL (optional, for production)
- API keys for external services (OpenAI, Google, Bing, etc.)
- Node.js (for UI development)
-
Clone the repository:
git clone https://github.com/yourusername/agentic-fleet.git cd agentic-fleet
-
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
# Using the provided script ./install_deps.sh # Or using make make install # Or manually with pip pip install -r requirements.txt # Or install directly from source with development dependencies pip install -e ".[dev]"
-
Create a
.env
file:HOST=0.0.0.0 PORT=8000 CHAINLIT_PORT=8001 RELOAD=True API_KEY=your_secret_api_key # Optional, for authentication DATABASE_URL=postgresql+asyncpg://user:password@localhost/agentic_fleet # Optional, for production OPENAI_API_KEY=your_openai_api_key # Required for LLM functionality GOOGLE_API_KEY=your_google_api_key # Optional, for Google Search tool BING_API_KEY=your_bing_api_key # Optional, for Bing Search tool
# Using make
make run
# Or directly with Python
python -m agentic_fleet.main
# Or using the installed entry point
agentic-fleet
The API will be available at http://localhost:8000
.
- API Documentation:
http://localhost:8000/docs
- Alternative Documentation:
http://localhost:8000/redoc
# Run the Chainlit UI
python -m agentic_fleet.app
The Chainlit UI will be available at http://localhost:8001
.
GET /agents
: List all agentsPOST /agents
: Create a new agentGET /agents/{agent_id}
: Get agent detailsPUT /agents/{agent_id}
: Update an agentDELETE /agents/{agent_id}
: Delete an agent
GET /tasks
: List all tasksPOST /tasks
: Create a new taskGET /tasks/{task_id}
: Get task detailsPUT /tasks/{task_id}
: Update a taskDELETE /tasks/{task_id}
: Delete a taskPOST /tasks/{task_id}/assign/{agent_id}
: Assign a task to an agent
GET /chat/messages
: List all chat messagesPOST /chat/messages
: Create a new chat messageGET /chat/messages/{message_id}
: Get message detailsPUT /chat/messages/{message_id}
: Update a messageDELETE /chat/messages/{message_id}
: Delete a messageWebSocket /chat/ws
: Real-time chat endpoint
The system provides a web-based chat interface using Chainlit:
-
Chat Interface
- Real-time messaging with agents
- File upload and sharing
- Message history and threading
-
Settings Management
- Model selection and configuration
- Temperature and other generation parameters
- Agent selection and customization
-
Task Management
- Task creation and assignment
- Task status tracking
- Task prioritization
- MagenticOne
- Based on the AutoGen framework
- Supports code execution and reasoning
- Human-in-the-loop capabilities
- Uses a team of specialized agents including:
- Orchestrator: Manages the conversation flow
- Coder: Writes and executes code
- WebSurfer: Browses and retrieves web content
- FileSurfer: Searches and manipulates files
- ComputerTerminal: Executes terminal commands
- Natural language understanding and generation
- Tool usage (web search, content generation, etc.)
- Task planning and execution
- Memory and context management
- Code execution in a sandboxed environment
- Web browsing and information retrieval
- File operations and document processing
The system provides several tools that agents can use:
-
Search Tools
- Google Search
- Bing Search
-
Content Generation
- Image generation
- PDF generation
-
Web Interaction
- Webpage fetching and parsing
- Browser automation
-
Utility Tools
- Calculator
- Data processing
- File operations
agentic_fleet/
├── src/
│ └── agentic_fleet/
│ ├── agents/ # Agent implementations
│ ├── api/ # API endpoints and middleware
│ │ ├── dependencies/
│ │ ├── middleware/
│ │ ├── routes/
│ │ └── app.py
│ ├── apps/ # Application modules
│ ├── config/ # Configuration system
│ ├── core/ # Core functionality
│ │ ├── application/
│ │ ├── llm/
│ │ └── workflows/
│ ├── database/ # Database models and session
│ │ ├── models/
│ │ └── session.py
│ ├── exceptions/ # Custom exceptions
│ ├── message_processing/ # Message handling
│ ├── models/ # Data models
│ ├── schemas/ # Pydantic schemas
│ ├── services/ # Business logic
│ ├── shared/ # Shared utilities
│ ├── tools/ # Agent tools
│ ├── ui/ # User interface
│ │ ├── chainlit/
│ │ └── message_handler.py
│ ├── utils/ # Utility functions
│ ├── app.py # Chainlit application
│ └── main.py # FastAPI application
├── tests/
├── .env
├── pyproject.toml
├── requirements.txt
├── Makefile
└── README.md
The project includes a Makefile with common development commands:
# Install dependencies
make install
# Run tests
make test
# Run linting
make lint
# Format code
make format
# Clean build artifacts
make clean
# Run the application
make run
# Show help
make help
# Using make
make test
# Or directly with pytest
pytest
-
New Agent Types
- Create a new file in
agents/
- Implement the agent interface
- Register the agent in
agents/__init__.py
- Create a new file in
-
New Tools
- Create a new file in
tools/
- Implement the tool interface
- Register the tool in
tools/__init__.py
- Create a new file in
-
New API Endpoints
- Create a new file in
api/routes/
- Implement the endpoint handlers
- Register the routes in
api/routes/__init__.py
- Create a new file in
The system uses a hierarchical configuration system:
-
Environment Variables
- Runtime configuration
- Sensitive information (API keys, credentials)
-
YAML Configuration Files
- Agent definitions
- Model configurations
- Memory settings
-
Dynamic Configuration
- User preferences
- Session settings
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.