模型 / 数据集
AstrBotDevs/AstrBot avatar
AstrBotDevs/AstrBot

AstrBot:把 QQ、Telegram 变成 AI 助手入口的 Python 框架

AstrBot 是一个 AI 助手框架,它将模型提供者、插件和消息平台连接到可部署的机器人服务中。

40,545 个 Star2,919 个 ForkPythonAGPL-3.0

秒懂

它是什么?
AstrBot 是一个将大模型、插件和 IM 平台串起来的 Python 机器人框架,支持 QQ、Telegram、飞书等十余个平台。它用 uv 一条命令就能跑起来,但 AGPL-3.0 许可证和插件生态的成熟度需要你先想清楚。
适合谁用?
适合个人开发者、小团队和需要快速在多个 IM 平台上线 AI 对话功能的场景。它把平台适配、模型接入和插件管理打包成一个命令,省去自己对接 QQ 或 Telegram API 的重复劳动。
能商用吗?
可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是重复造轮子的问题

写一个聊天机器人,最烦的不是调大模型,而是对接平台。QQ 的协议、Telegram 的 Bot API、飞书的回调签名,每个平台都要单独写一套收发逻辑。AstrBot 把这一层抽出来,你只需要关心模型和业务逻辑。它的目标用户很明确:个人开发者想给自己做个 AI 助手,小团队想快速上线客服机器人,或者有人想在企业微信里跑一个知识库问答。官方支持的平台有 QQ、Telegram、企业微信、飞书、钉钉、Discord、Slack 等,社区还提供了 Matrix、Rocket.Chat 的适配器。这意味着你不用为了试一个新平台重写代码。

从模型到平台的调用链

从仓库结构和文档描述看,AstrBot 的架构分三层。底层是模型服务接入层,支持 OpenAI 兼容接口、Anthropic、Gemini、DeepSeek、Ollama 这些常见服务,也接入了 Dify、Coze 这类 LLMOps 平台。中间是插件和 Agent 层,提供 MCP、Skills、知识库、人设设定、上下文自动压缩这些能力。上层是平台适配层,负责把不同 IM 的消息格式转换成统一事件。一个请求的路径大致是:用户在 QQ 发消息,适配器把它转成内部事件,框架根据配置选择模型或插件处理,再把结果转成 QQ 格式发回去。这套设计的好处是换模型不换代码,换平台也不换代码。

一条命令启动,但依赖 uv

安装方式有几种,官方首推 uv 一键部署。前提是你已经装了 uv,然后执行三条命令:uv tool install astrbot --python 3.12,接着 astrbot init 初始化环境,最后 astrbot run 启动。升级用 uv tool upgrade astrbot --python 3.12。这个流程对熟悉命令行的人很友好,但对纯新手有门槛,uv 本身是个额外依赖。Docker 部署适合生产环境,官方文档专门写了 Docker Compose 的用法。还有桌面版 AstrBot-desktop,主要面向只用 ChatUI 的用户,官方明确不建议在服务器上用桌面版。另外有 BT 面板、1Panel、CasaOS 这些部署方式,适合喜欢可视化管理的用户。

Agent 沙箱:隔离执行代码

框架内置了一个 Agent 沙箱,文档里说它用于隔离执行代码和 shell 调用,并且支持会话级别的资源复用。这个设计解决了一个实际问题:让 AI 生成的代码在聊天里跑,如果不隔离,一个恶意提示词就能让机器人执行任意命令。沙箱把执行环境限制住,同时允许同一会话内复用资源,避免每次调用都重新初始化。这是一个值得肯定的安全设计,但要注意它只隔离 Agent 执行的部分,不隔离框架本身。如果你的插件有漏洞,沙箱管不到。

插件生态是双刃剑

README 宣称有 1000 多个插件可以一键安装。数量多意味着覆盖面广,但也意味着质量参差不齐。社区插件不是官方维护的,可能有安全问题或者跟某个版本不兼容。官方适配器和社区适配器混在一起,比如 Matrix 适配器是社区维护的,出了问题你得等社区修,不能指望官方。插件体系是 AstrBot 的核心卖点之一,它让你不用写代码就能加功能,但依赖第三方代码这件事本身就有风险。安装插件前最好看一下它的源码和更新频率。

许可证:AGPL-3.0 的约束

AstrBot 使用 AGPL-3.0 许可证。这意味着如果你修改了源码并部署成网络服务,你有义务把修改后的源码提供给用户。这对个人项目影响不大,但对企业内部使用是个需要评估的点。如果只是跑官方版本、不改源码,那问题不大。如果要做二次开发或者定制,就得考虑是否愿意公开你的改动。另外,如果你把 AstrBot 集成到自己的产品里对外提供服务,AGPL-3.0 的传染性需要法律意见来确认边界。这不是一个可以忽略的细节。

替代方案:直接对接平台 API

如果你只需要在 Telegram 上跑一个简单的机器人,可以不引入框架,直接用 python-telegram-bot 或 aiogram 这类库。区别在于,这些库只处理 Telegram 的收发,模型调用、插件管理、多平台适配全都要自己写。AstrBot 的价值在于它把这些都整合了,代价是你要接受它的抽象层和配置方式。另一个思路是使用 Dify 这类 LLMOps 平台,它们有完整的 Agent 编排和知识库功能,但平台接入通常不如 AstrBot 这么广。如果你的核心需求是复杂的工作流编排,Dify 可能更合适;如果你的核心需求是快速接入多个 IM 平台,AstrBot 更直接。

编辑结论

适合个人开发者、小团队和需要快速在多个 IM 平台上线 AI 对话功能的场景。它把平台适配、模型接入和插件管理打包成一个命令,省去自己对接 QQ 或 Telegram API 的重复劳动。不适合对许可证敏感的企业用户,AGPL-3.0 要求修改版源码对外公开,闭源商用要谨慎。不适合需要深度定制底层协议的人,框架的抽象层会限制你直接操作平台细节。部署前先确认三件事:你的目标平台是否有官方适配器,你需要的模型服务是否在支持列表里,以及插件市场的 1000 多个插件里有没有你要的功能。AstrBot 的定位是快速搭建,不是无限扩展。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记