plugin/scripts/,并使用内置 middleware.js 或 middleware.py。
本页面面向插件作者。你只需要编写脚本和顶部声明,不需要绕过 SDK 直接请求 autClaw 服务。
你可以做什么
回复消息
读取用户消息、匹配规则参数,并回复文本、Markdown 或媒体。
发送媒体
发送图片、语音、视频、文件和 mixed 消息。
保存状态
使用默认存储或命名 bucket 保存用户进度、配置和缓存。
开放路由
声明
router 和 method,把插件变成一个 HTTP 处理函数。选择语言
| 语言 | 适合场景 | 典型入口 |
|---|---|---|
| JavaScript | npm 生态、异步 I/O、前端或 Node.js 经验 | middleware.js |
| Python | 数据处理、脚本自动化、AI 调用 | middleware.py |
- JavaScript
- Python
适合需要 npm 生态、异步 I/O 和前端/Node.js 经验的插件作者。
创建一个插件
常用文档
Manifest headers
声明插件名称、作者、触发规则、参数、依赖、路由和定时任务。
JavaScript middleware
查看
Sender、存储、文件、路由、等待输入和 cron 的 JavaScript 用法。Python middleware
查看
Sender、存储、文件、路由、等待输入和 cron 的 Python 用法。Media sending
发送图片、语音、视频、文件,或处理用户上传文件。
插件文件和声明
| 位置 | 说明 |
|---|---|
plugin/scripts/*.js | 普通 JavaScript 插件。 |
plugin/scripts/*.py | 普通 Python 插件。 |
plugin/replies/*.js | 旧版回复脚本。维护旧插件时可继续使用。 |
author 必填。rule 用来匹配消息。更多字段见 Plugin manifest headers。
推荐写法
- 使用
Sender读取上下文和回复消息。 - 媒体发送使用
replyImage、replyVoice、replyVideo、replyFile或replyMixed。 - 用户上传文件使用
sender.getMediaItems()+downloadAdapterFile(...)。 - 配置项写在
param里,运行状态写入bucketSet(...);bucket 名称可用.表示子级,推荐最多 3 级。 - 依赖优先写在
dependency里;临时依赖可用importModule(...)或import_module(...)。
避免这些做法
- 不要硬编码运行时凭据、端口或服务地址。
- 不要绕过 SDK 直接请求 autClaw 服务。
- 不要手动解析平台原始文件字段;使用 SDK 的文件下载方法。
- 不要把大量数据塞进一个 bucket key;拆成多个 key 更容易维护。