Thank you for your interest in contributing to the Multi-Agent Framework! This document provides guidelines and instructions for contributors.
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the community
- Show empathy towards other community members
- Python 3.10 or higher
- Poetry or pip for dependency management
- Git
# Clone the repository
git clone https://github.com/yourusername/multi-agent.git
cd multi-agent
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
ruff check src/
black src/
# Run type checking
mypy src/multi-agent/
├── src/multi_agent/
│ ├── agent/ # Agent implementations
│ ├── cli/ # Command-line interface
│ ├── config/ # Configuration loading
│ ├── execution/ # Task execution engines
│ ├── models/ # Data models
│ ├── state/ # State management
│ ├── tools/ # MCP tool integration
│ ├── tracing/ # Tracing and metrics
│ └── utils/ # Utilities
├── tests/ # Test files
├── docs/ # Documentation
├── examples/ # Example configurations
└── specs/ # Feature specifications
- Create a branch from
master - Name your branch descriptively (e.g.,
feature/add-new-pattern) - Make your changes
- Write tests for new functionality
- Ensure all tests pass
- Submit a pull request
We use:
- Black for code formatting
- Ruff for linting
- mypy for type checking
- pytest for testing
Run all checks before submitting:
black src/
ruff check --fix src/
mypy src/
pytest- Add docstrings to all public functions and classes
- Use Google-style docstrings
- Update API reference for new APIs
- Add examples for new features
- Write unit tests for all new functionality
- Write integration tests for user-facing features
- Aim for >80% code coverage
- Use descriptive test names
- Update the CHANGELOG.md
- Ensure all tests pass
- Update documentation if needed
- Submit your PR with a clear description
- Respond to review feedback
For large features, please:
- Open an issue to discuss first
- Get consensus on the approach
- Create a specification in
specs/ - Implement following the specification
Feel free to open an issue for questions or discussions.