Skip to content

Contributingยถ

Join our community of contributors

Help us build the most comprehensive AI agent framework with 400+ modules

Framework Statistics

  • 400+ Total Modules - Comprehensive coverage
  • 237 Enterprise Modules - Production-ready
  • 1036+ Tests - 66% coverage
  • 14 Enterprise Categories - Full enterprise support

Quick Navigationยถ

  • Report Bugs

    Found an issue? Let us know

    Report

  • Suggest Features

    Have an idea? Share it

    Suggest

  • Submit Code

    Contribute code changes

    Contribute

  • Improve Docs

    Enhance documentation

    Write

[![Contributors](https://img.shields.io/github/contributors/isathish/agenticaiframework)](https://github.com/isathish/agenticaiframework/graphs/contributors) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/isathish/agenticaiframework/pulls) [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/isathish/agenticaiframework/blob/main/LICENSE)

Welcome Contributors!ยถ

Thank you for your interest in contributing to AgenticAI Framework! This document provides guidelines and instructions for contributing to the project.

Table of Contentsยถ

Community Guidelinesยถ

We are committed to providing a welcoming and inclusive environment for all contributors. By participating in this project, you agree to:

  • Be respectful and professional in all interactions
  • Provide constructive feedback
  • Accept constructive criticism gracefully
  • Focus on what is best for the community
  • Show empathy towards other community members

Please report any unacceptable behavior to the maintainers.

Ways to Contributeยถ

Report Bugsยถ

Found a bug? Help us fix it:

  1. Check existing issues to avoid duplicates
  2. Use the bug report template
  3. Provide detailed information:
  4. Steps to reproduce
  5. Expected vs actual behavior
  6. Environment details
  7. Error messages/logs
  8. Code samples

Report a Bug โ†’

Suggest Featuresยถ

Have an idea? Share it:

  1. Check existing feature requests
  2. Use the feature request template
  3. Explain the use case
  4. Describe the proposed solution

Request a Feature โ†’

Improve Documentationยถ

Documentation is always welcome:

  • Fix typos or unclear explanations
  • Add examples and tutorials
  • Improve API documentation
  • Translate documentation

Submit Codeยถ

Contribute code improvements:

  • Fix bugs
  • Implement features
  • Optimize performance
  • Add tests

Write Testsยถ

Help improve test coverage:

  • Unit tests
  • Integration tests
  • End-to-end tests
  • Performance tests

Getting Startedยถ

Prerequisitesยถ

  • Python 3.10+ (3.13+ recommended)
  • Git
  • GitHub account
  • Text editor/IDE (VS Code, PyCharm, etc.)

Fork and Cloneยถ

  1. Fork the repository on GitHub
  2. Clone your fork:
Bash
git clone https://github.com/YOUR_USERNAME/agenticaiframework.git
cd agenticaiframework
  1. Add upstream remote:
Bash
git remote add upstream https://github.com/isathish/agenticaiframework.git

Development Setupยถ

1. Create Virtual Environmentยถ

Bash
1
2
3
4
5
6
7
# Using venv
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate

# Using conda
conda create -n agenticai python=3.11
conda activate agenticai

2. Install Dependenciesยถ

Bash
1
2
3
4
5
# Install in development mode with dev dependencies
pip install -e ".[dev]"

# Or install specific extras
pip install -e ".[dev,test,docs]"

3. Install Pre-commit Hooksยถ

Bash
1
2
3
4
5
6
7
8
# Install pre-commit
pip install pre-commit

# Install hooks
pre-commit install

# Run manually
pre-commit run --all-files

4. Verify Installationยถ

Bash
1
2
3
4
5
6
7
8
# Run tests
pytest

# Check code style
ruff check .

# Check types
mypy agenticaiframework

Making Changesยถ

1. Create a Branchยถ

Bash
# Sync with upstream
git fetch upstream
git checkout main
git merge upstream/main

# Create feature branch
git checkout -b feature/amazing-feature

# Or bugfix branch
git checkout -b fix/bug-description

Branch Naming Conventionยถ

  • feature/description - New features
  • fix/description - Bug fixes
  • docs/description - Documentation changes
  • test/description - Test additions/changes
  • refactor/description - Code refactoring
  • perf/description - Performance improvements

2. Make Your Changesยถ

  • Write clean, readable code
  • Follow coding standards
  • Add/update tests
  • Update documentation
  • Add docstrings

3. Commit Your Changesยถ

Follow Conventional Commits:

Bash
1
2
3
4
5
6
# Format: <type>(<scope>): <description>

git commit -m "feat(agents): add multi-agent collaboration"
git commit -m "fix(memory): resolve memory leak in cache"
git commit -m "docs(api): update API reference"
git commit -m "test(agents): add agent lifecycle tests"

Commit Types: - feat: New feature - fix: Bug fix - docs: Documentation - test: Tests - refactor: Code refactoring - perf: Performance improvement - chore: Maintenance

Pull Request Processยถ

1. Push Your Changesยถ

Bash
git push origin feature/amazing-feature

2. Create Pull Requestยถ

  1. Go to your fork on GitHub
  2. Click "Compare & pull request"
  3. Fill out the PR template
  4. Link related issues
  5. Request reviews

3. PR Template Checklistยถ

  • Code follows style guidelines
  • Self-review completed
  • Comments added for complex code
  • Documentation updated
  • Tests added/updated
  • All tests passing
  • No merge conflicts

4. Code Review Processยถ

  • Automated Checks: CI/CD runs tests, linting, type checking
  • Peer Review: At least one approval required
  • Maintainer Review: Final review by maintainers
  • Changes Requested: Address feedback and update PR

5. After Approvalยถ

  • Maintainer will merge your PR
  • Delete your feature branch
  • Sync your fork
Bash
1
2
3
git checkout main
git pull upstream main
git push origin main

Coding Standardsยถ

Python Style Guideยถ

Follow PEP 8 with these specifics:

Python
# Line length: 100 characters
# Indentation: 4 spaces
# Quotes: Double quotes for strings
# Import order: stdlib, third-party, local

# Good
def calculate_score(data: dict) -> float:
    """Calculate score from data.

    Args:
        data: Input data dictionary

    Returns:
        Calculated score
    """
    return sum(data.values()) / len(data)

# Bad
def calc(d): # No type hints, no docstring
    return sum(d.values())/len(d) # No spaces

Code Formattingยถ

We use automated formatters:

Bash
1
2
3
4
5
6
7
8
# Format code
ruff format .

# Check linting
ruff check .

# Fix auto-fixable issues
ruff check --fix .

Type Hintsยถ

Use type hints for all functions:

Python
1
2
3
4
5
6
7
8
9
from typing import List, Dict, Optional

def process_agents(
    agents: List[Agent],
    config: Dict[str, Any],
    timeout: Optional[int] = None
) -> Dict[str, Any]:
    """Process agents with given configuration."""
    ...

Docstringsยถ

Use Google-style docstrings:

Python
def execute_task(self, task: Task, agent_id: str) -> TaskResult:
    """Execute a task using specified agent.

    Args:
        task: The task to execute
        agent_id: ID of the agent to use

    Returns:
        Result of task execution

    Raises:
        AgentNotFoundError: If agent_id doesn't exist
        TaskExecutionError: If task execution fails

    Example:
        ```python
        result = manager.execute_task(task, "agent_001")
        logger.info(result.output)
        ```
    """
    ...

Testing Guidelinesยถ

Writing Testsยถ

Python
import pytest
from agenticaiframework.agents import Agent

class TestAgent:
    """Test agent functionality."""

    def test_agent_creation(self):
        """Test agent can be created successfully."""
        agent = Agent(name="test_agent", role="tester")

        assert agent.name == "test_agent"
        assert agent.role == "tester"
        assert agent.status == "initialized"

    def test_agent_execution(self):
        """Test agent can execute tasks."""
        agent = Agent(name="test_agent", role="tester")
        result = agent.execute_task(lambda: "success")

        assert result == "success"

    @pytest.mark.asyncio
    async def test_async_execution(self):
        """Test async task execution."""
        agent = Agent(name="test_agent", role="tester")
        result = await agent.execute_task_async(async_function)

        assert result is not None

Test Structureยถ

Text Only
tests/
โ”œโ”€โ”€ unit/ # Unit tests
โ”‚ โ”œโ”€โ”€ test_agents.py
โ”‚ โ”œโ”€โ”€ test_tasks.py
โ”‚ โ””โ”€โ”€ test_memory.py
โ”œโ”€โ”€ integration/ # Integration tests
โ”‚ โ”œโ”€โ”€ test_workflows.py
โ”‚ โ””โ”€โ”€ test_pipelines.py
โ”œโ”€โ”€ e2e/ # End-to-end tests
โ”‚ โ””โ”€โ”€ test_scenarios.py
โ”œโ”€โ”€ conftest.py # Pytest fixtures
โ””โ”€โ”€ __init__.py

Running Testsยถ

Bash
# Run all tests
pytest

# Run specific file
pytest tests/unit/test_agents.py

# Run specific test
pytest tests/unit/test_agents.py::TestAgent::test_agent_creation

# Run with coverage
pytest --cov=agenticaiframework --cov-report=html

# Run with markers
pytest -m "not slow"

# Verbose output
pytest -v

# Stop on first failure
pytest -x

Test Coverageยถ

Target: 80%+ coverage

Bash
1
2
3
4
5
6
# Generate coverage report
pytest --cov=agenticaiframework --cov-report=term-missing

# HTML report
pytest --cov=agenticaiframework --cov-report=html
open htmlcov/index.html

Documentationยถ

Code Documentationยถ

  • Docstrings: All public APIs
  • Type hints: All function signatures
  • Comments: Complex logic only
  • Examples: Usage examples in docstrings

User Documentationยถ

Located in docs/:

Text Only
1
2
3
4
5
6
7
docs/
โ”œโ”€โ”€ index.md # Home page
โ”œโ”€โ”€ quick-start.md # Getting started
โ”œโ”€โ”€ agents.md # Agent guide
โ”œโ”€โ”€ tasks.md # Task guide
โ”œโ”€โ”€ API_REFERENCE.md # API docs
โ””โ”€โ”€ examples/ # Examples

Building Documentationยถ

Bash
# Install docs dependencies
pip install -e ".[docs]"

# Build docs
mkdocs build

# Serve locally
mkdocs serve

# Visit http://localhost:8000

Documentation Styleยถ

  • Clear, concise writing
  • Code examples for concepts
  • Visual aids (diagrams, tables)
  • Links to related content
  • Beginner-friendly

Communityยถ

Communication Channelsยถ

Getting Helpยถ

  1. Search documentation
  2. Check existing issues/discussions
  3. Ask in discussions
  4. Open an issue if needed

Recognitionยถ

Contributors are recognized:

  • Recognition in our documentation and release notes
  • Mentioned in release notes
  • Featured in documentation
  • Hall of Fame for top contributors

Your First Contributionยถ

New to open source? Here's how to start:

  1. Find a good first issue: Look for good-first-issue label
  2. Comment on the issue: Let others know you're working on it
  3. Ask questions: Don't hesitate to ask for help
  4. Submit small PRs: Start with documentation or small fixes
  5. Learn and improve: Each contribution teaches something new

View Good First Issues โ†’

Checklistยถ

Before submitting your PR:

  • Code follows style guidelines
  • Type hints added
  • Docstrings added/updated
  • Tests added/updated
  • All tests passing locally
  • Documentation updated
  • CHANGELOG.md updated (if applicable)
  • Commit messages follow convention
  • Branch up to date with main

Thank You!ยถ

Every contribution, no matter how small, makes AgenticAI Framework better. Thank you for being part of our community!

Questions?ยถ

**Happy Contributing! ** **[Back to Top](#contributing-to-agenticai-framework)**