Onebots

基于icqq的多例oneBot管理应用

Last verified:

Visit Onebots

What is Onebots?

Onebots 是一个多平台多协议机器人应用框架,基于 NodeJS 提供 M Platform => N Protocol 的解决方案。它提供完整的服务端和客户端解决方案,连接各大平台与主流机器人框架,统一各大平台的差异,输出标准的 OneBot、Satori、Milky 协议。

核心功能包括:内置 15+ 主流平台适配器(QQ、ICQQ、微信、钉钉、飞书、企业微信、Telegram、Slack、Discord、Kook、Microsoft Teams、Line、Email、WhatsApp、Zulip 等),一个账号可同时提供 OneBot V11/V12、Satori、Milky 等多种协议接口。imhelper 客户端 SDK 提供统一的客户端接口,抹平不同协议的差异,支持 WebSocket、Webhook、SSE 多种接收方式。

Onebots 适合机器人开发者、需要跨平台机器人解决方案的团队、以及使用 Koishi、NoneBot、Yunzai 等机器人应用框架的开发者。服务端场景适用于当框架不直接支持某平台时作为桥梁;客户端场景适用于需要开发跨协议机器人应用时提供统一接口。

项目基于 TypeScript 开发,提供完整的类型定义和代码提示,适配器和协议均支持动态加载,按需安装使用,代码结构清晰,服务端和客户端分离,易于扩展和维护。

Onebots pricing

Pricing model: Freemium

onebots 是开源免费项目,通过 npm install -g onebots 或 pnpm add -g onebots 可全局安装,也可通过 npm install onebots 进行项目安装。没有付费计划或商业版本,所有功能免费使用。用户只需自行准备平台账号(如 QQ 机器人、微信公众号等)并承担服务器部署成本。适配器和协议均按需单独安装,如 @onebots/adapter-wechat、@onebots/protocol-onebot-v11 等。

Onebots pros

  • 支持 15+ 主流平台适配器包括 QQ、微信、Discord、Telegram 等
  • 一个账号可同时提供 OneBot V11/V12、Satori、Milky 多种协议
  • 内置服务端和客户端 SDK 完整解决方案
  • 基于 TypeScript 开发,提供完整类型定义和代码提示
  • 适配器和协议支持动态加载,按需安装
  • 简单配置即可启动服务端
  • 支持 HTTP API 和 WebSocket 多种通信方式
  • 清晰的代码结构,服务端和客户端分离
  • 易于扩展和维护
  • 支持 Koishi、NoneBot、Yunzai 等主流机器人框架
  • imhelper 客户端 SDK 抹平协议差异
  • 支持 WebSocket、Webhook、SSE 多种消息接收方式
  • 开源免费,可通过 npm/pnpm 全局或项目安装
  • 支持 Windows、macOS、Linux 全平台
  • 可轻松扩展自定义适配器和协议

Onebots cons

  • 需要 Node.js >= 22 较高版本要求
  • 需要为每个平台单独注册账号并配置凭证
  • 部分平台适配器需要额外安装依赖包
  • 配置文件对新手可能较复杂
  • 需要自行部署服务器
  • 微信等部分平台需要官方审核
  • 某些平台功能可能受限于平台 API 限制
  • 需要熟悉 OneBot/Satori 等协议概念

Frequently asked questions about Onebots

什么是 onebots?

onebots 是一个多平台多协议机器人应用框架,基于 NodeJS 提供 M Platform => N Protocol 的解决方案。它提供完整的服务端和客户端解决方案,连接各大平台(QQ、微信、钉钉、飞书、企业微信、Telegram、Slack、Discord 等)与主流机器人框架(Koishi、NoneBot、Yunzai 等),统一各大平台的差异,输出标准的 OneBot V11/V12、Satori、Milky 协议接口。

onebots 支持哪些平台?

onebots 内置 15+ 主流平台适配器,包括 QQ 官方机器人、ICQQ、微信(公众号)、微信 ClawBot (iLink)、Kook、Discord、Telegram、飞书、钉钉、Slack、企业微信、Microsoft Teams、Line、Email、WhatsApp、Zulip 等。适配器均支持动态加载,可轻松扩展自定义适配器。

onebots 支持哪些协议?

onebots 支持 OneBot V11、OneBot V12、Satori V1、Milky V1 四种标准协议。一个账号可同时提供多种协议接口,下游框架可根据需要选择连接任意协议。OneBot V12 是下一代版本,提供更标准化的 message segment 格式、更完整的类型系统、跨平台特性支持和更好的扩展性。

如何安装 onebots?

需要 Node.js >= 22 和 pnpm/npm/yarn 包管理器。全局安装使用 npm install -g onebots 或 pnpm add -g onebots;项目安装使用 npm install onebots 或 pnpm add onebots。安装后根据要接入的平台安装对应适配器如 @onebots/adapter-wechat,根据下游框架支持的协议安装对应协议包如 @onebots/protocol-onebot-v11。

how to start onebots service?

命令行方式(推荐):onebots -r wechat -p onebot-v11 启动基础服务,或使用 onebots -r wechat -p onebot-v11 -c config.yaml 指定配置文件。可同时启用多个协议:onebots -r wechat -p onebot-v11 -p onebot-v12 -p satori-v1。也可通过代码启动:导入 App 和适配器、注册适配器和协议、创建 App 实例并启动。

什么是 imhelper 客户端 SDK?

imhelper 是 onebots 提供的统一客户端接口 SDK,抹平不同协议的差异。它支持 WebSocket、Webhook、SSE 多种消息接收方式,允许开发者直接使用客户端 SDK 开发跨协议机器人应用,无需关心底层协议差异。通过 createImHelper 和 createOnebot11Adapter 等函数可快速连接 onebots 服务端。

onebots 的端口是多少?

默认 HTTP 服务器端口是 6727,可在 config.yaml 配置文件中通过 port 参数修改。HTTP API 访问地址格式为 http://localhost:6727/{platform}/{account_id}/onebot/v11/{action},WebSocket 地址格式为 ws://localhost:6727/{platform}/{account_id}/onebot/v11。

如何配置平台账号?

在 config.yaml 配置文件中填写平台机器人的认证信息,格式为 {platform}.{account_id}。例如 wechat.my_wechat_mp 用于微信公众号,qq.3889001676 用于 QQ 机器人。每个账号可配置多个协议,覆盖通用配置。平台特定配置如 AppID、AppSecret、Token 等需根据各平台文档准备。

onebots 适合什么场景?

服务端场景:当你想用 Koishi 等框架开发机器人但平台不直接支持时,onebots 服务端可作为桥梁,将平台 API 转换为标准协议。客户端场景:当你需要开发跨协议的机器人应用时,imhelper 提供统一的客户端接口,无需关心底层协议差异。适合机器人开发者、跨平台需求团队、使用主流机器人框架的用户。

onebots 收费吗?

onebots 是开源免费项目,通过 npm 可免费下载安装使用,没有付费计划或商业版本。所有功能包括所有平台适配器和协议均免费使用。用户只需自行准备平台账号(部分平台可能需要官方审核或付费)并承担服务器部署成本。适配器和协议包按需单独安装也完全免费。

Categories

Use cases

Browse all AI tools on NeedAnAI