必须通过插件系统实现功能扩展,插件是扣子Bot调用外部API、读取数据库、处理私有文件或对接内部系统的唯一途径,不配置插件则无法访问任何业务侧真实数据源。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让扣子 Bot 调用外部 API、读取数据库、处理私有文件或对接内部系统,必须通过插件系统实现功能扩展。不配置插件,Bot 就只能依赖内置工具和通用模型能力,无法访问任何业务侧真实数据源。
创建插件前的强制准备
登录扣子开发者后台 → 进入「插件」页签 → 点击「新建插件」→ 选择「自定义插件」。
必须提前在「设置 → 开发者凭证」中生成并复制好 【Bot Token】,后续所有插件接口的鉴权都依赖它,丢失需重新生成且旧 Token 立即失效。
插件域名必须是 HTTPS 协议,且证书有效;HTTP 或自签名证书会导致插件状态始终显示“未就绪”。
编写符合规范的插件描述文件(plugin.json)
在插件服务根目录下新建 plugin.json 文件,内容必须包含 name、description、icon、actions 三个顶层字段。
actions 数组中每个对象至少要有 id、name、description、parameters、http 五个键;parameters 必须是 JSON Schema 格式,不能写成普通对象或注释说明。
示例片段:
{ "name": "查询客户订单", "description": "根据手机号返回最近3笔订单详情", "icon": "https://example.com/icon.png", "actions": [{ "id": "get_orders_by_phone", "name": "按手机号查订单", "description": "传入11位手机号,返回JSON数组", "parameters": { "type": "object", "properties": { "phone": { "type": "string", "pattern": "^1[3-9]\d{9}$" } }, "required": ["phone"] }, "http": { "url": "https://api.yourdomain.com/v1/orders", "method": "GET", "headers": { "Authorization": "Bearer {{token}}" } } }] }实现插件后端接口的三种部署方式
方法一:使用 Vercel 部署(推荐新手)
将插件后端代码(含 plugin.json 和接口路由)放入 GitHub 仓库 → 在 Vercel 导入该仓库 → 设置环境变量 COZE_BOT_TOKEN 值为上一步复制的 Bot Token → 部署成功后获取 Vercel 提供的 HTTPS 域名。
方法二:Nginx 反向代理自有服务
确保你的 Node.js/Python 服务监听在本地 3000 端口 → 配置 Nginx 将 /plugin/* 路径全部 proxy_pass 到 http://127.0.0.1:3000/ → 用 certbot 申请并绑定正式 SSL 证书 → 最终对外暴露的域名必须能被公网直接访问。
方法三:Cloudflare Workers 零服务器部署
在 wrangler.toml 中设置 [[routes]] 匹配你的插件域名 → 使用 fetch() 转发请求到真实业务接口 → 注意 Workers 默认不支持 set-cookie 和部分 header 透传,需手动在 request.headers 中添加 【cf-connecting-ip】必须映射为 X-Real-IP】,否则后端日志无法记录真实用户 IP。
在 Bot 中启用并调试插件
第一步:回到扣子编辑器 → 左侧菜单点击「插件」→ 点击「+ 添加插件」→ 粘贴你部署好的插件 HTTPS 域名(如 https://your-plugin.vercel.app)→ 点击「验证」。
第二步:验证通过后,插件状态变为「已启用」→ 在 Bot 的「工作流」中拖入「调用插件」节点 → 从下拉列表选择刚添加的插件动作 → 填写参数(支持变量引用,如 {{input.phone}})。
第三步:点击右上角「测试」→ 在弹出面板中输入测试参数 → 查看「网络请求」标签页确认是否发出正确 HTTP 请求 → 若返回 4xx/5xx,检查插件服务控制台日志,重点关注 Authorization 头是否缺失或格式错误。
插件调用失败时,Bot 不会抛出具体错误原因,只显示“插件执行异常”,必须通过插件服务端日志定位问题。


















