This guide provides instructions for developers who want to contribute to the Atomic Agents project. It covers the project structure, setup, development workflow, and best practices.
Atomic Agents uses a monorepo structure, which means multiple related projects are managed in a single repository. The main components are:
atomic-agents/
: The core Atomic Agents libraryatomic-assembler/
: The CLI tool for managing Atomic Agents componentsatomic-examples/
: Example projects showcasing Atomic Agents usageatomic-forge/
: A collection of tools that can be used with Atomic Agents
- Python 3.11 or higher
- Poetry (for dependency management)
- Git
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/BrainBlend-AI/atomic-agents.git cd atomic-agents
- Install dependencies using Poetry:
poetry install
- Activate the virtual environment:
poetry shell
-
Create a new branch for your feature or bugfix:
git checkout -b feature-branch
-
Make your changes in the appropriate project directory.
-
Format your code using Black:
black atomic_agents atomic_assembler
-
Lint your code using Flake8:
flake8 atomic_agents atomic_assembler
-
Run the tests:
pytest --cov atomic_agents
-
If you've added new functionality, make sure to add appropriate tests.
-
Commit your changes:
git commit -m 'Add some feature'
-
Push to your fork:
git push origin feature-branch
-
Open a pull request on GitHub.
- Follow PEP 8 guidelines for Python code style.
- Use type hints wherever possible.
- Write clear, concise docstrings for all public modules, functions, classes, and methods.
- Keep functions and methods small and focused on a single responsibility.
- Use meaningful variable and function names.
- Write unit tests for all new functionality.
- Make sure to get 100% test coverage for all new functionality.
- Run the test suite before submitting a pull request:
pytest --cov atomic_agents
- To view a detailed coverage report:
This will generate an HTML report in the
coverage html
htmlcov/
directory.
- Update the README.md file if you've added new features or changed existing functionality.
- If you've added new modules or significant features, consider updating the API documentation.
- Create a pull request with a clear title and description.
- Link any relevant issues in the pull request description.
- Make sure all tests pass and there are no linting errors.
- Be responsive to code review feedback and make necessary changes.
If you have any questions or need support while developing, please open an issue on GitHub or reach out to the maintainers.
Thank you for contributing to Atomic Agents!