https://github.com/awslabs/distributed-multi-agent-collaboration
https://github.com/awslabs/distributed-multi-agent-collaboration
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.3%) to scientific vocabulary
Repository
Basic Info
Statistics
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 4
- Releases: 0
Metadata Files
README.md
DMACF: Distributed Multi-Agent Collaboration Framework
A easy-to-use framework for building scalable solutions with LLM-driven multi-agent collaboration
DMAC allows you to develop and test solutions using multi-agent collaboration with zero or minimal coding. DMAC provides a multi-agent playground for easy visualization and testing. Finally, DMAC helps you deploy your solution to Amazon Bedrock Agents with a single command (coming soon).
Key Features
| 🤖 Scalable multi-agent inter-communication and collaboration support
DMAC is designed by prioritizing scalability. The inter-communication mechanism allows easy scaling up to hundreds of agents and communicate with each other in real-time. | 🧬 Simple, yet customizable
With DMAC, you can develop your solution using YAML descriptional language and zero coding. However, DMAC also provides utility for building customized agent logic with minimal Python coding. |
|---|---|
| ⚖ Build-in support for various tools, agents and multi-agent planners
DMAC implements various useful tools, agents and dynamic planners for multi-agent collaboration. You can leverage them to create diverse agent teams for complex tasks such as developing a software. | 🖇️ Build upon examples and templates
DMAC provides multiple examples with different collaboration patterns, allowing you easily boostrap for your own solution. |
Current features and up-coming features:
- Agent support
- Chat-only agent, Tool-chat agent, Synchronized Meta Agent, Asynchroized Meta Agent
- Action Agents and Agent Triggers
- Inter-communication
- Message-based communication organized by channels,
- Shared storage between agents
- Multi-agent planners
- Static plan (pre-defined plan), Dynamic goal planning
- Asynchronized planning, Structured/Symbolic planning
Installation
To get started, clone the repository and install the package.
bash
git clone ssh://git.amazon.com/pkg/AWSDMAC
cd AWSDMAC
pip install -e .
Export AWS credentials to use models on Bedrock or SageMaker.
bash
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
Running the unit tests
- Install pytest using pip:
pip install pytest - Execute the tests in tests/ folder using:
pytest tests/
Hello World Example
In the DMAC package, we provide a hello world example allows you to get started with DMAC quickly.
Hello World Agent Team
In the hello world example, we built a simple agent team for answering questions related to fitness. The team consists of just three agents:
| Agent Name | Agent Type | Description |
| --- | --- | --- |
| FitnessAnsweringAgent | TaskCoordinatorAgent | A coordinator agent that coordinates the other two agents to answer questions. |
| FactResearchAgent | ConversationalTaskAgent | A fact research agent that can search the web for facts related to fitness. |
| KnowledgeAgent | ConversationalTaskAgent | A knowledge agent that can answer general questions related to fitness. |
Running the example
In general, there are two ways in DMAC for running a multi-agent solution: 1) Create a workspace and run it using DMAC CLI, 2) Write python code for your solution and run it directly.
Part 1: Run the workspace using DMAC CLI
Let first try to run a configured workspace using DMAC CLI. All the configurations and codes for the hello world example are already included in the DMAC package, so we can directly run it by executing the following command from the root folder of the DMAC package:
bash
python -m DMAC.cli --root examples/workspaces -w hello_world run
You should see the following prompt:
```bash
(Press enter a messages, or press Enter / type 'exit' to quit.) Human -> team:HelloWorldTeam: ```
Try to ask a question such as What are the best parks in New York City for running?. You should be able to see that the FactResearchAgent was triggered by the coordinator (FitnessAnsweringAgent) and the final output should be something like the following:
```bash
[DM] FitnessAnsweringAgent -> human: Based on the research, here are the best parks for running in New York City, along with their key features:
- Central Park - The crown jewel for NYC runners
- 6.1-mile main loop
- Popular 1.58-mile Reservoir Track
- Diverse terrain options
- Excellent amenities (water fountains, restrooms)
Well-maintained and lit paths
Prospect Park (Brooklyn)
3.35-mile main loop
Nice mix of hills and flat sections
Less crowded alternative to Central Park
Well-shaded paths perfect for summer running
... ```
In rare cases, you might get RateLimitError from the web search tool if you run the example too frequently. In such case, the agents will try to react to such incidents and give the best response without relying on the web search.
Part 2: Run the example using python code
The DMAC package includes a Python implementation of the exactly same agent team. You can run it by simply executing the following command:
bash
python examples/python/hello_world.py
Once the script is executed, you should be able to see the same output as the one from the CLI example.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Owner
- Name: Amazon Web Services - Labs
- Login: awslabs
- Kind: organization
- Location: Seattle, WA
- Website: http://amazon.com/aws/
- Repositories: 914
- Profile: https://github.com/awslabs
AWS Labs
GitHub Events
Total
- Watch event: 1
- Issue comment event: 1
- Push event: 1
- Pull request event: 3
- Fork event: 1
Last Year
- Watch event: 1
- Issue comment event: 1
- Push event: 1
- Pull request event: 3
- Fork event: 1