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 的"统一前端"