前排提醒:Koishi 基于 Node.js,如果不熟悉这门语言就请不要来问了。
去年年初我写过一篇关于 Koishi 的介绍:
那个时候 CoolQ 还火得很,我也完全把 Koishi 定位成适配 CQHTTP 的聊天机器人框架。不过之后发生的事情大家都不陌生……QQ 诸多第三方机器人框架仿佛于一夜间被连根拔起,下游生态也不免遭受灭顶之灾。这其中的是非功过我们暂且不论,毕竟南山必胜客夺舍法律也不是一朝一夕了。
时过境迁,一些人在前一篇文章的下面问起 Koishi 之后的命运。我倒是可以比较自信地说 Koishi 并没有因此倾覆,反而是成长了不少。如今的 Koishi v3 已经发展成了一个跨平台的聊天机器人框架,并且拥有了越来越多的特性和日渐积累的生态。无论你打算开发机制复杂的游戏机器人,还是想写个供群友娱乐的聊天抽卡助手,Koishi 你都值得一看。
在我们开始之前,可少不了惯例的介绍环节:Koishi 这个名字来源于东方 Project 中的角色古明地恋(Komeiji Koishi),而图标也是以这个角色为原型设计的。
开箱即用的 CLI
Koishi 高度配置化的命令行工具可以让你无需写代码就搭建属于你的机器人。与此同时,CLI 还配备了丰富和人性化的提示,进一步提高调试体验。我们甚至还实现了插件级别的 HMR(模块热替换),让你开发和调试插件也拥有如同前端开发一样的丝滑体验。
CLI 效果预览
功能强大的 API
经过了几个版本的迭代,Koishi 已经发展出了丰富的 API,功能覆盖机器人领域的方方面面。从上层负责交互的指令、会话、中间件,再到中层负责控制的应用、上下文、插件,最后到底层的机器人和适配器,每一个部分都经过了精心的编写,可以让你轻松实现任何需求。如果担心在复杂的功能中迷失方向,我也准备了细致的文档来提供帮助。
丰富的生态系统
Koishi 在编写时,也同样编写了大量的官方插件作为补充。它们有些作为 Koishi 的基础功能,有些则为 Koishi 的使用提供了许多便利。更重要的是,这数十个插件都可以作为 Koishi 插件开发的极好示范。下面是一些例子:
除了这些官方插件以外,社区贡献者也编写了各种各样的第三方插件:
这些插件共同组成了 Koishi 如今的生态。
多账户和跨平台支持
Koishi 原生地支持了多账户与跨平台,同时为这些机器人之间互通数据、共用服务器、保证数据安全提供了原生的解决方案,这有助于在保持高性能的同时,将风控和迁移造成的影响降低到最小。Koishi 的用户甚至可以在不同的平台间绑定数据,使你无论切换到哪个平台,机器人都能记住你的用户信息。
除此以外,Koishi 还内置了一套用户管理机制,不仅几乎能满足一切需求,还具有良好的扩展性,任何人都可以在插件中扩展用户的字段。Koishi 的模块化开发使得这套机制并不仅限于单一的平台或者数据库。目前支持的平台已经包括 QQ (OneBot),Telegram,Discord 等等,支持的数据库包括 MySQL (mariadb) 和 MongoDB。
网页控制台
Koishi v3 的另一大亮点就是拥有官方的网页控制台插件。这个控制台包含了非常多的功能:查看机器人运行状态、收集并展示统计数据、管理你的插件和依赖……
这个控制台本身的也提供了接口,允许其他插件来新增页面。当你安装了另一个插件 koishi-plugin-chat 之后,你甚至可以利用控制台,直接使用机器人的号进行聊天!
MIT 开源
最后,也是最重要的:与许多机器人框架不同的是,Koishi v3 完全免费,并使用 MIT 开源。说了这么多,如果你已经对编写 QQ 机器人、对使用 Koishi 产生兴趣的话,那么就去看看 Koishi 的官方文档吧!相信这份详细的帮助文档将打消你的一切疑虑。
https://koishi.js.org
下面是 Koishi.js 的源代码,如果觉得不错的话,请一定要记得点个 star 哦:
https://github.com/koishijs/koishi