微信机器人需关注会话稳定性、api适配与消息路由:优先用padlocal puppet抗封,心跳保活;doubao api须严格匹配endpoint url和接入点名称;群聊需校验room.topic()白名单,私聊用talker.id过滤;加超时、降级与缓存防雪崩。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

微信登录不稳定?别硬扛私有协议
WeChaty 登录失败、扫码后断连、消息收发延迟——这些问题不是你配置错了,而是微信网页版协议本身就不支持长期稳定会话。官方明确禁止自动化登录,所有“扫码即永续”的宣传都是在透支 Puppet 的兼容性边界。
- 优先选
wechaty-puppet-padlocal(需购买授权),比开源的wechaty-puppet-wechat更抗封,尤其适配 2026 年初微信安卓 8.0.5x+ 的辅助协议升级 - 避免用个人主号测试,小号 + 单独手机扫码登录更稳妥;一旦被限流,
StarterBot logined之后 10 分钟内无响应,基本就是会话被静默踢出 - 加个简单心跳检测:每 5 分钟发一条空消息到自己,触发会话保活;代码里加
bot.say('', { to: selfContact })即可
doubao API 调用失败?先核对 endpoint 和 model 名
返回 401 Unauthorized 或 404 Not Found 不一定是密钥错了,大概率是 endpoint 地址或 model 字段填错——火山引擎控制台生成的接入点 ID(如 ep-abc123-def456)和豆包实际要求的 model 值根本不是一回事。
-
DOUBAO_URL必须填接入点 URL,不是通用 API 地址;比如你创建的是Doubao-pro-32k-240515接入点,URL 就是https://api.doubao.com/v1/chat/completions?endpoint=ep-abc123-def456 -
DOUBAO_MODEL填的是接入点名称(如Doubao-pro-32k-240515),不是doubao-pro这类泛称;填错直接 404 - 请求头必须带
Authorization: Bearer ${DOUBAO_API_KEY},且Content-Type: application/json缺一不可
群聊里乱回复?白名单逻辑得写进事件判断里
机器人一上线就在所有群刷屏,不是它太热情,是你没拦住非目标消息。WeChaty 的 room 对象不等于“群”,它也包含服务号、企业微信会话等伪群聊,直接 if (room) 判断会漏判。
- 先用
room.topic()拿群名,再比对ROOM_WHITELIST环境变量里的逗号分隔字符串;注意中文标点、空格、全角字符会导致匹配失败 - @ 触发要手动解析:检查
message.text().includes(BOT_NAME),但别忘了BOT_NAME是@豆包助手还是豆包助手——微信客户端有时会自动抹掉 @ 符号 - 私聊过滤别只靠
message.talker().name(),有些联系人昵称含 emoji 或特殊符号,建议用talker.id(wxid_xxx)做白名单,更稳定
测试脚本跑通了,但上线就超时?别跳过重试和降级
node src/doubao/__test__.js 输出“猪不可以吃钛合金”只是证明 API 能通,不代表线上可用。真实场景下豆包接口平均响应 1.2–3.8 秒,微信消息 5 秒不回就会标记为“发送失败”,并发高时容易雪崩。
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
- 加个超时控制:用
AbortController给 fetch 加signal,3 秒未响应就放弃并返回“思考中…”提示 - 失败后别直接 throw,记录日志 + 返回兜底话术(比如“网络有点忙,稍后再问?”),避免群聊卡死
- 高频群建议加内存缓存:相同问题 60 秒内重复提问,直接返回上一次结果,用
Map存questionHash → response就够用











