跳转到主要内容
autClaw 适配器负责把外部 IM、机器人框架或官方 SDK 接入系统。你在 plugin/adapters/ 编写独立 worker,把平台事件转成 autClaw 标准事件,再把标准出站动作转成平台协议包。
本页只讲架构和最小落地路径。字段、消息信封、回执和完整示例见 适配器参考。先从 适配器总览 开始更快。普通业务插件请先看 插件 SDK 概览

先记住三条边界

  • worker 负责协议适配:账号解析、入站标准化、出站构造、回执解码、登录和平台 workflow。
  • backend 负责运行编排:启动进程、下发配置、维护 control websocket、分发消息和记录回执。
  • 协议专属逻辑 只放在适配器 worker 内,不要写进 autClaw 核心层。

选择接入模式

模式适合场景你要实现
Gateway 连接平台通过反向 WebSocket / Gateway 收发,例如 OneBotresolve_accountnormalize_inboundbuild_outbounddecode_receipt
Worker 自发送平台发送必须调用 HTTP API 或官方 SDK上述 core codec + execute_outbound
主动事件worker 自己维护长连接或 SDK 事件流上述 core codec + emit_inbound_eventsadapter_update_account_state
新渠道优先做核心 codec:resolve_accountnormalize_inboundbuild_outbounddecode_receipt。只有当 worker 自己直接调用平台 HTTP API / SDK 完成发送时,才启用 execute_outbound;如果发送由 backend 持有的 Gateway / WebSocket 完成,就保持 transport: "ws",不要启用 execute_outbound

最小实现顺序

  1. 写 manifest:authorim_typetransportaccount_id_key
  2. 使用 backend 下发的 AUTCLAW_ADAPTER_CONNECT_URL 连接 control websocket。
  3. 收到 adapter_init 后,缓存配置并发送 adapter_worker_ready
  4. 实现四个核心动作:
    • adapter_codec_resolve_account
    • adapter_codec_normalize_inbound
    • adapter_codec_build_outbound
    • adapter_codec_decode_receipt
  5. 实测私聊、群聊、媒体、回执和掉线重连。

manifest 只保留关键字段

适配器放在 plugin/adapters/。推荐文件名使用 adapter_{im_type}_{transport}.js,例如 adapter_demo_http.jsadapter_demo_ws.js。autClaw 会根据文件名辅助推断路由,但你仍应在 manifest 中显式声明关键字段。
//[title:adapter_demo_http]
//[version:1.0.0]
//[author: your-name]
//[class:适配器]
//[language: nodejs]
//[description: Demo IM HTTP adapter]
//[im_type: demo]
//[im_type_name: Demo IM]
//[protocol: im]
//[transport: http]
//[account_id_key: bot_id]
//[receive_token_key: token]
//[dependency: {"name":"ws"}]
//[param: {"scope":"account","required":true,"key":"bot_id","name":"Bot ID","desc":"平台机器人账号 ID,同时作为 autClaw account_id"}]
//[param: {"scope":"account","required":false,"key":"token","type":"secret","secret":true,"bind":"ingress_token","name":"上报 Token","desc":"平台回调或连接携带的验证 token"}]
//[public: true]
//[price: 0]
字段说明
author用于生成稳定 script_id
im_type渠道稳定标识,例如 qqfsqx
transport外部入站方式,常用 httpws
account_id_key账号配置里用于生成 account_id 的字段。
receive_token_key外部平台请求中携带 token 的 query key。
param配置表单;账号级配置写 "scope":"account"
dependency运行依赖,例如 wsaxios、官方 SDK。
media只有本地 SDK 必须读取文件路径时才声明。
更多通用 manifest 字段见 插件 manifest 声明头

生命周期很简单

control 连接建立后,backend 会先发 adapter_init。你先重建账号索引、恢复配置和临时状态,再发 adapter_worker_ready
阶段你做什么
adapter_init读取 account_configsglobal_config_valuescommoninstance_id 等初始化数据。
adapter_worker_ready声明当前 worker 支持的能力。
业务 RPC处理账号解析、入站标准化、出站构造、回执解码和主动动作。

详细协议见参考页

如果你要实现完整适配器,请继续看 适配器参考
  • control 消息信封
  • 账号解析
  • 入站标准化
  • 出站构造与回执
  • 主动事件和账号状态
  • 媒体发送契约
  • 最小 Node.js 框架

发布前只检查这些

  • adapter_init 后再处理平台业务消息。
  • 所有带 aut_echo 的调用都能返回成功或失败。
  • EventDatameta 和日志不包含 token、密码、私钥、验证码或完整签名。
  • HTTP API 调用设置超时,批量事件分批处理。
  • 媒体发送优先使用 source,只有本地 SDK 才读取 file_path
最后修改于 2026年6月20日