Skip to main content
Thank you for your interest in contributing to the AgenticAI Core SDK! This document provides guidelines and instructions for contributing to the project.

Ways to Contribute

There are many ways to contribute to AgenticAI Core:
  • 🐛 Report Bugs - Help us identify and fix issues
  • Suggest Features - Share ideas for new functionality
  • 📝 Improve Documentation - Enhance guides, examples, and API docs
  • 💻 Submit Code - Fix bugs or implement new features
  • 🧪 Write Tests - Improve test coverage
  • 📖 Share Examples - Contribute real-world usage examples

Getting Started

1. Fork and Clone

2. Set Up Development Environment

3. Create a Branch

Development Workflow

Running Tests

Code Style

We use the following tools to maintain code quality:

Pre-commit Checks

Before committing, ensure:
  1. ✅ All tests pass
  2. ✅ Code is formatted with black
  3. ✅ Linting passes
  4. ✅ Type hints are added for new code
  5. ✅ Docstrings are added for public APIs

Documentation

When adding or modifying public APIs:
  1. Add Docstrings - Use Google/NumPy style
  2. Update API Docs - Add corresponding .md files in docs/api/
  3. Add Examples - Include usage examples in docstrings
  4. Update Guides - Update user guides if needed
Build and preview documentation:

Coding Standards

Python Style

  • Follow PEP 8 guidelines
  • Use type hints for function signatures
  • Maximum line length: 88 characters (black default)
  • Use meaningful variable and function names

Docstring Format

Use Google-style docstrings:
""" if param2 < 0: raise ValueError(“param2 must be non-negative”) return True
type(scope): subject body (optional) footer (optional)
feat(agent): add support for streaming responses fix(memory): resolve session cleanup issue docs(api): add examples for Tool.register decorator
—>

2. Push Changes

3. Create Pull Request

  1. Go to GitHub and create a Pull Request
  2. Fill out the PR template:
    • Description: What does this PR do?
    • Related Issue: Link to related issue(s)
    • Testing: How was this tested?
    • Breaking Changes: Any breaking changes?

4. Code Review

  • Address reviewer feedback
  • Keep the PR focused and small
  • Update documentation as needed
  • Ensure CI/CD checks pass

5. Merge

Once approved, your PR will be merged by a maintainer.

Reporting Bugs

Before Reporting

  1. Check if the bug has already been reported
  2. Try to reproduce with the latest version
  3. Gather relevant information

Bug Report Template

Suggesting Features

We welcome feature suggestions! Please:
  1. Check if similar features have been requested
  2. Describe the use case clearly
  3. Explain why this would benefit users
  4. Consider implementation complexity

Feature Request Template

Code of Conduct

Our Pledge

We are committed to providing a welcoming and inclusive environment for all contributors.

Our Standards

Positive behavior:
  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints
  • Gracefully accepting constructive criticism
  • Focusing on what’s best for the community
Unacceptable behavior:
  • Harassment, discrimination, or offensive comments
  • Trolling, insulting/derogatory comments
  • Public or private harassment
  • Publishing others’ private information

Enforcement

Instances of unacceptable behavior may be reported to Support.

Development Setup Details

Project Structure

Dependencies

Core dependencies:
  • pydantic>=2.0 - Data validation
  • typing-extensions - Type hints support
Development dependencies:
  • pytest - Testing framework
  • pytest-cov - Coverage reporting
  • black - Code formatter
  • ruff - Fast Python linter
  • mypy - Type checker
Documentation dependencies:
  • mkdocs - Documentation generator
  • mkdocs-material - Material theme
  • mkdocstrings[python] - API docs from docstrings

Running Specific Tests