Observed since 20 Oct, 22:05 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A flexible framework for building multi-agent systems with customizable protocols
A network-based multi-agent framework where agents connect to a central server for communication and coordination.
from omniagents.core.network import AgentNetworkServer
# Create and start server
network = AgentNetworkServer(host="127.0.0.1", port=8765)
network.run()
from omniagents.core.agent import Agent
# Create and connect agent
agent = Agent(name="MyAgent")
await agent.connect_to_server("127.0.0.1", 8765)
# Send messages to other agents
await agent.send_message("other_agent_id", "Hello!")
The framework uses a client-server architecture where:
Visit our project website at https://omniagents.org for more information, documentation, and resources.
OmniAgents provides an engine for running a network with a set of protocols. The framework is designed to be modular, allowing developers to:
OmniAgents includes several built-in protocols:
| Protocol | Description | Key Features |
|---|---|---|
| Discovery | Agent registration and service discovery | Agent registration/deregistration, Service announcement & discovery, Capability advertising |
| Communication | Message exchange between agents | Direct messaging, Publish-subscribe, Request-response patterns |
| Heartbeat | Agent liveness monitoring | Regular status checks, Network health detection |
| Identity & Authentication | Security and identity management | Agent identifiers, Authentication/authorization |
| Coordination | Task distribution and negotiation | Task negotiation & delegation, Contract-net protocol |
| Resource Management | Resource allocation and tracking | Resource allocation & accounting, Usage metering |
omniagents/
├── core/
│ ├── agent.py # Core agent implementation
│ ├── network.py # Core network engine implementation
│ ├── protocol_base.py # Base class for all protocols
│ ├── agent_protocol_base.py # Base class for agent-level protocols
│ └── network_protocol_base.py # Base class for network-level protocols
│
├── protocols/
│ ├── discovery/ # Discovery protocol implementation
│ ├── communication/ # Communication protocol implementation
│ ├── heartbeat/ # Heartbeat protocol implementation
│ └── ... # Other protocol implementations
│
├── configs/ # Configuration files
├── utils/ # Utility functions
├── tests/ # Test suite
├── docs/ # Documentation
└── examples/ # Example implementations
We welcome contributions to the OmniAgents framework! Whether you want to fix bugs, add new features, or create new protocols, your help is appreciated.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
You can run the test suite using pytest:
# Run all tests
pytest
# Run specific test files
pytest tests/test_discoverability.py tests/test_discovery_integration.py
# Run tests with coverage report
pytest --cov=src/omniagents --cov-report=xml
This project uses GitHub Actions for continuous integration testing. The workflow automatically runs pytest on Python versions 3.8, 3.9, 3.10, and 3.11 whenever code is pushed to the main, master, or develop branches, or when pull requests are made to these branches.
The CI workflow:
For more details, see the workflow configuration file.
# Clone the repository
git clone https://github.com/omniagents/omniagents.git
cd omniagents
# Create and activate a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install the package in development mode
pip install -e .
# Run an example
python examples/example_network.py
OmniAgents provides a command-line interface for basic operations:
# Launch a network with a configuration file
omniagents network launch config.json --runtime 3600
# Get help on available commands
omniagents --help
# Set logging level
omniagents --log-level DEBUG network launch config.json
The CLI is currently under development, with more commands planned for future releases. The configuration file should specify the network name, protocols, and other settings.
Example configuration file (config.json):
{
"name": "MyNetwork",
"protocols": {
"discovery": {},
"communication": {}
}
}
For more advanced usage, refer to the Python API examples above.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.4.0 | 15 Apr 2025 | 6 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:05 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:bee070d0746e027acd93700f14ee98837bb556c7686f83fdf1831fe1abbb9d74