Thank you for your interest in contributing to the Agentic Design Patterns repository! This project aims to provide comprehensive, production-ready implementations of AI agent design patterns. We welcome contributions from developers of all skill levels.
- Code of Conduct
- Getting Started
- Types of Contributions
- Development Process
- Project Structure
- Coding Standards
- Testing
- Documentation
- Submitting Changes
- Recognition
This project follows a code of conduct to ensure a welcoming environment for all contributors. Please read and follow our Code of Conduct.
- Python 3.8 or higher
- Git
- A Gemini API key (for testing agent functionality)
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/your-username/Agentic-design-patterns-.git cd Agentic-design-patterns- - Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies for a specific project:
cd prompt_chaining/ # or any other pattern directory pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env # Edit .env and add your GEMINI_API_KEY
- Use the bug report template when creating issues
- Include detailed steps to reproduce
- Provide environment information and error logs
- Use the feature request template
- Clearly describe the problem and proposed solution
- Consider how it fits with existing patterns
- Improve existing documentation
- Add examples and tutorials
- Translate documentation to other languages
- Fix bugs
- Implement new features
- Refactor existing code
- Add tests
- Check the Issues page
- Look for issues labeled
good first issueorhelp wanted - Comment on the issue to indicate you're working on it
git checkout -b feature/your-feature-name
# or
git checkout -b bugfix/issue-number-description- Write clear, focused commits
- Test your changes thoroughly
- Follow the coding standards below
- Run existing tests
- Add new tests for new functionality
- Test manually with different scenarios
- Push your branch to your fork
- Create a pull request with a clear description
- Reference any related issues
Each pattern follows this consistent structure:
pattern_name/
├── core_implementation.py # Main implementation
├── example.py # Usage examples
├── README.md # Pattern documentation
├── requirements.txt # Dependencies
└── .env.example # Environment template
- Follow PEP 8 style guidelines
- Use type hints for function parameters and return values
- Write descriptive variable and function names
- Keep functions focused and under 50 lines when possible
# ✅ Good: Clear, descriptive names and type hints
def analyze_document(text: str, max_tokens: int = 1000) -> Dict[str, Any]:
"""Analyze document and extract key information."""
pass
# ❌ Avoid: Unclear names, no type hints
def process(t, mt=1000):
pass- Use specific exception types
- Provide meaningful error messages
- Handle edge cases gracefully
- Add docstrings to all public functions and classes
- Include parameter descriptions and return value information
- Provide usage examples in docstrings
Each project may have its own testing approach. Generally:
# Navigate to project directory
cd pattern_name/
# Install test dependencies if needed
pip install pytest
# Run tests
pytest- Write tests for new functionality
- Include both positive and negative test cases
- Test edge cases and error conditions
- Aim for good test coverage
Each pattern should have a comprehensive README including:
- Pattern description and use cases
- Installation instructions
- Usage examples
- Architecture diagrams
- API documentation
- Explain complex logic
- Document assumptions and limitations
- Reference related patterns or concepts
-
Update your branch with the latest changes from main:
git checkout main git pull upstream main git checkout your-branch git rebase main
-
Ensure your code passes all checks:
- Tests pass
- Code style is correct
- Documentation is updated
-
Create a pull request:
- Use a clear, descriptive title
- Fill out the pull request template completely
- Reference any related issues
- Add screenshots for UI changes
-
Respond to feedback:
- Address review comments promptly
- Make requested changes
- Keep the conversation going until approval
Follow conventional commit format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code style changesrefactor: Code refactoringtest: Adding testschore: Maintenance
Examples:
feat(prompt_chaining): add support for custom prompt templates
fix(routing): resolve memory leak in router handler
docs(multi_agent): update API documentation
Contributors will be:
- Listed in the repository contributors
- Mentioned in release notes for significant contributions
- Recognized in the project's acknowledgments
Thank you for contributing to the Agentic Design Patterns project! Your efforts help make AI agent development more accessible and robust. 🚀