A modular Python framework for creating and managing atomic agents that can be composed to perform complex tasks. This framework enables the development of specialized agents that can communicate with each other and be orchestrated to execute workflows.
agent-library/
├── agents/ # Individual agent implementations
│ ├── data-agent/ # Agent for data processing tasks
│ ├── search-agent/ # Agent for search operations
│ └── workflow-agent/ # Agent for workflow orchestration
├── core/ # Core framework components
│ ├── agent-base/ # Base classes and interfaces for agents
│ ├── adapters/ # Adapters for framework integration
│ ├── factory/ # Factory classes for agent creation
│ ├── messaging/ # Inter-agent communication system
│ └── orchestration/ # Agent orchestration and coordination
├── utils/ # Shared utilities
├── scripts/ # Build and test scripts
├── tests/ # Test infrastructure
├── examples/ # Example scripts
└── config/ # Configuration files
- Agents - Documentation for individual agent implementations
- Core Components - Documentation for the core framework components
- Utilities - Documentation for shared utilities
- Scripts - Documentation for build and test scripts
- Modular Agent Architecture: Create specialized agents for different tasks
- Asynchronous Communication: Agents communicate via an asynchronous message broker
- Workflow Orchestration: Define and execute complex workflows involving multiple agents
- Configuration-Driven: Configure agents and workflows using YAML or JSON
- Extensible: Easily add new agent types and capabilities
- Atomic Agents Integration: Fully leverages the BrainBlend-AI/atomic-agents framework
- Bidirectional Adapters: Seamlessly use atomic-agents and legacy agents together
- Agent Factory: Simplified agent creation with factory pattern
-
Install dependencies:
pip install -r requirements.txt
-
Run the tests:
python -m pytest tests/
-
Build the package:
python scripts/build.py
-
Run a sample workflow:
python scripts/run.py --config config/sample_config.yaml --workflow data_processing
To create a new agent, follow these steps:
- Create a new directory under
agents/
with your agent name - Implement the agent by inheriting from
BaseAgent
incore/agent-base/base_agent.py
- Override the
process
method to implement your agent's logic - Add tests in the
tests/
directory - Register the agent in your configuration file
Example:
# Using the agent factory
from core.factory.agent_factory import AgentFactory
# Create a factory
factory = AgentFactory()
# Create a search agent
search_agent = factory.create_agent("search", "my-search-agent")
# Or create a custom agent
from core.agent_base.base_agent import BaseAgent
class MyCustomAgent(BaseAgent):
async def process(self, input_data):
# Process the input data
result = self._process_data(input_data)
return result
MIT