Thank you for your interest in contributing to the Omni Multi-Agent System! This document provides guidelines and information for contributors.
- Python 3.11+
- Node.js 18+
- Git
- Docker (optional but recommended)
-
Fork and Clone
git clone https://github.com/your-username/Omni-Multi-Agent.git cd Omni-Multi-Agent -
Set up Backend
cd backend python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Set up Frontend
cd frontend npm install -
Start Development Environment
# Terminal 1: Backend cd backend && uvicorn main:app --reload # Terminal 2: Frontend cd frontend && npm run dev
- Follow PEP 8 style guidelines
- Use type hints for all function parameters and return values
- Maximum line length: 88 characters (Black formatter)
- Use descriptive variable and function names
- Use ES6+ features
- Follow React best practices and hooks patterns
- Use meaningful component and variable names
- Prefer functional components over class components
-
Create Feature Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write clean, documented code
- Include tests for new functionality
- Update documentation as needed
-
Commit Changes
git add . git commit -m "feat: add your feature description"
-
Push and Create PR
git push origin feature/your-feature-name
We follow the Conventional Commits specification:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, missing semicolons, etc)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add persistent session management
fix: resolve message display bug in chat interface
docs: update installation instructions
refactor: improve agent routing logic
cd backend
python -m pytest test_memory.py -vcd frontend
npm test# Start all services
docker-compose up -d
# Run integration tests
npm run test:integration-
Create Agent Class
# backend/utils/agents/your_agent.py from .base_agent import BaseAgent from .memory_mixin import MemoryMixin class YourAgent(MemoryMixin, BaseAgent): def __init__(self): super().__init__() # Your initialization code
-
Register in Router
# backend/utils/agents/router_agent.py # Add your agent to the routing logic
-
Add Tests
# backend/tests/test_your_agent.py # Comprehensive test coverage
-
Create Endpoint
# backend/utils/api/endpoints.py @router.post("/your-endpoint") async def your_endpoint(request: YourRequest): # Implementation return YourResponse(...)
-
Add Frontend Service
// frontend/src/services/yourService.js export const yourApiCall = async (data) => { // API call implementation };
When reporting bugs, please include:
- Environment: OS, Python version, Node.js version
- Steps to Reproduce: Clear, numbered steps
- Expected Behavior: What should happen
- Actual Behavior: What actually happens
- Screenshots/Logs: If applicable
- Additional Context: Any other relevant information
Use the bug report template:
## Bug Description
Brief description of the bug
## Environment
- OS: [e.g., Windows 11, macOS 13, Ubuntu 22.04]
- Python: [e.g., 3.11.5]
- Node.js: [e.g., 18.17.0]
- Browser: [e.g., Chrome 118]
## Steps to Reproduce
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
## Expected Behavior
Clear description of what you expected to happen
## Actual Behavior
Clear description of what actually happened
## Screenshots
If applicable, add screenshots to help explain your problem
## Additional Context
Add any other context about the problem hereFor feature requests, please provide:
- Problem Statement: What problem does this solve?
- Proposed Solution: How should it work?
- Alternatives Considered: Other approaches you've thought about
- Additional Context: Any other relevant information
When contributing documentation:
- Use clear, concise language
- Include code examples where appropriate
- Update both inline code comments and external documentation
- Test all examples to ensure they work
- Automated Checks: All PRs must pass automated tests and linting
- Peer Review: At least one project maintainer will review your PR
- Discussion: Be open to feedback and suggestions
- Iteration: Make requested changes promptly
- Merge: Once approved, your PR will be merged
- Version Bumping: Follow semantic versioning (MAJOR.MINOR.PATCH)
- Changelog: Update CHANGELOG.md with new features and fixes
- Testing: Comprehensive testing in staging environment
- Tagging: Create git tags for releases
- Docker Images: Build and push updated Docker images
- Discord: Join our Discord server
- Discussions: GitHub Discussions
- Email: contact@omni-multi-agent.dev
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
By contributing to this project, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to the Omni Multi-Agent System! 🎉