tahamajs/Sysmem2_in_AI / ComputerAssignments /CA24_multi_agent_systems
835 MB
10,492 files
Updated 4 months ago
Name
Size
config
demos
docs
notebooks
scripts
src
tests
README.md10.3 kB
xet
requirements.txt2.22 kB
xet
README.md

CA24: Advanced Multi-Agent Systems

๐ŸŽฏ Overview

A comprehensive implementation of advanced multi-agent systems featuring modern communication protocols, sophisticated coordination mechanisms, and multi-agent reinforcement learning. This project demonstrates state-of-the-art techniques in distributed AI systems.

โœจ Key Features

1. Advanced Communication Systems

  • ๐Ÿ“จ Multiple communication protocols (Message Passing, Publish-Subscribe, Broadcast, Multicast)
  • ๐ŸŽฏ Priority-based message handling (Low, Medium, High, Critical)
  • ๐Ÿ”€ Intelligent message routing and filtering
  • ๐Ÿ“Š Real-time communication monitoring and statistics
  • ๐ŸŒ WebSocket support for distributed agents
  • โฑ๏ธ TTL (Time-To-Live) and retry mechanisms

2. Advanced Coordination Mechanisms

  • ๐Ÿ—๏ธ Hierarchical Coordination: Top-down task allocation
  • ๐Ÿ’ฐ Market-Based Allocation: Auction-based task distribution
  • ๐Ÿค Coalition Formation: Dynamic agent grouping for complex tasks
  • ๐ŸŽฏ Consensus Algorithms: Weighted average and majority vote
  • ๐Ÿ“‹ Task Allocation Methods:
    • Round Robin
    • Load Balancing
    • Capability Matching
    • Auction-Based
    • Genetic Algorithm

3. Multi-Agent Reinforcement Learning (MARL)

  • ๐Ÿง  Multi-Agent DQN: Deep Q-Network for multiple agents
  • ๐ŸŽญ Multi-Agent A2C: Advantage Actor-Critic for cooperative learning
  • ๐Ÿ”„ Experience Replay: Efficient learning from past experiences
  • ๐ŸŽฎ Custom Environments: Flexible multi-agent simulation environments
  • ๐Ÿ“ˆ Training Metrics: Comprehensive performance tracking

4. Agent Types

  • ๐Ÿ‘” Coordinator Agent: Task allocation and system coordination
  • ๐Ÿ”ฌ Researcher Agent: Information gathering and analysis
  • ๐Ÿ“Š Analyst Agent: Pattern recognition and prediction
  • ๐Ÿค– ReAct Agent: Reasoning and acting with LLMs
  • ๐Ÿ”ฎ Reflexion Agent: Self-reflective learning
  • ๐Ÿฆ› HippoRAG Agent: Advanced RAG with knowledge graphs
  • ๐Ÿ”— Nexus Agent: Multi-modal reasoning

๐Ÿ“ Project Structure

CA24_multi_agent_systems/
โ”œโ”€โ”€ ๐Ÿ““ notebooks/           # Jupyter notebooks with examples
โ”‚   โ”œโ”€โ”€ CA24.ipynb         # Main comprehensive notebook
โ”‚   โ”œโ”€โ”€ 01_Advanced_Communication_Systems.ipynb
โ”‚   โ”œโ”€โ”€ 02_Advanced_Coordination.ipynb
โ”‚   โ”œโ”€โ”€ 03_Multi_Agent_RL.ipynb
โ”‚   โ””โ”€โ”€ 04_Complete_Projects.ipynb
โ”œโ”€โ”€ ๐Ÿ”ง src/                # Source code
โ”‚   โ”œโ”€โ”€ core/              # Core multi-agent systems
โ”‚   โ”‚   โ”œโ”€โ”€ multi_agent_system.py
โ”‚   โ”‚   โ”œโ”€โ”€ advanced_communication.py
โ”‚   โ”‚   โ”œโ”€โ”€ advanced_coordination.py
โ”‚   โ”‚   โ”œโ”€โ”€ multi_agent_rl.py
โ”‚   โ”‚   โ”œโ”€โ”€ environment.py
โ”‚   โ”‚   โ”œโ”€โ”€ rag_system.py
โ”‚   โ”‚   โ””โ”€โ”€ shared_memory.py
โ”‚   โ”œโ”€โ”€ agents/            # Specialized agents
โ”‚   โ”‚   โ”œโ”€โ”€ react_agent.py
โ”‚   โ”‚   โ”œโ”€โ”€ reflexion_agent.py
โ”‚   โ”‚   โ”œโ”€โ”€ hipporag_agent.py
โ”‚   โ”‚   โ””โ”€โ”€ nexus_agent.py
โ”‚   โ”œโ”€โ”€ evaluation/        # Evaluation metrics
โ”‚   โ””โ”€โ”€ utils/             # Utilities
โ”œโ”€โ”€ ๐Ÿš€ scripts/            # Execution scripts
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ””โ”€โ”€ run.sh
โ”œโ”€โ”€ ๐Ÿงช tests/              # Test files
โ”œโ”€โ”€ โš™๏ธ config/             # Configuration
โ”œโ”€โ”€ ๐Ÿ“Š data/               # Data and results
โ”œโ”€โ”€ ๐Ÿ’พ models/             # Saved models
โ”œโ”€โ”€ ๐Ÿ”— integrations/       # External integrations
โ”œโ”€โ”€ ๐ŸŽฎ demos/              # Interactive demos
โ””โ”€โ”€ ๐Ÿ“‹ docs/               # Documentation

๐Ÿš€ Quick Start

Installation

# Clone the repository
cd CAs/CA24_multi_agent_systems

# Install dependencies
pip install -r requirements.txt

# Set up environment variables (optional)
export GEMINI_API_KEY='your_api_key_here'

Running Examples

1. Basic Multi-Agent System

cd scripts/
python main.py

2. Advanced Communication Demo

from core.advanced_communication import AdvancedCommunicationManager
from core.multi_agent_system import BaseAgent

# Create communication manager
comm_manager = AdvancedCommunicationManager("my_system")

# Register agents
await comm_manager.register_agent(agent1, ["topic_A"])
await comm_manager.register_agent(agent2, ["topic_B"])

# Send messages
await comm_manager.broadcast_message(
    sender="coordinator",
    content={"message": "Hello all agents!"},
    priority=MessagePriority.HIGH
)

3. Coordination with Coalition Formation

from core.advanced_coordination import AdvancedCoordinationManager, CoordinationStrategy

# Create coordination manager
coord_manager = AdvancedCoordinationManager(
    comm_manager,
    strategy=CoordinationStrategy.COALITION
)

# Register agents with capabilities
await coord_manager.register_agent(agent, capabilities)

# Allocate tasks
assigned_agent = await coord_manager.allocate_task(task)

4. Multi-Agent Reinforcement Learning

from core.multi_agent_rl import MultiAgentRLSystem

# Create MARL system
marl = MultiAgentRLSystem(
    num_agents=3,
    state_dim=4,
    action_dim=2,
    algorithm="dqn"
)

# Train agents
marl.train(num_episodes=1000, batch_size=32)

# Evaluate performance
results = marl.evaluate(num_episodes=10)

๐Ÿ“š Comprehensive Examples

Example 1: Distributed Task Allocation

import asyncio
from core.multi_agent_system import MultiAgentSystem
from core.advanced_coordination import CoordinationTask, AgentCapability

async def distributed_task_allocation():
    # Initialize system
    mas = MultiAgentSystem(gemini_config)
    await mas.initialize()

    # Create task with requirements
    task = CoordinationTask(
        description="Analyze market data",
        resource_requirements={
            "capabilities": ["analysis", "visualization"],
            "max_cost": 100.0
        },
        deadline=datetime.now() + timedelta(hours=1)
    )

    # Allocate task
    assigned_agent = await coord_manager.allocate_task(task)
    print(f"Task assigned to: {assigned_agent}")

    # Monitor progress
    status = await mas.get_system_status()
    print(f"System status: {status}")

asyncio.run(distributed_task_allocation())

Example 2: Consensus-Based Decision Making

async def consensus_decision():
    # Initial values from different agents
    initial_values = {
        "agent_1": 0.8,
        "agent_2": 0.6,
        "agent_3": 0.7,
        "agent_4": 0.9
    }

    # Reach consensus
    consensus_result = await coord_manager.reach_consensus(
        topic="resource_allocation",
        initial_values=initial_values,
        max_iterations=10
    )

    print(f"Consensus reached: {consensus_result}")

asyncio.run(consensus_decision())

Example 3: Multi-Agent RL Training

# Create cooperative multi-agent environment
marl_system = MultiAgentRLSystem(
    num_agents=4,
    state_dim=8,
    action_dim=4,
    algorithm="a2c"
)

# Train with custom parameters
marl_system.train(
    num_episodes=2000,
    batch_size=64,
    update_frequency=10
)

# Get training statistics
stats = marl_system.get_training_stats()
print(f"Training completed:")
print(f"  Average reward: {stats['average_rewards'][-1]:.2f}")
print(f"  Total steps: {stats['total_steps']}")

# Evaluate trained agents
eval_results = marl_system.evaluate(num_episodes=20)
print(f"Evaluation results: {eval_results}")

๐ŸŽ“ Jupyter Notebooks

Explore comprehensive tutorials and examples:

  1. CA24.ipynb - Main comprehensive guide
  2. 01_Advanced_Communication_Systems.ipynb - Communication protocols
  3. 02_Advanced_Coordination.ipynb - Coordination mechanisms
  4. 03_Multi_Agent_RL.ipynb - Reinforcement learning
  5. 04_Complete_Projects.ipynb - End-to-end projects

๐Ÿงช Testing

# Run all tests
cd tests/
python -m pytest

# Run specific test
python test_communication.py
python test_coordination.py
python test_marl.py

๐Ÿ“Š Performance Metrics

The system tracks various performance metrics:

  • Communication: Message throughput, latency, delivery rate
  • Coordination: Task allocation efficiency, coalition formation time
  • Learning: Episode rewards, convergence rate, success rate
  • System: CPU/memory usage, agent utilization

๐Ÿ”ง Configuration

Environment Variables

# API Keys
export GEMINI_API_KEY='your_gemini_key'
export OPENAI_API_KEY='your_openai_key'

# System Configuration
export MAX_AGENTS=10
export MESSAGE_TIMEOUT=5.0
export COORDINATION_STRATEGY='hierarchical'

Configuration Files

Edit config/system_config.yaml for advanced settings:

communication:
  protocol: message_passing
  max_retries: 3
  ttl: 60

coordination:
  strategy: hierarchical
  allocation_method: capability_matching

reinforcement_learning:
  algorithm: dqn
  learning_rate: 0.001
  gamma: 0.99
  epsilon: 1.0

๐Ÿ“– Documentation

Detailed documentation available in docs/:

  • Architecture Guide: System design and components
  • API Reference: Complete API documentation
  • Best Practices: Guidelines for multi-agent systems
  • Troubleshooting: Common issues and solutions

๐ŸŽฏ Key Concepts Implemented

1. Cooperative Distributed Problem Solving (CDPS)

  • Decentralized control and data storage
  • Efficient communication protocols
  • Loose coupling between agents

2. Consensus Dynamics

  • Weighted average consensus
  • Majority vote mechanisms
  • Convergence guarantees

3. Distributed Constraint Optimization (DCOP)

  • Constraint satisfaction
  • Resource allocation
  • Optimization algorithms

4. Algorithmic Game Theory

  • Mechanism design
  • Equilibrium analysis
  • Strategic behavior modeling

5. Multi-Agent Reinforcement Learning (MARL)

  • Independent learners
  • Centralized training, decentralized execution
  • Cooperative and competitive scenarios

๐Ÿ“„ License

This project is part of the System2_in_AI CA collection.

๐Ÿ™ Acknowledgments

  • Research Papers: Based on latest MAS research
  • Frameworks: LangChain, Ray RLlib, PettingZoo
  • Community: Open-source multi-agent systems community

Built with โค๏ธ for advanced multi-agent systems research and applications

Total size
835 MB
Files
10,492
Last updated
Jun 17
Pre-warmed CDN
US EU US EU

Contributors