Skip to main content
Node.js 适配器直连 control 协议,无需编译,适合需要复用平台官方 npm SDK 或快速验证的场景。没有专用 SDK,但协议不复杂——本页末尾的完整示例可以直接作为模板。
先读 适配器总览 了解接入形态、能力声明、manifest 头注和标准事件契约。长期常驻的适配器优先考虑 Go 实现,常驻内存占用更低。

manifest 与运行时

单文件放在 plugin/adapters/(如 adapter_demo_http.js),头注用 //[key: value] 格式,无需构建约束:
  • language 可写 javascriptjsnodenodejs。可用 //[runtime: [email protected]] 显式指定版本,缺省使用系统默认 Node(当前 22.22.3)。
  • 依赖用 //[dependency: {"name":"ws","version":"8.18.0"}] 声明,autClaw 在启动前用 npm 安装,进程内可直接 require。Node 22 自带全局 WebSocketfetch,简单适配器可以零依赖。
  • autClaw 以独立进程启动适配器,工作目录为文件所在目录,stdout / stderr 进入适配器运行日志,配置变更会自动重启进程。
进程可用的环境变量:

完整示例

实现四核心 + 自发送 + 主动上报(与 Go 篇同形态):worker 长轮询平台、主动上报事件、自己调平台 API 发送。零依赖,Node 22 直接运行。

实现要点

  • 信封纪律:响应只带 aut_echookaut_paramsaut_error,不带 aut_actionaut_params 必须是对象。
  • 事件必填字段kindevent_typeim_typeinstance_id;群会话必须有 session.chat_id,私聊消息必须有 actor.id。任一事件缺字段会导致整批被拒绝。
  • 游标推进:只信 outcomes 逐事件结果;ok: true 不等于全部入队,rejected 缺口必须重发且不得跳过。
  • 心跳:autClaw 会周期性发 ws ping。标准 WebSocket(Node 22 内置)与 ws 包都会自动回 pong,无需额外代码;不要使用不自动回 pong 的自实现客户端。
  • 并发:异步处理调用,不要在处理一个动作的同步栈内等待同一连接上的其他消息;对平台 HTTP 调用设置超时(示例用 AbortSignal.timeout)。
  • 日志安全:stdout / stderr 会进适配器日志,不要打印 token、密码、完整签名。

本地测试

先做语法检查,再指向本地 autClaw 手动拉起调试;正式路径是把文件放入 plugin/adapters/ 后由 autClaw 启停进程:
联调时按 适配器总览 的清单逐项确认:私聊、群聊、媒体、掉线重连和部分拒绝时的游标处理。
最后修改于 2026年8月15日