We're excited that you're interested in contributing to the AIBTC AI Agent Crews! This document provides guidelines for contributing to make the process smooth and effective for everyone involved.
- Check if the issue has already been reported in the GitHub Issues.
- If you're unable to find an open issue addressing the problem, open a new one.
- Clearly describe the issue, including steps to reproduce when it is a bug.
- Open a new issue with a clear title and detailed description of the suggested enhancement.
- Provide any relevant examples or mock-ups if possible.
- Fork the repository and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure your code follows the existing style guidelines.
- Make sure your code lints.
- Issue a pull request!
-
Clone the repository:
git clone --recurse-submodules https://github.com/aibtcdev/ai-agent-crew.git -
Set up a virtual environment:
conda create -n ai-agent-crew python=3.11 conda activate ai-agent-crew -
Install dependencies:
pip install -r requirements.txt -
Copy
.env.exampleto.envand fill in your API keys and other configuration. -
Set up the agent-tools-ts submodule:
Follow the setup instructions in the
agent-tools-ts/README.md, excluding the.envinstructions which are handled in the top-levelai-agent-crewfiles.
aibtc-v1/app.py: Main Streamlit applicationaibtc-v1/crews/: AI agent crewsaibtc-v1/components/: Streamlit UI componentsaibtc-v1/utils/: Utility functions and classesagent-tools-ts/: Submodule for TypeScript blockchain tools
To add a new crew:
- Create a new Python file in the
aibtc-v1/crews/directory. - Define a new class that inherits from
AIBTC_Crewinaibtc-v1/utils/crews.py. - Implement the required methods:
setup_agents(),setup_tasks(), andrender_crew(). - Update the
aibtc-v1/utils/session.pyfile to include your new crew in thegenerate_crew_mapping()function.
- Follow PEP 8 for Python code style.
- Use type hints for function arguments and return values.
- Write docstrings for all functions, classes, and modules.
- Keep functions small and focused on a single task.
- Use meaningful variable and function names.
- Update the README.md if you change functionality.
- Document new features, commands, or significant changes.
- Keep code comments up-to-date.
- Use clear and meaningful commit messages.
- Start the commit message with a short summary (up to 50 characters).
- If necessary, add a detailed description after a blank line.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations, and container parameters.
- Submit a pull request that clearly describes the changes for maintainers to review.
If you have any questions about contributing, feel free to ask in the AIBTC Discord or reach out to us on Twitter @aibtcdev.
Thank you for your interest in improving AIBTC AI Agent Crew!