MATAC banner
jmanhype jmanhype

MATAC

Productivity community

Description

MATAC (Multi-Agent Task Allocation and Coordination) is a Python system for intelligent task management. It uses natural language processing to assign tasks to agents based on their skills, implements state-based agent management, and enables asynchronous execution. MATAC optimizes workflows in multi-agent environments.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

MATAC System (Multi-Agent Task Allocation and Coordination)

MATAC is a Python-based system designed for multi-agent task allocation and coordination using natural language processing and state machine concepts.

Features

  • Dynamic task allocation based on agent skills
  • State-based agent management (idle, assigned, executing, completed)
  • Asynchronous task execution
  • Natural language task description and allocation
  • Integration with OpenAI's GPT models for intelligent decision-making

Components

  1. Agent: Represents individual agents with specific skills and state management.
  2. TaskAllocator: Handles task assignment to the most suitable agent.
  3. TaskSignature: Defines the structure for task descriptions and allocations.

Prerequisites

  • Python 3.7+
  • OpenAI API key

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/matac.git
    cd matac
  2. Install dependencies:

    pip install dspy python-dotenv transitions
  3. Set up environment variables: Create a `.env` file in the project root and add your OpenAI API key:

    OPENAI_API_KEY=your_api_key_here

Usage

  1. Initialize agents with specific skills:

    agents = [
        Agent(llm, name="Agent 1", skills=["frontend", "backend"]),
        Agent(llm, name="Agent 2", skills=["backend"]),
        Agent(llm, name="Agent 3", skills=["frontend", "design"])
    ]
  2. Create a TaskAllocator:

    task_allocator = TaskAllocator(llm, agents)
  3. Define tasks and run the main execution loop:

    tasks_to_allocate = [
        "Build the user interface",
        "Set up the database",
        "Design the user experience"
    ]
    
    async def main():
        for task in tasks_to_allocate:
            task_allocator.allocate_task(task)
        await task_allocator.coordinate_execution()
    
    asyncio.run(main())

Customization

  • Modify the Agent class to add more states or t