mirror of
https://github.com/moeru-ai/airi.git
synced 2026-05-17 04:20:26 +00:00
| .. | ||
| data | ||
| docs | ||
| drizzle | ||
| src | ||
| .env | ||
| .gitignore | ||
| drizzle.config.ts | ||
| package.json | ||
| README.md | ||
| todolist.md | ||
| tsconfig.json | ||
AIRI Satori Bot
⚠️ Disclaimer: This is a submodule of AIRI. The
corepart of this satori bot is merely a temporary solution. We will eventually delete it and integrate with AIRI's Core once the main framework is stable.
A STANDALONE, event-driven AI agent built on the Satori Protocol. It connects to multiple chat platforms (QQ, Telegram, Discord, Lark) via a Koishi bridge, featuring an autonomous thought loop.
🏗 Architecture & Internals (Provisional)
Important: This module currently implements a self-contained "Mini-Core" (src/core/) to operate independently. This is NOT the final architecture of AIRI.
- Temporary Logic: The Event Loop, Scheduler, and Planner logic located in
src/core/are placeholders. They simulate the behavior of the future AIRI Core. - Retained Components: The Dispatcher and Database will be retained. They will be exposed as tool-like modules to the AIRI Core for action execution and state persistence.
- Future Migration: Once the main AIRI Core is ready, the
src/core/directory (specifically the loop/planning logic) will be removed. This module will then be refactored to strictly function as an Adapter (Satori Protocol handling) and Capability Provider (Actions), delegating the cognitive loop to the main AIRI process.
For the current standalone version, please refer to these documents:
- HANDLER.md: Explains the current Event-to-Action Flow (Queue -> Scheduler -> LLM).
- PERSISTENCE.md: Details the current Memory-First state management strategy specific to this temporary core.
Key Code Paths:
- Loop & Logic (Temporary):
src/core/ - Adapter (Permanent):
src/adapter/satori/ - Capabilities (Permanent):
src/capabilities/
Prerequisites
- Node.js >= 18.0.0
- pnpm >= 8.0.0
- Koishi Instance: Running the
server-satoriplugin. - LLM Provider: OpenAI compatible API (Ollama, vLLM, DeepSeek, etc.).
Quick Start
- Install Dependencies
pnpm install
- Configure Environment Copy the example config and edit it:
cp .env .env.local
Key Variables:
# Satori Configuration
SATORI_WS_URL=ws://localhost:5140/satori/v1/events
SATORI_API_BASE_URL=http://localhost:5140/satori/v1
SATORI_TOKEN= # Optional: Leave empty if auth is disabled in Koishi
# LLM (OpenAI Compatible)
LLM_API_KEY=your_api_key_here
LLM_API_BASE_URL=https://api.openai.com/v1
LLM_MODEL=gpt-4
LLM_RESPONSE_LANGUAGE=English
LLM_OLLAMA_DISABLE_THINK=false
- Run
# Development (Hot-reload)
pnpm --filter @proj-airi/satori-bot dev
# Production
pnpm --filter @proj-airi/satori-bot start
Key Locations
- Persona & System Prompts:
src/core/planner/prompts/*.velin.md - Database (PGlite):
data/pglite-db(See PERSISTENCE.md for architecture) - Action Logic:
src/capabilities/actions/