IntentKit is an autonomous agent framework that enables the creation and management of AI agents with various capabilities including blockchain interactions, social media management, and custom skill integration.
This project is currently in alpha stage and is not recommended for production use.
- π€ Multiple Agent Support
- π Autonomous Agent Management
- π Blockchain Integration (EVM for now, will add more)
- π¦ Social Media Integration (Twitter, Telegram for now, will add more)
- π οΈ Extensible Skill System
- π Extensible Plugin System (WIP)
                                                                                                       
                                 Entrypoints                                                           
                       β                             β                                                 
                       β   Twitter/Telegram & more   β                                                 
                       ββββββββββββββββ¬βββββββββββββββ                                                 
                                      β                                                                
  Storage:  βββββ                     β                      βββββ Skills:                             
                β                     β                      β                                         
  Agent Config  β     βββββββββββββββββΌβββββββββββββββββ     β  Chain Integration (EVM,solana,etc...)  
                β     β                                β     β                                         
  Credentials   β     β                                β     β  Wallet Management                      
                β     β           The  Agent           β     β                                         
  Personality   β     β                                β     β  On-Chain Actions                       
                β     β                                β     β                                         
  Memory        β     β      Powered by LangGraph      β     β  Internet Search                        
                β     β                                β     β                                         
  Skill State   β     ββββββββββββββββββββββββββββββββββ     β  Image Processing                       
            βββββ                                            βββββ                                     
                                                                                                       
                                                                More and More...                       
                         ββββββββββββββββββββββββββββ                                                  
                         β                          β                                                  
                         β  Agent Config & Memory   β                                                  
                         β                          β                                                  
                         ββββββββββββββββββββββββββββ                                                  
                                                                                                       
The architecture is a simplified view, and more details can be found in the Architecture section.
- Create a new directory and navigate into it:
mkdir intentkit && cd intentkit- Download the required files:
# Download docker-compose.yml
curl -O https://raw.githubusercontent.com/crestalnetwork/intentkit/main/docker-compose.yml
# Download example environment file
curl -O https://raw.githubusercontent.com/crestalnetwork/intentkit/main/example.env- Set up environment:
# Rename example.env to .env
mv example.env .env
# Edit .env file and add your configuration
# Make sure to set OPENAI_API_KEY- Start the services:
docker compose up- Create your first Agent:
curl -X POST http://127.0.0.1:8000/agents \
     -H "Content-Type: application/json" \
     -d '{
         "id": "admin",
         "name": "Admin",
         "prompt": "You are an autonomous AI agent. Respond to user queries."
     }'There are many fields that can control the agent's behavior, we have provided a helper shell for you.
- Try it out:
curl "http://127.0.0.1:8000/admin/chat?q=Hello"In terminal, curl cannot auto escape special characters, so you can use browser to test. Just copy the URL to your browser, replace "Hello" with your words.
- Clone the repository:
git clone https://github.com/crestalnetwork/intentkit.git
cd intentkit- Set up your environment:
Python 3.10-3.12 are supported versions, and it's recommended to use 3.12.
If you haven't installed poetry, please install it first. We recommend manually creating a venv; otherwise, the venv created automatically by Poetry may not meet your needs.
python3.12 -m venv .venv
source .venv/bin/activate
poetry install --with dev- Configure your environment:
cp example.env .env
# Edit .env with your configuration- Run the application:
# Run the API server in development mode
uvicorn app.api:app --reload
# Run the autonomous agent scheduler
python -m app.autonomous"Create Agent" and "Try it out" refer to the Docker section.
For now, we only support any model from OpenAI and DeepSeek.
We will support more models in the future.
The application can be configured using environment variables or AWS Secrets Manager. Key configuration options:
- ENV: Environment (local or others)
- DB_*: PostgreSQL Database configuration (Required)
- OPENAI_API_KEY: OpenAI API key for agent interactions (Required)
- CDP_*: Coinbase Developer Platform configuration (Optional)
See example.env for all available options.
- abstracts/: Abstract classes and interfaces
- app/: Core application code- core/: Core modules
- services/: Services
- entrypoints/: Entrypoints means the way to interact with the agent
- admin/: Admin logic
- config/: Configurations
- api.py: REST API server
- autonomous.py: Autonomous agent scheduler
- twitter.py: Twitter listener
- telegram.py: Telegram listener
 
- models/: Database models
- skills/: Skill implementations
- skill_sets/: Predefined skill set collections
- plugins/: Reserved for Plugin implementations
- utils/: Utility functions
Contributions are welcome! Please read our Contributing Guidelines before submitting a pull request.
If you want to add a skill collection, follow these steps:
- Create a new skill collection in the skills/directory
- Implement the skill interface
- Register the skill in skills/YOUR_SKILL_COLLECTION/__init__.py
If you want to add a simple skill, follow these steps:
- Create a new skill in the skills/common/directory
- Register the skill in skills/common/__init__.py
See the Skill Development Guide for more information.
This project is licensed under the MIT License - see the LICENSE file for details.