Skip to content

Latest commit

 

History

History
96 lines (71 loc) · 4.85 KB

CONTRIBUTING.md

File metadata and controls

96 lines (71 loc) · 4.85 KB

Contributing

First of all, thank you for your interest in contributing to AgentStack! Even the smallest contributions help a ton.

Our vision is to build the defacto CLI for quickly spinning up an AI Agent project. We want to be the create-react-app of agents. Our inspiration also includes the oh-so-convenient Angular CLI.

Exclusive Contributor Sticker

AgentStack contributors all receive a free sticker pack including an exclusive holographic sticker only available to contributors to the project :)

Once your PR is merge, fill out this form and I'll send your sticker pack out ASAP! <3

How to Help

Grab an issue from the issues tab! Plenty are labelled "Good First Issue". Fork the repo and create a PR when ready!

The best place to engage in conversation about your contribution is in the Issue chat or on our Discord.

Setup

  1. Clone the repo git clone https://github.com/AgentOps-AI/AgentStack.git cd AgentStack
  2. Install agentstack as an edtiable project and set it up for development and testing pip install -e .[dev,test] This will install the CLI locally and in editable mode so you can use agentstack <command> to test your latest changes

Adding Tools

If you're reading this section, you probably have a product that AI agents can use as a tool. We're glad you're here!

Adding tools is easy once you understand the project structure. A few things need to be done for a tool to be considered completely supported:

  1. Modify agentstack/tools/tools.json
    • Add your tool and relevant information to this file as appropriate.
  2. Create a config for your tool
    • As an example, look at mem0.json
    • AgentStack uses this to know what code to insert where. Follow the structure to add your tool.
  3. Create your implementation for each framework
    • In agentstack/templates/<framework>/tools, you'll see other implementations of tools.
    • Build your tool implementation for that framework. This file will be inserted in the user's project.
    • The tools that are exported from this file should be listed in the tool's config json.
  4. Manually test your tool integration by running agentstack tools add <your_tool> and ensure it behaves as expected.

Before creating your PR

Be sure that you are opening a PR using a branch other than main on your fork. This enables us to pull your branch and make modifications to the PR with your permission that may be helpful.

Formatting

AgentStack uses Ruff formatter for consistent code formatting. To format your code, run:

pip install ruff
ruff format .

Type Checking

AgentStack uses MyPy for type checking. To check types, run:

mypy agentstack

Pre-Commit Hooks

Ruff and MyPy can be run as pre-commit hooks. To enable these hooks, run:

pre-commit install

Tests

CLI tests are a bit hacky, so we are not tracking coverage. That said, some testing is required for any new functionality added by a PR.

Tests MUST pass to have your PR merged. We will not allow main to be in a failing state, so if your tests are failing, this is your problem to fix.

Run tests locally

Install the testing requirements

pip install 'agentstack[test]'

Then run tests in all supported python versions with

tox

Need Help?

If you're reading this, we're very thankful you wanted to contribute! I understand it can be a little overwhelming to get up to speed on a project like this and we are here to help!

Open a draft PR

While we can't promise to write code for you, if you're stuck or need advice/help, open a draft PR and explain what you were trying to build and where you're stuck! Chances are, one of us have the context needed to help you get unstuck :)

Chat on our Discord

We have an active Discord server with contributors and AgentStack users! There is a channel just for contributors on there. Feel free to drop a message explaining what you're trying to build and why you're stuck. Someone from our team should reply soon!

Thank You!

The team behind AgentStack believe that the barrier to entry for building agents is far too high right now! We believe that this technology can be streamlined and made more accessible. If you're here, you likely feel the same! Any contribution is appreciated.

If you're looking for work, we are always open to hiring passionate engineers of all skill levels! While closing issues cannot guarantee an offer, we've found that engineers who contribute to our open source repo are some of the best we could ever hope to find via recruiters! Be active in the community and let us know you're interested in joining the team!