// the find
AstrBotDevs/AstrBot
AI Agent Assistant & development framework that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. ✨
AstrBot is a Python chatbot framework that connects LLMs to a wide range of IM platforms — QQ, WeChat, Telegram, Discord, Slack, DingTalk, Feishu, and a dozen more. It ships a plugin system, knowledge base with hybrid retrieval, MCP support, and an agent sandbox for code execution. The primary audience is Chinese developers building bots on Chinese IM platforms, with Western platform support as a secondary concern.
The platform adapter coverage is real — 15+ officially maintained adapters is not just a feature list, there's actual code for each one, not thin shims. The knowledge base implementation is more serious than most projects in this space: it uses FAISS with a sparse retriever and rank fusion rather than naive embedding-only search. MCP (Model Context Protocol) support is built into the core agent loop, so tool calling integrates with the broader MCP ecosystem without a plugin wrapper. The agent sandbox design — isolating shell calls and code execution with session-level resource reuse — shows someone thought about the security model rather than just exposing subprocess.
The codebase has accumulated visible entropy: there are two files named `entites.py` and `entities.py` in `astrbot/core/provider/`, which is a typo that slipped into version control and signals that the review bar is loose. Supporting 20+ LLM services and 15+ platforms means the configuration surface is enormous — the WebUI manages this but there's no structured schema validation underneath, so bad config silently fails rather than erroring at startup. The community is overwhelmingly Chinese (14 full QQ groups, Chinese-first docs), so if you hit an edge case with a Western platform adapter, you're on your own; the English documentation trails the Chinese version. Deployment via `uv` explicitly blocks WebUI-triggered upgrades, so you get two upgrade paths with different capabilities and no clear guidance on which to use in production.