Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/crestalnetwork/intentkit
An open and fair framework for everyone to build AI agents equipped with powerful skills. Launch your agent, improve the world, your wallet, or both!
https://github.com/crestalnetwork/intentkit
ai ai-agent-framework intents launchpad python web3
Last synced: 1 day ago
JSON representation
An open and fair framework for everyone to build AI agents equipped with powerful skills. Launch your agent, improve the world, your wallet, or both!
- Host: GitHub
- URL: https://github.com/crestalnetwork/intentkit
- Owner: crestalnetwork
- License: mit
- Created: 2024-12-09T04:32:22.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2025-01-17T08:32:14.000Z (4 days ago)
- Last Synced: 2025-01-17T08:39:22.733Z (4 days ago)
- Topics: ai, ai-agent-framework, intents, launchpad, python, web3
- Language: Python
- Homepage:
- Size: 647 KB
- Stars: 106
- Watchers: 11
- Forks: 14
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# IntentKit
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.
## Alpha Warning
This project is currently in alpha stage and is not recommended for production use.
## Features
- 🤖 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)## Architecture
```
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](docs/architecture.md) section.
## Quick Start
### Docker (Recommended)
1. Create a new directory and navigate into it:
```bash
mkdir intentkit && cd intentkit
```2. Download the required files:
```bash
# 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
```3. Set up environment:
```bash
# Rename example.env to .env
mv example.env .env# Edit .env file and add your configuration
# Make sure to set OPENAI_API_KEY
```4. Start the services:
```bash
docker compose up
```5. Create your first Agent:
```bash
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](docs/create_agent.sh) to you.6. Try it out:
```bash
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.### Local Development
1. Clone the repository:
```bash
git clone https://github.com/crestalnetwork/intentkit.git
cd intentkit
```2. 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.
```bash
python3.12 -m venv .venv
source .venv/bin/activate
poetry install --with dev
```3. Configure your environment:
```bash
cp example.env .env
# Edit .env with your configuration
```4. Run the application:
```bash
# 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.
## Integrations
[Twitter Integration](docs/twitter.md)### Coinbase
[Coinbase Integration](docs/skills/cdp.md)## Configuration
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.
## Project Structure
- `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## Contributing
Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting a pull request.
### Contribute Skills
If you want to add a skill collection, follow these steps:
1. Create a new skill collection in the `skills/` directory
2. Implement the skill interface
3. Register the skill in `skill/YOUR_SKILL_COLLECTION/__init__.py`If you want to add a simple skill, follow these steps:
1. Create a new skill in the `skills/common/` directory
2. Register the skill in `skills/common/__init__.py`See the [Skill Development Guide](docs/contributing/skills.md) for more information.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.