Thank you for your interest in contributing to DynaBots!
- Fork the repository and clone your fork
- Install dependencies:
cd dynabots pip install -r requirements.txt - Run tests to ensure everything works:
pytest
- We use Ruff for linting and formatting
- Run
ruff check .before committing - Run
ruff format .to auto-format code
- Use type hints for all function signatures
- Use
mypyfor static type checking
- Use clear, descriptive commit messages
- Format:
<type>: <description> - Types:
feat,fix,docs,refactor,test,chore
Example:
feat: add parallel execution support to orchestrator
fix: resolve race condition in DAG builder
docs: update README with benchmark results
- Create a new adapter in
adapters/ - Define tools in
tools/ - Add tests in
tests/ - Update documentation
Example agent structure:
from adapters.zeroclaw_adapter import MockZeroClawAdapter
agents["NewAgent"] = MockZeroClawAdapter(
name="NewAgent",
description="What this agent does",
capabilities=["capability1", "capability2"],
tools=[...],
)Tools follow a simple schema:
from dataclasses import dataclass
@dataclass
class Tool:
name: str
description: str
parameters: dict = None# Heuristic mode (no API keys)
python run_benchmark.py
# LLM mode (requires ANTHROPIC_API_KEY)
python run_benchmark.py --llm
# Specific complexity
python run_benchmark.py --complexity complex --llm -v- Create a feature branch:
git checkout -b feat/your-feature - Make your changes
- Run tests:
pytest - Run linting:
ruff check . - Push and create a PR
Open an issue or start a discussion on GitHub.