Mirai 机器人 GitHub 项目概览
“Mirai” 这个名字在日语中是“的意思,它是一个非常著名且功能强大的QQ 协议机器人框架,在中文技术社区,尤其是在早期,提到 QQ 机器人,Mirai 是绕不开的里程碑式项目。

重要提示: 由于腾讯官方对第三方 QQ 协议的打击,Mirai 及其衍生项目本身已不再积极维护,并且其核心功能(登录和使用)在当前环境下已基本失效,但它的设计思想和生态影响非常深远。
核心项目地址
Mirai 的核心项目托管在 GitHub 上,主要有两个官方仓库:
-
Mirai Console: 这是 Mirai 的控制台和核心 API。
- GitHub 地址: https://github.com/iTXTech/mirai-console
- 简介: 这是运行 Mirai 机器人的基础,它提供了一个可插拔的控制台环境,你可以在上面安装各种“插件”来扩展机器人的功能。
-
Mirai API HTTP: 这是一个非常重要的插件,它允许其他编程语言(如 Python, Go, Java, C# 等)通过 HTTP 协议与 Mirai Console 交互,从而控制机器人。
(图片来源网络,侵删)- GitHub 地址: https://github.com/project-mirai/mirai-api-http
- 简介: 这是连接 Mirai 和你自己的业务逻辑代码的桥梁,绝大多数非 Java 开发者都是通过这个插件来使用 Mirai 的。
Mirai 的核心特点
- 高性能: Mirai 使用 Kotlin 语言编写,并利用了 Netty 等高性能网络框架,能够处理大量的消息和事件。
- 插件化架构: Mirai Console 本身功能有限,其强大的生命力来自于插件生态,开发者可以轻松地编写插件来实现各种功能,如群管、娱乐、查询等。
- 多协议支持: 最初支持 QQ,后续也扩展了对其他协议(如 Telegram)的支持,但 QQ 始终是其核心。
- 完善的 API: 提供了丰富的 Java API,让开发者可以精细地控制机器人的每一个行为,如发送消息、处理好友请求、管理群等。
- 跨平台: 由于是 Java/Kotlin 框架,Mirai 可以在 Windows、macOS、Linux 等任何支持 Java 虚拟机的系统上运行。
如何使用 Mirai (历史指南,当前可能已失效)
以下是基于 mirai-api-http 插件的经典使用流程,可以帮助你理解其工作原理:
步骤 1:下载并启动 Mirai Console
- 从 mirai-console 的 Release 页面 下载最新版本的
mirai-console-*.jar。 - 创建一个文件夹,将下载的
.jar文件放入其中。 - 运行该
.jar文件,会自动下载所需的依赖。 - 首次启动会提示你配置
config文件,主要是设置workingDir(工作目录)。 - 再次运行,控制台会启动。
步骤 2:登录 QQ 账号
在 Mirai Console 控制台输入 login <你的QQ号> <你的密码>。
- 注意: 对于新设备或长时间未登录的账号,腾讯可能会要求通过手机扫码或短信验证码进行二次验证,你需要按照控制台提示,在手机 QQ 上完成验证。
步骤 3:安装 mirai-api-http 插件

- 访问 mirai-api-http 的 Release 页面 下载最新版本的插件文件(通常是
.jar文件)。 - 将下载的插件文件放入 Mirai Console 工作目录下的
plugins文件夹中。 - 重启 Mirai Console,插件会自动加载。
步骤 4:配置 mirai-api-http 插件
- 在 Mirai Console 工作目录下找到
config文件夹,然后进入net.mamoe.mirai-api-http文件夹。 - 编辑
setting.yml文件,配置监听端口(默认是8080)、认证方式(推荐使用sessionKey)等。 - 重启 Mirai Console,使配置生效,控制台会输出一个
sessionKey,这是你后续调用 API 的凭证。
步骤 5:通过 HTTP API 控制机器人
你可以使用任何 HTTP 客户端(如 Postman, curl)或编写代码(如 Python 的 requests 库)向 http://<你的服务器IP>:8080 发送请求,来控制机器人了。
示例 (使用 Python 发送消息):
import requests
# 从 mirai-api-http 控制台获取的 sessionKey
SESSION_KEY = "your_session_key_here"
BOT_QQ = 12345678 # 你的机器人QQ号
TARGET_GROUP = 87654321 # 目标群号
# API 地址
base_url = f"http://127.0.0.1:8080"
# 1. 首先验证 sessionKey
verify_url = f"{base_url}/verify"
response = requests.post(verify_url, json={"sessionKey": SESSION_KEY})
if response.json()["code"] != 0:
print("SessionKey 验证失败!")
exit()
# 2. 发送群消息
send_url = f"{base_url}/sendGroupMessage"
message_data = {
"sessionKey": SESSION_KEY,
"target": TARGET_GROUP,
"messageChain": [
{"type": "At", "target": BOT_QQ}, # @机器人自己
{"type": "Text", "text": "Hello, from Mirai API HTTP!"}
]
}
response = requests.post(send_url, json=message_data)
print(response.json())
为什么现在不推荐使用 Mirai?
- 腾讯封禁: 腾讯官方一直在升级反第三方协议的机制,Mirai 使用的登录协议已被封禁,导致无法登录,即使偶尔能登录,也很快会被冻结或强制下线。
- 官方 API (OneBot): 腾讯推出了官方的机器人平台,使用 OneBot 标准协议,这是目前唯一稳定、合规的 QQ 机器人开发方式。
- 安全风险: 使用非官方协议存在账号被盗、被封禁的风险。
Mirai 的替代方案
如果你现在想做 QQ 机器人,强烈推荐以下合规、稳定的替代方案:
| 方案 | 特点 | 适用场景 |
|---|---|---|
| 腾讯官方机器人 (OneBot) | 官方推荐,稳定合规,通过 OAuth2.0 授权,安全性高。 | 企业应用、正式项目、需要长期稳定运行的机器人。 |
| go-cqhttp | 最流行的 Mirai 替代品,它实现了 OneBot v11 协议,可以登录 QQ,并且拥有庞大的插件生态。 | 个人开发者、社区群管、各种娱乐和自动化功能。 |
| OICQ (Node.js) | 一个基于 Node.js 的 QQ 协议库,在 Node.js 社区中非常流行。 | 熟悉 JavaScript/TypeScript 的开发者。 |
推荐: 对于绝大多数个人开发者,go-cqhttp 是目前最好的选择,它继承了 Mirai 的插件化思想,生态成熟,并且能够稳定登录和使用。
| 项目 | 状态 | 推荐度 | 说明 |
|---|---|---|---|
| Mirai | 已失效 | ⭐ (仅作学习研究) | 历史意义重大,但无法用于实际生产。 |
| 腾讯官方机器人 | 活跃 | ⭐⭐⭐⭐⭐ | 合规、稳定、安全,是未来的方向。 |
| go-cqhttp | 活跃 | ⭐⭐⭐⭐⭐ | 目前最主流的非官方替代方案,功能强大。 |
希望这份详细的介绍能帮助你全面了解 Mirai 机器人及其 GitHub 项目!
标签: Mirai机器人GitHub安全下载 Mirai机器人GitHub使用教程 Mirai机器人GitHub合法吗