Skip to content

Latest commit

 

History

History
104 lines (71 loc) · 5.35 KB

CONTRIBUTING.md

File metadata and controls

104 lines (71 loc) · 5.35 KB

AgentKit Contributing Guide

Thank you for your interest in contributing to AgentKit! We welcome all contributions, no matter how big or small.

Repository Structure

The AgentKit repository is organized as two monorepos, one for Python and one for TypeScript. The TypeScript side is organized as a multi-package workspace and is managed with Turborepo, while the Python side is simply a collection of Python packages. A Python package is a single subfolder with a pyproject.toml file, along with related code and files that are published together to PyPI, whereas a TypeScript package is a single subfolder with a package.json and related code that is published to NPM. For example, the typescript/agentkit subfolder is a TypeScript package, and the python/coinbase-agentkit subfolder is a Python package.

Note that not all AgentKit packages have both Python and TypeScript implementations. This is okay, and we expect some level of drift between the languages. If you'd like to add a TypeScript variant of a package that only has a Python variant (or vice versa), that would be a great and welcome contribution!

See this section for tips on developing in our monorepo: Monorepo Development Tips

Here's a high-level overview of the repository structure:

agentkit/
├── typescript/
│   ├── agentkit/
│   ├── create-onchain-agent/
│   ├── framework-extensions/
│   |   └── langchain/
│   └── examples/
│       ├── langchain-cdp-chatbot/
│       ├── langchain-farcaster-chatbot/
│       └── langchain-privy-chatbot/
│       └── langchain-solana-chatbot/
│       └── langchain-twitter-chatbot/
├── python/
│   ├── coinbase-agentkit/
│   ├── create-onchain-agent/
│   ├── framework-extensions/
│   │   └── langchain/
│   └── examples/
│       ├── langchain-cdp-chatbot/
│       └── langchain-twitter-chatbot/

Language-Specific Guides

For an in-depth guide on how to set up your developer environment and add an agentic action, see the following language-specific guides:

Contributing Workflow

  1. Optional: Start with an Issue

Whether you are reporting a bug or requesting a new feature, it's always best to check if someone else has already opened an issue for it! If the bug or feature is small and you'd like to take a crack at it, go ahead and skip this step.

  1. Fork the Repository

Fork the repository by clicking the "Fork" button in the top right corner of the repository page. This will create a copy of the repository in your GitHub account. Then, clone your forked repository to your local machine and create a branch for your changes.

  1. Development Workflow

These are the high level steps to contribute changes:

  • Setup your development environment
  • Implement your change
  • Test your change manually, and include unit tests if applicable
  • Write docs for your change
  • Update the changelog

These steps are highly dependent on the language you're working in, so check out the language-specific guides for the language you're working in.

  1. Pull Request Process

Once you have your changes ready, there are a few more steps to open a PR and get it merged:

  • Fill out the PR template completely with as much detail as possible
    • Ideally, include screenshots or videos of the changes in action
  • Link related issues, if any
  • Ensure all CI checks are passing
  1. PR Review Expectations

Once your PR is open, you can expect an initial response acknowledging receipt of the PR within 1 day, and an initial review within 1 day from a maintainer assigned to your PR. Once all comments are addressed and a maintainer has approved the PR, it will be merged by the maintainer and included in the next release.

Current list of maintainers:

Getting Help

If you're stuck, there are a few ways to get help:

  • Search existing issues
  • Reach out to the team in our Discord community
  • Create a new issue

Thank you for contributing to AgentKit!

Monorepo Development Tips

Here are some common issues you might run into when developing in our monorepo and how to resolve them:

Issue Resolution
Python imports are not resolving in VSCode / Cursor Try opening the package folder in a new window. For example, cd python/coinbase-agentkit and then code . or cursor .