Guard against cases where message chain is None during pipeline execution. This change enhances error-resilience for logging and processing message chains. - Updated AstrMessageEvent._outline_chain to return an empty string when input chain is None - Updated AstrMessageEvent.set_result to ensure result.chain is always at least an empty list This prevents TypeError when result.chain or chain is unexpectedly None, improving pipeline stability when handling external plugins or corner cases. Co-authored-by: engine-labs-app[bot] <140088366+engine-labs-app[bot]@users.noreply.github.com> Co-authored-by: cto-new[bot] <140088366+cto-new[bot]@users.noreply.github.com>
AstrBot is a loosely coupled, asynchronous chatbot and development framework that supports multi-platform deployment, featuring an easy-to-use plugin system and comprehensive Large Language Model (LLM) integration capabilities.
✨ Key Features
- LLM Conversations - Supports various LLMs including OpenAI API, Google Gemini, Llama, Deepseek, ChatGLM, etc. Enables local model deployment via Ollama/LLMTuner. Features multi-turn dialogues, personality contexts, multimodal capabilities (image understanding), and speech-to-text (Whisper).
- Multi-platform Integration - Supports QQ (OneBot), QQ Channels, WeChat (Gewechat), Feishu, and Telegram. Planned support for DingTalk, Discord, WhatsApp, and Xiaomi Smart Speakers. Includes rate limiting, whitelisting, keyword filtering, and Baidu content moderation.
- Agent Capabilities - Native support for code execution, natural language TODO lists, web search. Integrates with Dify Platform for easy access to Dify assistants/knowledge bases/workflows.
- Plugin System - Optimized plugin mechanism with minimal development effort. Supports multiple installed plugins.
- Web Dashboard - Visual configuration management, plugin controls, logging, and WebChat interface for direct LLM interaction.
- High Stability & Modularity - Event bus and pipeline architecture ensures high modularization and loose coupling.
Tip
Dashboard Demo: https://demo.astrbot.app/
Username:astrbot, Password:astrbot(LLM not configured for chat page)
✨ Deployment
Docker Deployment
See docs: Deploy with Docker
Windows Installer
Requires Python (>3.10). See docs: Windows Installer Guide
Replit Deployment
CasaOS Deployment
Community-contributed method.
See docs: CasaOS Deployment
Manual Deployment
See docs: Source Code Deployment
⚡ Platform Support
| Platform | Status | Details | Message Types |
|---|---|---|---|
| QQ (Official Bot) | ✔ | Private/Group chats | Text, Images |
| QQ (OneBot) | ✔ | Private/Group chats | Text, Images, Voice |
| WeChat (Personal) | ✔ | Private/Group chats | Text, Images, Voice |
| Telegram | ✔ | Private/Group chats | Text, Images |
| WeChat Work | ✔ | Private chats | Text, Images, Voice |
| Feishu | ✔ | Group chats | Text, Images |
| WeChat Open Platform | 🚧 | Planned | - |
| Discord | 🚧 | Planned | - |
| 🚧 | Planned | - | |
| Xiaomi Speakers | 🚧 | Planned | - |
Provider Support Status
| Name | Support | Type | Notes |
|---|---|---|---|
| OpenAI API | ✔ | Text Generation | Supports all OpenAI API-compatible services including DeepSeek, Google Gemini, GLM, Moonshot, Alibaba Cloud Bailian, Silicon Flow, xAI, etc. |
| Claude API | ✔ | Text Generation | |
| Google Gemini API | ✔ | Text Generation | |
| Dify | ✔ | LLMOps | |
| DashScope (Alibaba Cloud) | ✔ | LLMOps | |
| Ollama | ✔ | Model Loader | Local deployment for open-source LLMs (DeepSeek, Llama, etc.) |
| LM Studio | ✔ | Model Loader | Local deployment for open-source LLMs (DeepSeek, Llama, etc.) |
| LLMTuner | ✔ | Model Loader | Local loading of fine-tuned models (e.g. LoRA) |
| OneAPI | ✔ | LLM Distribution | |
| Whisper | ✔ | Speech-to-Text | Supports API and local deployment |
| SenseVoice | ✔ | Speech-to-Text | Local deployment |
| OpenAI TTS API | ✔ | Text-to-Speech | |
| Fishaudio | ✔ | Text-to-Speech | Project involving GPT-Sovits author |
🦌 Roadmap
Tip
Suggestions welcome via Issues <3
- Ensure feature parity across all platform adapters
- Optimize plugin APIs
- Add default TTS services (e.g., GPT-Sovits)
- Enhance chat features with persistent memory
- i18n Planning
❤️ Contributions
All Issues/PRs welcome! Simply submit your changes to this project :)
For major features, please discuss via Issues first.
🌟 Support
✨ Demos
Note
Code executor file I/O currently tested with Napcat(QQ)/Lagrange(QQ)
✨ Docker-based Sandboxed Code Executor (Beta) ✨
✨ Multimodal Input, Web Search, Text-to-Image ✨
✨ Natural Language TODO Lists ✨
✨ Plugin System Showcase ✨
✨ Web Dashboard ✨
✨ Built-in Web Chat Interface ✨
⭐ Star History
Tip
If this project helps you, please give it a star <3
Disclaimer
- Licensed under
AGPL-v3. - WeChat integration uses Gewechat. Use at your own risk with non-critical accounts.
- Users must comply with local laws and regulations.
私は、高性能ですから!
