Skip to main content

Contributing to AgentArea

Thank you for your interest in contributing to AgentArea! This guide will help you get started with contributing to our open-source AI agents platform.

πŸš€ Quick Start for Contributors

1

Fork & Clone

# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/agentarea.git
cd agentarea
2

Set Up Development Environment

# Start the development environment
make up-dev

# Verify everything is working
curl http://localhost:8000/health
3

Create a Branch

# Create a feature branch
git checkout -b feature/your-feature-name
4

Make Your Changes

Follow our coding standards and add tests for your changes

πŸ“‹ Ways to Contribute

Code Contributions

  • Bug fixes and new features
  • Performance improvements
  • Documentation updates
  • Test coverage improvements

Community Contributions

  • Bug reports and feature requests
  • Documentation improvements
  • Community support and discussions
  • Translation and localization

πŸ› Reporting Issues

Bug Reports

When reporting bugs, please include:

Feature Requests

For feature requests, please describe:
  • Use case: What problem does this solve?
  • Proposed solution: How should it work?
  • Alternatives: What other approaches have you considered?
  • Impact: How would this benefit the community?

πŸ’» Development Guidelines

Code Style

# Use ruff for formatting
uv run ruff format

# Use ruff for linting and import sorting
uv run ruff check --fix

# Use pyright for type checking
uv run pyright

# Follow PEP 8 and use descriptive names
def create_agent_instance(agent_config: AgentConfig) -> Agent:
    """Create a new agent instance with the given configuration."""
    pass

Testing

Unit Tests

  • Write tests for all new functionality
  • Maintain >80% code coverage
  • Use descriptive test names
  • Mock external dependencies

Integration Tests

  • Test API endpoints end-to-end
  • Test agent communication flows
  • Test MCP server interactions
  • Use test fixtures and factories
# Run all Python tests
make agentarea-platform-test
# or
cd agentarea-platform && uv run pytest

# Run specific test suites
cd agentarea-platform && uv run pytest tests/unit/
cd agentarea-platform && uv run pytest tests/integration/
npm test # Frontend tests

# Run Go tests
make test-go
# or
cd agentarea-mcp-manager && go test ./...

Documentation

  • Code comments: Explain complex logic and business rules
  • API documentation: Update OpenAPI specs for API changes
  • User documentation: Update guides when adding user-facing features
  • README updates: Keep installation and setup instructions current

πŸ”„ Pull Request Process

Before Submitting

PR Template

## Description
Brief description of the changes

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update

## Testing
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing completed

## Screenshots (if applicable)
Add screenshots for UI changes

## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] Tests added for new functionality

Review Process

  1. Automated checks: CI/CD pipeline runs tests and linting
  2. Code review: Maintainer reviews code and provides feedback
  3. Iteration: Address feedback and update PR
  4. Approval: Maintainer approves and merges

πŸ—οΈ Architecture Guidelines

Project Structure

agentarea/
β”œβ”€β”€ agentarea-platform/     # Python backend (FastAPI + Temporal)
β”‚   β”œβ”€β”€ apps/               # API, worker, CLI apps
β”‚   └── libs/               # Domain libraries (uv workspace)
β”œβ”€β”€ agentarea-webapp/       # Next.js frontend + packages
β”œβ”€β”€ agentarea-mcp-manager/  # Go MCP server orchestration
β”œβ”€β”€ agentarea-cli/          # Node.js CLI (Ink/React)
β”œβ”€β”€ charts/                 # Helm charts
β”œβ”€β”€ docs/                   # Mintlify documentation
└── scripts/                # Build/deploy utilities

Design Principles

Modularity

  • Loosely coupled components
  • Clear interfaces and contracts
  • Plugin-based architecture
  • Dependency injection

Scalability

  • Horizontal scaling support
  • Async/await patterns
  • Efficient resource usage
  • Caching strategies

πŸš€ Release Process

We follow Semantic Versioning. Releases use a build-once / promote-on-tag model:
  1. Actions β†’ β€œPrepare Release” (patch/minor/major) β€” opens a release PR that bumps VERSION.
  2. Review and merge the PR. ci.yml builds immutable <version>-<sha> Docker images.
  3. Locally: ./scripts/release.sh β€” runs pre-flight checks, creates and pushes vX.Y.Z tag.
  4. The tag push triggers retag of the pre-built images to <version>, <maj.min>, <maj>, latest, creates the GitHub Release, and publishes the Helm chart. No rebuild.
See VERSIONING.md for the full process, tag semantics, invariants, and troubleshooting.

🀝 Community Guidelines

Code of Conduct

We follow the Contributor Covenant:
  • Be respectful and inclusive
  • Welcome newcomers and help them learn
  • Provide constructive feedback
  • Focus on what’s best for the community

Communication Channels

GitHub Issues

Bug reports, feature requests, and project discussions

GitHub Discussions

Community discussions, support, and collaboration

GitHub Discussions

Design discussions, Q&A, and community announcements

πŸŽ“ Learning Resources

For New Contributors

Advanced Topics

πŸ“ž Getting Help

Stuck on something? Don’t hesitate to ask for help:
  • GitHub Issues: For bug reports and feature requests
  • GitHub Discussions: For community support and design questions
  • Documentation: Check our comprehensive guides and API reference
We’re here to help you succeed in contributing to AgentArea! πŸš€

Thank you for contributing to AgentArea and helping us build the future of AI agent platforms! πŸ€–βœ¨