此文档已弃用。请访问我们的最新文档:https://koishi.chat

指南

TIP

这部教程假设读者已经拥有了中级的 TypeScript 和 node.js 相关知识。如果你只想快速搭建自己的机器人应用而非学习 Koishi 开发,请前往 入门

Koishi 是一个强大的聊天机器人框架,因此有大量的知识需要学习。不过请不用担心,我们为学习者提供了一部循序渐进的教程,帮助你从最基础的概念出发,逐步掌握 Koishi 开发。

我们强烈建议读者在开发插件前阅读这篇指南的前四章,以便对 Koishi 的功能有一个初步的认识。当然,每个章节也不必全部读完,你只需有个大致的印象,并在后续的使用中随时回来了解更多的细节。

处理交互

这一章主要介绍如何使用 Koishi 接受和发送消息。

  • 如何使用中间件实现基本的对话?
  • 什么是会话对象?如何处理非消息事件?
  • 如何发送含有非文本的消息 (例如图片等)?

指令系统

我们在中间件和会话的基础上,封装了一套强大的指令系统。实际上绝大部分的 Koishi 功能都是由指令实现的。在这一章中,你将学习如何注册和调用指令,以及使用围绕指令的各项功能:编写帮助、权限管理、速率控制、平台集成、模糊匹配等等。

  • 如何注册和调用指令?
  • 如何为指令编写帮助?如何管理大量指令?
  • 如何实现指令的权限管理、速率限制、平台集成、模糊匹配?

模块化

  • 什么是插件?如何编写插件?
  • 如何描述插件的配置项?
  • 如何发布插件?

切面开发

  • 如何限制某项功能的上下文?
  • 如何注册和触发事件?
  • 插件如何访问其他插件中的功能?

数据库

  • 如何使用数据库?
  • 如何定义和扩展数据模型?
  • Koishi 内置的用户系统是怎样的?
  • Koishi 如何优化数据库访问?

跨平台

  • 如何同时运行多个机器人?
  • 如何访问平台特定的功能?
  • 如何实现跨平台账号绑定?
  • 如何适配更多平台?

国际化

  • 如何实现多语言支持?
  • 如何编写翻译文件?
  • 如何应对复杂的渲染场景?

控制台开发

  • 如何编写控制台扩展?
  • 如何在控制台前后端之间进行数据通信?

测试工具

  • 如何使用沙箱测试?
  • 如何编写单元测试?

深入底层

  • Koishi 分为哪些底层模块?它们是如何组织的?
  • Koishi 内部如何处理消息?