Skip to main content

A multi-agent orchestration system built with Microsoft Agent Framework

Project description

AgenticFleet

CI Release CodeQL Python 3.12+ License: MIT

Version: 0.5.0 Package: agentic-fleet (PyPI) | agenticfleet (import)

A sophisticated multi-agent system powered by Microsoft Agent Framework that coordinates specialized AI agents to solve complex tasks through dynamic delegation and collaboration.

๐ŸŽฏ Overview

AgenticFleet implements a custom orchestration pattern where an orchestrator agent intelligently delegates tasks to specialized agents:

  • ๐ŸŽฏ Orchestrator Agent: Plans and coordinates task distribution
  • ๐Ÿ” Researcher Agent: Gathers information through web searches
  • ๐Ÿ’ป Coder Agent: Writes and executes Python code
  • ๐Ÿ“Š Analyst Agent: Analyzes data and suggests visualizations

โœจ Features

  • โœ… Modern Package Structure: PyPA-recommended src/ layout for import safety
  • โœ… Dynamic Task Decomposition: Automatic breakdown of complex tasks
  • โœ… Multi-Agent Coordination: Seamless collaboration between specialized agents
  • โœ… Event-Driven Architecture: Real-time monitoring and observability
  • โœ… Structured Responses: Type-safe tool outputs with Pydantic models
  • โœ… Configurable Execution: Safety controls and execution limits
  • โœ… Individual Agent Configs: Dedicated configuration per agent
  • โœ… Persistent Memory: mem0 integration for long-term memory
  • โœ… Console Script: Easy CLI access via agentic-fleet command

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         User Interface (CLI)            โ”‚
โ”‚     Console: agentic-fleet              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚
               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚      Custom Workflow Orchestrator       โ”‚
โ”‚   (Coordination & State Management)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚                     โ”‚
    โ–ผ                     โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚Orchestrator โ”‚โ—„โ”€โ”€โ”€โ”ค Specialized  โ”‚
โ”‚   Agent     โ”‚    โ”‚    Agents    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
      โ”‚                   โ”‚
      โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
      โ”‚  โ”‚                โ”‚        โ”‚
      โ–ผ  โ–ผ                โ–ผ        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚Researcherโ”‚  โ”‚  Coder   โ”‚  โ”‚ Analyst  โ”‚
โ”‚(Web)     โ”‚  โ”‚(Code)    โ”‚  โ”‚(Data)    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
      โ–ฒ
      โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Mem0 Contextโ”‚
โ”‚  Provider   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Package Structure (src/ Layout)

src/agenticfleet/           # Main package (import: agenticfleet)
โ”œโ”€โ”€ __init__.py            # Package entry, version, exports
โ”œโ”€โ”€ __main__.py            # Module entry (python -m agenticfleet)
โ”œโ”€โ”€ agents/                # All agent factories + tools
โ”‚   โ”œโ”€โ”€ orchestrator/      # Orchestrator agent
โ”‚   โ”‚   โ”œโ”€โ”€ agent.py       # Factory: create_orchestrator_agent()
โ”‚   โ”‚   โ”œโ”€โ”€ config.yaml    # Agent-specific configuration
โ”‚   โ”‚   โ””โ”€โ”€ tools/         # Agent tools (if any)
โ”‚   โ”œโ”€โ”€ researcher/        # Researcher agent with web search
โ”‚   โ”‚   โ”œโ”€โ”€ agent.py       # Factory: create_researcher_agent()
โ”‚   โ”‚   โ”œโ”€โ”€ config.yaml
โ”‚   โ”‚   โ””โ”€โ”€ tools/
โ”‚   โ”‚       โ””โ”€โ”€ web_search_tools.py
โ”‚   โ”œโ”€โ”€ coder/             # Coder agent with code execution
โ”‚   โ”‚   โ”œโ”€โ”€ agent.py       # Factory: create_coder_agent()
โ”‚   โ”‚   โ”œโ”€โ”€ config.yaml
โ”‚   โ”‚   โ””โ”€โ”€ tools/
โ”‚   โ”‚       โ””โ”€โ”€ code_interpreter.py
โ”‚   โ””โ”€โ”€ analyst/           # Analyst agent with data analysis
โ”‚       โ”œโ”€โ”€ agent.py       # Factory: create_analyst_agent()
โ”‚       โ”œโ”€โ”€ config.yaml
โ”‚       โ””โ”€โ”€ tools/
โ”‚           โ””โ”€โ”€ data_analysis_tools.py
โ”œโ”€โ”€ workflows/             # Multi-agent orchestration
โ”‚   โ””โ”€โ”€ multi_agent.py     # MultiAgentWorkflow class
โ”œโ”€โ”€ config/                # Configuration management
โ”‚   โ”œโ”€โ”€ settings.py        # Settings class (loads env vars)
โ”‚   โ””โ”€โ”€ workflow.yaml      # Workflow-level config
โ”œโ”€โ”€ context/               # Long-term memory providers
โ”‚   โ””โ”€โ”€ mem0_provider.py   # Mem0 integration
โ”œโ”€โ”€ core/                  # Core utilities
โ”‚   โ”œโ”€โ”€ exceptions.py      # Custom exceptions
โ”‚   โ”œโ”€โ”€ logging.py         # Logging configuration
โ”‚   โ””โ”€โ”€ types.py           # Type definitions, enums
โ””โ”€โ”€ cli/                   # CLI interface
    โ””โ”€โ”€ repl.py            # Interactive REPL

tests/                     # All tests
โ”œโ”€โ”€ test_config.py         # Configuration validation
โ”œโ”€โ”€ test_mem0_context_provider.py  # Memory tests
โ””โ”€โ”€ test_hello.py          # Sanity check

docs/                      # Documentation
โ”œโ”€โ”€ AGENTS.md              # Agent development guidelines
โ”œโ”€โ”€ MEM0_INTEGRATION.md    # Memory integration docs
โ”œโ”€โ”€ MIGRATION_COMPLETE.md  # Migration report
โ”œโ”€โ”€ TEMPERATURE_FIX.md     # API compliance fixes
โ”œโ”€โ”€ COMMANDS.md            # Command reference
โ””โ”€โ”€ ...

๐Ÿ“‹ Prerequisites

  • Python: 3.12 or higher
  • Azure AI Project: An Azure AI project with a deployed model.
  • Azure AI Search: An Azure AI Search service.
  • uv: Modern Python package manager (recommended)

๐Ÿš€ Quick Start

1. Clone and Navigate

git clone https://github.com/Qredence/AgenticFleet.git
cd AgenticFleet

2. Set Up Environment

# Copy environment template
cp .env.example .env

# Edit .env and add your keys and endpoints
# Required:
#   - OPENAI_API_KEY
#   - AZURE_AI_PROJECT_ENDPOINT
#   - AZURE_AI_SEARCH_ENDPOINT
#   - AZURE_AI_SEARCH_KEY
#   - AZURE_OPENAI_CHAT_COMPLETION_DEPLOYED_MODEL_NAME
#   - AZURE_OPENAI_EMBEDDING_DEPLOYED_MODEL_NAME

3. Install Dependencies (uv-first approach)

Using uv (recommended):

# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Sync dependencies (creates .venv automatically)
uv sync

# Optional: activate shell (not required when using `uv run`)
source .venv/bin/activate  # macOS/Linux
.venv\Scripts\activate     # Windows

Using pip (not recommended)

See docs/COMMANDS.md for pip-based installation.

4. Validate Configuration

# Run configuration tests (should pass 6/6)
uv run pytest tests/test_config.py -v

5. Run the Application

Method 1: Console script (easiest)

uv run agentic-fleet

Method 2: Module execution

uv run python -m agenticfleet

Method 3: Direct REPL file (legacy)

uv run python src/agenticfleet/cli/repl.py

5. Developer Workflow

Using Makefile (recommended)

make help          # Show all available commands
make install       # First-time setup
make test-config   # Validate configuration (6/6 tests)
make run           # Launch application
make check         # Run all quality checks (lint + type-check)
make format        # Auto-format code

Using uv directly:

# Format code
uv run black .

# Lint code
uv run ruff check .
uv run ruff check --fix .    # Auto-fix issues

# Type checking
uv run mypy src/agenticfleet

# Run tests
uv run pytest                # All tests
uv run pytest -v             # Verbose
uv run pytest tests/test_config.py  # Specific file

# All-in-one validation
uv sync && uv run black . && uv run ruff check . && uv run mypy src/agenticfleet && uv run pytest

Pre-commit hooks (automated checks on git commit):

make pre-commit-install
# or: uv run pre-commit install

๐Ÿ’ก Usage Examples

Basic Import

# Import package version
from agenticfleet import __version__
print(f"AgenticFleet v{__version__}")

# Import workflow
from agenticfleet.workflows import workflow

# Run a task
result = await workflow.run("Research Python best practices")

Creating Individual Agents

from agenticfleet.agents import (
    create_orchestrator_agent,
    create_researcher_agent,
    create_coder_agent,
    create_analyst_agent,
)

# Create agents
orchestrator = create_orchestrator_agent()
researcher = create_researcher_agent()
coder = create_coder_agent()
analyst = create_analyst_agent()

# Use individual agent
result = await researcher.run("Search for Python ML libraries")

Using Configuration

from agenticfleet.config import settings

# Access settings
api_key = settings.openai_api_key
model = settings.openai_model

# Load agent-specific config
agent_cfg = settings.load_agent_config("orchestrator")
print(agent_cfg["agent"]["name"])  # "orchestrator"

Custom Workflow

from agenticfleet.workflows import MultiAgentWorkflow

# Create workflow instance
workflow = MultiAgentWorkflow()

# Run task with automatic agent coordination
result = await workflow.run(
    "Analyze sales data and create visualizations"
)
print(result)

โš™๏ธ Configuration

Environment Variables (.env)

# OpenAI API Key
OPENAI_API_KEY=sk-your-key-here

# Azure AI Project Endpoint
AZURE_AI_PROJECT_ENDPOINT=your-azure-ai-project-endpoint

# Azure AI Search Configuration
AZURE_AI_SEARCH_ENDPOINT=your-azure-ai-search-endpoint
AZURE_AI_SEARCH_KEY=your-azure-ai-search-key

# Azure OpenAI Deployed Model Names
AZURE_OPENAI_CHAT_COMPLETION_DEPLOYED_MODEL_NAME=your-chat-completion-model-name
AZURE_OPENAI_EMBEDDING_DEPLOYED_MODEL_NAME=your-embedding-model-name

# Log Level (e.g., INFO, DEBUG)
LOG_LEVEL=INFO

๐Ÿ“– Documentation

All documentation is located in the docs/ folder:

Core Documentation

Migration & Updates

Features & Integration

Additional Resources

๐Ÿ› ๏ธ Development Tools

  • uv: Fast Python package manager with lockfile support
  • Ruff: Lightning-fast linter and formatter
  • Black: Opinionated code formatter
  • mypy: Static type checker
  • pytest: Testing framework
  • pre-commit: Git hooks for automated quality checks
  • GitHub Actions: CI/CD with automated testing and linting
  • Makefile: Convenient command shortcuts

๐Ÿ”„ CI/CD

The project includes automated CI/CD via GitHub Actions (.github/workflows/ci.yml):

  • โœ… Lint with Ruff
  • โœ… Format check with Black
  • โœ… Type check with mypy
  • โœ… Configuration validation (6 tests)
  • โœ… Full test suite execution (28 tests)
  • โœ… Security scanning (optional)
  • โœ… Matrix testing (Python 3.12 & 3.13)
  • โœ… Automated dependency caching
  • โœ… Pre-commit.ci integration for automatic fixes

๐Ÿšข Installation (Future PyPI)

Once published to PyPI, users can install AgenticFleet:

# Using pip
pip install agentic-fleet

# Using uv (recommended)
uv pip install agentic-fleet

Then import and use:

from agenticfleet import __version__, MultiAgentWorkflow

print(f"AgenticFleet v{__version__}")

workflow = MultiAgentWorkflow()
result = await workflow.run("Your task here")

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes following the coding standards
  4. Run tests: uv run pytest
  5. Run quality checks: make check or uv run black . && uv run ruff check . && uv run mypy src/agenticfleet
  6. Commit your changes (git commit -m 'feat: add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Microsoft Agent Framework - Core agent orchestration framework
  • OpenAI - Language model APIs
  • mem0 - Persistent memory management
  • uv - Fast Python package manager
  • Ruff - Lightning-fast linter and formatter

๐Ÿ“ž Support


Built with โค๏ธ by Qredence

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentic_fleet-0.5.0.tar.gz (268.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentic_fleet-0.5.0-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

File details

Details for the file agentic_fleet-0.5.0.tar.gz.

File metadata

  • Download URL: agentic_fleet-0.5.0.tar.gz
  • Upload date:
  • Size: 268.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agentic_fleet-0.5.0.tar.gz
Algorithm Hash digest
SHA256 1caadb8cd20ab9de11bf6678100fe9ceb246c5d874852274667a17501d824597
MD5 954851880db73196cb6f0cb18b40f638
BLAKE2b-256 49792720bfd2372019feec96bd6cfb2c3dfd58e48c832fc3ad76b48ea6e9e521

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_fleet-0.5.0.tar.gz:

Publisher: release.yml on Qredence/AgenticFleet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_fleet-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: agentic_fleet-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 34.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agentic_fleet-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9d041ccf84cc6dd2704f37355559e484c11b9f1e13f191fc1b73146de3a3fb7
MD5 f14f321536094fb0fae2873663205373
BLAKE2b-256 791cc35a2a35c9e4a9afb21c49b8f5e286dd1126ffe23b3a389c1fe9f66e9917

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_fleet-0.5.0-py3-none-any.whl:

Publisher: release.yml on Qredence/AgenticFleet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page