用途:该技能是 BuilderBot(v1.4.0)的专家助手。BuilderBot 是一个用 TypeScript/JavaScript 构建多平台聊天机器人(WhatsApp、Telegram、Instagram、Email 等)的框架。技能用于在编写代码前确认技术栈(provider 包、数据库适配器、流程入口),并按规范生成与审查流程代码。
主要能力:
- 回调签名规范:ctx: BotContext(含 body、from、name、host 等平台字段),methods: BotMethods(含 flowDynamic、gotoFlow、endFlow、fallBack、state、globalState、blacklist、provider、database、extensions)。
- 流程控制语义:gotoFlow、endFlow、fallBack 必须 return;flowDynamic、state.update、globalState.update 必须 await。
- 常见 Bug 对照修正:如 flowDynamic 传原始字符串数组会拆成多条消息,应改为 [{ body: [...].join('\n'), delay: rnd() }];flowDynamic 与 endFlow 不可在同一回调,需拆成两个链式 addAction;ESM 项目禁用 require(),循环依赖时在回调内用 await import()。
- 状态管理:state.update/get/getMyState/clear 与 globalState.update/get/getAllState,支持点号路径。
- UX 审查清单:提示需说明输入格式、处理非法输入、长捕获加 idle 超时、提供退出关键词、消息简短(最多 3-4 条气泡)、菜单用编号文本而非按钮、不可逆操作前确认、结尾有明确收尾、错误信息可操作。
- WhatsApp 文本格式:粗体、斜体、~删除线~、
等宽、• 列表,禁用 HTML 与标准 Markdown。 - 消息规范:flowDynamic 数组每项为独立消息,addAnswer 数组会合并为一条;每气泡加随机延迟 rnd()。
- Presence 更新:仅 Baileys/Sherpa 支持 sendPresenceUpdate('composing'/'paused', ...),发送后需置 paused。
- 调试清单与模块结构建议(src/flows/ 加 barrel index.ts)。
使用方式:按技能提供的模式编写流程,完成后运行 eslint . --no-ignore 校验,并逐项通过 UX 审查清单。
限制:部分能力(如 Presence 更新)仅特定 provider 支持;按钮不被推荐使用;ESM 下不可用 require()。具体 provider 与数据库配置见 providers.md,代码模式见 patterns.md。