Skip to main content

AstrBot 调研笔记

本文为 AstrBot 开源项目的调研笔记。AstrBot 是中文社区最活跃的多平台 LLM 聊天机器人框架之一,以"一站式 Agent 聊天机器人平台"为定位,支持 15+ 消息平台接入、海量插件生态和完整的 Web 管理面板。

开源地址:https://github.com/AstrBotDevs/AstrBot

官方文档:https://docs.astrbot.app

当前版本:v4.24.x(2026 年 5 月),4600+ commits

这篇文章说了什么​

AstrBot 是一个用 Python 编写的一站式多平台 LLM 聊天机器人及开发框架。它的核心定位是:让任何人都能快速搭建一个能接入 QQ、微信、飞书、Telegram、Discord 等 15+ 消息平台的 AI Agent。

它最大的特色有三个:

  1. 插件生态极其丰富——社区贡献了 1000+ 个插件,通过 Web 管理面板一键安装。从天气查询、翻译、游戏到工作流自动化,几乎没有找不到的插件。这种插件生态在国内开源项目里非常罕见。

  2. 以 Chatbot 为入口的 Agent 平台——表面上是个聊天机器人,实际上内置了 Agent 沙箱(代码执行 + Shell)、MCP 协议集成、知识库(RAG)、自动上下文压缩、人格设定等完整的 Agent 能力。它还对接了 Dify、阿里云百炼、Coze 等外部 Agent 平台。

  3. 部署方式极其友好——uv tool install astrbot 一行命令就能跑起来,还有 Docker、Windows/Mac 桌面启动器、宝塔面板、CasaOS、雨云一键部署等十几种部署方式。

从项目数据来看:4600+ commits、1000+ 插件、15+ 消息平台、版本号已经到 v4.24,迭代速度和社区活跃度都非常惊人。

观后感​

  • AstrBot 证明了插件生态 + 低门槛部署是开源项目成功的关键公式。1000+ 插件的网络效应让新用户愿意来、老用户离不开
  • 它是少有的"国内 IM 生态全覆盖"的 Agent 框架——QQ、微信(个人号/企业微信/公众号)、飞书、钉钉全部支持,这在海外框架里不可能做到
  • 事件总线 + 流水线架构是高频消息场景下的成熟选择,松耦合让多平台适配变得简单
  • MCP 协议集成 + Agent 沙箱 + 知识库 + Dify 对接——AstrBot 正在从"聊天机器人"升级为"Agent 运行时"
  • v3.6.0 规划的长短期记忆 + 情绪控制模型如果做出来,角色扮演赛道会有质的飞跃
  • AGPL-3.0 许可证对于商用项目需要注意合规
  • 插件隔离 RFC(MCP 风格进程隔离)说明团队在认真解决规模化问题

一、项目定位与核心价值​

1.1 定位​

AstrBot 的定位经历了从"聊天机器人框架"到"一站式 Agent 聊天机器人平台"的演进:

  • v1-v3:多平台 LLM 聊天机器人,核心是"让 LLM 接入 IM"
  • v4:Agent 平台化——加入沙箱、MCP、知识库、Skills、子 Agent 编排、WebUI
  • v3.6.0(规划中):加入长短期记忆模型 + 情绪控制模型,面向角色扮演和情感陪伴场景

一句话概括现在的 AstrBot:用 Python 写的、跑在 IM 里的、带 1000+ 插件的 Agent 平台。

1.2 核心卖点​

卖点说明
插件生态1000+ 社区插件,WebUI 一键安装
多平台QQ、微信、企微、飞书、钉钉、Telegram、Discord 等 15+
部署简单uv tool install astrbot 一行命令
Agent 能力沙箱、MCP、知识库、Skills、子 Agent
Web 管理面板可视化管理配置、插件、日志、对话
开源免费AGPL-3.0

二、架构设计​

2.1 整体架构​

AstrBot 基于 事件总线 + 流水线 的异步架构:

消息平台(QQ/微信/飞书/...)
│
▼
平台适配器(统一消息格式 UMO)
│
▼
事件总线(EventBus)—— 异步路由
│
▼
消息处理流水线(Pipeline)
├── Stage 1: 安全过滤(关键词/白名单/速率限制/百度内容审核)
├── Stage 2: Agent 处理(LLM 对话 + Tool Calling + MCP)
├── Stage 3: 结果装饰(格式化、媒体处理)
└── Stage 4: 响应发送(按平台格式返回)
│
▼
插件系统(事件 hook + 指令注册 + Tool 注册)

2.2 UMO 统一消息格式​

AstrBot 的跨平台核心抽象——Unified Message Object(UMO)。所有平台的消息都被转换为统一的 UMO 格式,包括:

  • 消息内容(文本、图片、语音)
  • 消息来源(平台类型 + 会话 ID + 用户 ID)
  • 会话上下文

这意味着:

  • 写一个回复逻辑,自动适配所有平台
  • 不同平台的用户可以和同一个 Agent 对话
  • 配置可以 per-session 覆盖(UMOP 配置路由)

2.3 事件总线​

EventBus 类实现异步事件分发,使用 asyncio.Queue 做非阻塞事件处理。插件通过注册事件处理器来响应消息事件,不需要修改核心代码。

2.4 流水线调度​

PipelineScheduler 管理消息处理的流水线阶段,每个阶段可独立启用/禁用、可插拔。这种设计让安全审核、LLM 调用、结果装饰等逻辑清晰分离。


三、插件系统​

3.1 插件规模​

1000+ 社区插件,涵盖:

类别典型插件
实用工具天气查询、翻译、计算器、日程提醒
娱乐游戏、表情包、点歌、占卜
AI 增强知识库管理、画图、TTS、角色扮演
自动化定时任务、消息转发、数据统计
平台扩展新增消息平台适配器

3.2 插件开发​

插件开发极简——Python 编写,通过装饰器注册:

# 注册指令
@plugin.command("hello")
async def hello():
return "Hello from plugin!"

# 注册事件处理器
@plugin.on_event("on_message")
async def on_message(event):
# 处理消息
pass

# 注册 LLM Tool
@plugin.llm_tool("web_search")
async def search(query: str) -> str:
# 搜索逻辑
return results

3.3 插件隔离 RFC​

这是 AstrBot 正在推进的一个重要架构升级(RFC #3210):

当前问题:

  • 插件与核心共享 Python 环境,依赖版本冲突
  • 插件可以读取核心的内存数据,存在安全隐患
  • 随着插件数量增加,维护成本非线性增长

解决方案——MCP 式进程隔离:

  • 每个插件跑在独立进程中
  • 核心与插件通过 stdio / WebSocket + JSON-RPC / MessagePack 通信
  • 使用 msgspec 做高性能序列化(比标准 json 快很多)
  • 使用 pydantic 做数据校验
  • 抽离 SDK 仓库,插件开发不再依赖核心仓库

这个架构本质上就是用 MCP 的思路来做插件隔离,非常务实且正确。


四、Agent 能力​

4.1 Agent Sandbox​

AstrBot 内置沙箱环境,支持:

  • 代码执行:Python 代码在隔离环境中运行
  • Shell 命令:执行系统命令
  • 会话级资源复用:同一个 session 的多次 Agent 调用共享沙箱状态
  • 安全隔离:防止 Agent 操作越界

4.2 MCP 协议​

完整的 MCP Client 实现,支持:

  • stdio 传输(本地 MCP Server)
  • SSE 传输(远程 MCP Server)
  • 自动工具发现和注册
  • 与内置工具无缝混合使用

4.3 知识库(RAG)​

  • 文档上传和向量化(支持 PDF、EPUB、Markdown 等)
  • 自动分段和索引
  • 对话时自动检索相关内容注入上下文
  • WebUI 管理知识库

4.4 自动上下文压缩​

当对话历史超过 token 限制时自动触发:

  • LLM 生成对话摘要
  • 旧消息替换为摘要
  • 保留最近几条消息保持上下文连贯性

4.5 人格设定​

支持 Agent 人格配置:

  • 系统 prompt 自定义
  • 角色设定(角色扮演场景)
  • 多模态能力(图片理解、语音转文字、语音合成)

4.6 外部 Agent 平台对接​

AstrBot 不只是自己跑 Agent,还能对接外部 Agent 平台:

  • Dify:接入 Dify 智能助手、知识库、工作流
  • 阿里云百炼:阿里云的 LLMOps 平台
  • Coze:字节跳动的 Agent 平台
  • Google Agent SDK:使用 Google 的 Agent 框架

这个设计意味着 AstrBot 定位为"Agent 汇聚层"——不管 Agent 跑在哪,最终都在 AstrBot 的 WebUI 和 IM 渠道中触达用户。


五、消息平台支持​

5.1 支持的平台​

平台维护方消息类型
QQ(官方 Bot)官方文字、图片
QQ(OneBot v11)官方文字、图片、语音
微信个人号官方文字、图片、语音
企业微信官方文字、图片、语音
微信公众号官方文字、图片
飞书官方文字、图片
钉钉官方文字、图片
Telegram官方文字、图片
Discord官方—
Slack官方—
LINE官方—
KOOK官方—
Satori官方—
Matrix社区—
Rocket.Chat社区—
VoceChat社区—
WhatsApp即将支持—

15+ 官方平台 + 社区扩展,基本覆盖了中文用户常用的所有 IM。

5.2 平台适配架构​

Platform Adapter Interface
├── register() —— 注册平台
├── send_message() —— 发送消息
├── on_message() —— 接收消息
└── 统一 Webhook 系统

每个平台适配器实现统一接口,核心不关心消息来自哪个平台。


六、LLM 提供商支持​

提供商类型备注
OpenAI API文本生成兼容所有 OpenAI API 格式的服务
Anthropic文本生成Claude 系列
Google Gemini文本生成—
DeepSeek文本生成—
月之暗面(Moonshot)文本生成Kimi
智谱 AI(GLM)文本生成ChatGLM
Ollama(自部署)模型加载本地运行开源模型
LM Studio(自部署)模型加载本地运行开源模型
硅基流动API 平台多模型 API 服务
OneAPILLM 分发统一 API 网关
AIHubMixAPI 网关多模型聚合
Whisper语音转文本API + 本地
SenseVoice语音转文本本地部署
OpenAI TTS文本转语音—
Edge TTS文本转语音免费
Azure TTS文本转语音—

七、部署方式​

AstrBot 的部署方式可能是所有 Agent 框架里最丰富的:

方式适用场景难度
uv tool install astrbot一键命令行部署⭐
Docker / Docker Compose生产环境⭐⭐
AstrBot LauncherWindows/Mac 桌面启动器⭐
AstrBot Desktop App桌面应用⭐
宝塔面板面板管理用户⭐⭐
1Panel面板管理用户⭐⭐
CasaOSNAS/家庭服务器⭐⭐
雨云一键部署不想管服务器⭐
Replit在线体验⭐
AUR (Arch Linux)Arch 用户⭐⭐
手动部署深度自定义⭐⭐⭐

它还提供了 uvx astrbot init && uvx astrbot run 这样真正的一行命令启动方式。


八、Web 管理面板​

AstrBot 有一个功能完整的 Vue.js Web 管理面板:

功能模块说明
配置管理可视化修改 LLM、平台、Agent 配置
插件管理一键安装/卸载/启用/禁用插件
日志查看实时监控机器人运行状态
WebChat浏览器内直接与 Agent 对话
对话历史查看和管理历史会话
知识库管理上传文档、管理知识库
更新系统WebUI 一键更新

Demo: https://demo.astrbot.app/(用户名/密码: astrbot)


九、与其他 Agent 框架的对比​

维度AstrBotDeerFlowGoClawDeepAgents
定位一站式 Chatbot + Agent 平台Super Agent HarnessAI Agent 网关Agent Harness SDK
语言PythonPython + Node.jsGoPython
消息平台15+(QQ/微信/飞书/钉钉/...)无7 个 IM无
插件生态1000+ 社区插件Skills 系统30+ 内置工具Middleware
WebUI✅ 完整管理面板✅ Web UI✅ Dashboard❌(仅 CLI)
Agent Sandbox✅✅✅✅
MCP✅✅✅✅
部署门槛极低(一行命令)中低(单二进制)中
社区⭐ 非常活跃⭐ 活跃⭐ 活跃⭐ 活跃
许可证AGPL-3.0MITCC BY-NC 4.0MIT
适合谁想在 IM 里跑 Agent 的个人/团队需要 Agent 产品化 + Skills 生态需要多租户 Agent 网关的企业需要 SDK 深度定制的开发者

十、核心经验总结​

  1. 插件生态是开源 Agent 框架的护城河:1000+ 插件意味着几乎任何需求都有人做过,新用户不需要从零开始
  2. IM 渠道集成是触达用户的最佳方式:用户不需要装新 App、学新界面,在熟悉的微信/QQ/飞书里直接跟 Agent 对话
  3. 部署门槛决定用户规模:uv tool install astrbot 一行命令 vs 需要配 Docker/数据库的框架,前者能触达十倍以上的用户
  4. MCP 正在成为 Agent 框架的标准组件:AstrBot、DeepAgents、DeerFlow 全部支持 MCP,这个趋势不可逆
  5. 插件进程隔离是规模化必经之路:AstrBot 的 RFC 说明团队在认真思考 1000+ 插件后的架构问题,MCP 式的进程隔离方案很务实
  6. AGPL-3.0 是双刃剑:保护了开源生态(改代码必须开源),但也限制了商用场景
  7. "Agent 汇聚层"的定位很聪明:不只自己做 Agent,还能对接 Dify/百炼/Coze/Google ADK,AstrBot 变成 Agent 的"统一前端"