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 can control the agent behavior, we have a helper shell to you.
- Try it out:
curl "http://127.0.0.1:8000/agents/admin/chat?q=Hello"
In terminal, curl can not auto esacpe special chars, 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.
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 interfacesapp/
: Core application codecore/
: Core modulesservices/
: Servicesentrypoints/
: Entrypoints means the way to interact with the agentadmin/
: Admin logicconfig/
: Configurationsapi.py
: REST API serverautonomous.py
: Autonomous agent schedulertwitter.py
: Twitter listenertelegram.py
: Telegram listener
models/
: Database modelsskills/
: Skill implementationsskill_sets/
: Predefined skill set collectionsplugins/
: Reserved for Plugin implementationsutils/
: 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
skill/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.