Skip to content

认识 Mioku ​

Mioku 是一个插件式的机器人框架,用 TypeScript 编写,运行于 Node.js(>= 22)上。它负责把「平台的消息」变成「插件能处理的事件」,再把「插件想做的事」变成「平台的动作」。至于机器人具体会做什么——聊天、查天气、管理群、看图说话——全部由插件决定。

机器人的构成 ​

一个 Mioku 机器人由下面几部分组成:

  1. 适配器 (Adapter):负责对接具体平台。它把平台的原始消息转换成 Mioku 的通用事件,也把插件的操作翻译回平台能懂的指令。
  2. 能力 (Capability):适配器对外承诺的「我能做这件事」。发消息、禁言、查群成员……每个操作都是一项能力,由适配器注册,插件按需调用。
  3. 插件 (Plugin):机器人的功能本体。里面用 definePlugin 声明自己,然后监听事件、调用能力、完成任务。
  4. 服务 (Service):跨插件复用的能力提供方,比如 AI 服务、配置服务、截图服务。插件通过服务名取用它们。

它们的关系画出来大概是这样的:

text
      平台 (QQ / OneBot / 终端)
              ↓
       适配器 Adapter  ←── mioku-adapter-onebotv11 / icqq / stdin
              ↓
       能力 Capability  ←── 适配器注册「能做」的操作
              ↓
       事件总线 EventBus
              ↓
    ┌─────────┴─────────┐
  插件 Plugin          服务 Service
 (功能实现)          (能力提供)

把「适配器」和「能力」合起来看会更清楚:适配器负责连接,能力负责操作。插件不用关心对面是 NapCat 还是 icqq,它只看到一群能力——sendGroupMsg、banMember、getGroupList——这些能力背后是谁实现的,插件不知道,也不想知道。

Agent 优先 ​

Mioku 最核心的设计取向是「Agent 优先」:机器人不只是关键词触发回复,而是让 AI 去理解消息、调用工具、完成任务。为此框架内置了一整套 AI 服务契约——实例、提供商、模型、技能、工具、用量统计——插件注册一个技能(Skill),AI 就能在对话中调用它。chat 插件就是这套体系最大的使用者。

下一步 ​

Released under the MIT License with love.