4.2 KiB
MajorityVoting
Documentation
Overview
The swarms.structs
library provides a flexible architecture for creating and managing swarms of agents capable of performing tasks and making decisions based on majority voting. This documentation will guide you through the MajorityVoting
class, explaining its purpose, architecture, and usage with examples.
Table of Contents
- Introduction
- Installation
- The
MajorityVoting
Class - Usage Examples
- Advanced Features
- Troubleshooting and FAQ
- Conclusion
- References
Introduction
The swarms.structs
library introduces a mode of distributed computation through "agents" that collaborate to determine the outcome of tasks using a majority voting system. It becomes crucial in scenarios where collective decision-making is preferred over individual agent accuracy.
Installation
To install the swarms.structs
library, run the following command:
pip install swarms-structs
The MajorityVoting
Class
The MajorityVoting
class is a high-level abstraction used to coordinate a group of agents that perform tasks and return results. These results are then aggregated to form a majority vote, determining the final output.
Class Definition
Parameters
Parameter | Type | Default | Description |
---|---|---|---|
agents | List[Agent] | Required | A list of agent instances to participate in the voting process. |
concurrent | bool | False | Enables concurrent execution using threading if set to True . |
multithreaded | bool | False | Enables execution using multiple threads if set to True . |
multiprocess | bool | False | Enables execution using multiple processes if set to True . |
asynchronous | bool | False | Enables asynchronous execution if set to True . |
output_parser | callable | None | A function to parse the output from the majority voting function. |
autosave | bool | False | Enables automatic saving of the process state if set to True . (currently not used in source code) |
verbose | bool | False | Enables verbose logging if set to True . |
Methods
__init__
The constructor for the MajorityVoting
class. Initializes a new majority voting system with the given configuration.
This method doesn't return any value.
run
Executes the given task by all participating agents and aggregates the results through majority voting.
Parameter | Type | Description |
---|---|---|
task | str | The task to be performed. |
*args | list | Additional positional arguments. |
**kwargs | dict | Additional keyword arguments. |
Returns: List[Any] - The result based on the majority vote.
Usage Examples
Basic Usage
from swarms.structs.agent import Agent
from swarms.structs.majority_voting import MajorityVoting
def create_agent(name):
return Agent(name)
agents = [create_agent(name) for name in ["GPT-3", "Codex", "Tabnine"]]
majority_voting = MajorityVoting(agents)
result = majority_voting.run("What is the capital of France?")
print(result) # Output: Paris
Concurrent Execution
majority_voting = MajorityVoting(agents, concurrent=True)
result = majority_voting.run("What is the largest continent?")
print(result) # Example Output: Asia
Asynchronous Execution
majority_voting = MajorityVoting(agents, asynchronous=True)
result = majority_voting.run("What is the square root of 16?")
print(result) # Output: 4