ManyChat AI Agent:在 WhatsApp 上通过 ManyChat 自动应答客户问题并支持转人工
pedronastasi/manychat-ai-agent · A production-shaped, provider-agnostic AI agent that answers customer questions on WhatsApp through https://manychat.com, escalating to a human rather than guessing.
ELI5:它是什么,解决什么问题
该项目是一个面向生产的、与模型供应商无关的 AI 代理,通过 ManyChat 在 WhatsApp 上回答客户提问,遇到无法回答、低置信度、预算耗尽或限流等情况时会升级给人工而不是猜测。它用 Promise.race 在 8 秒截止时间与模型调用之间做竞速:模型及时返回则内联回复,超时则先发简短确认、让模型继续运行并写入 Postgres outbox,由 worker 稍后投递,从而避免 ManyChat 10 秒 webhook 超时导致的丢消息。模型通过环境变量切换(Anthropic、OpenAI、Google、Ollama、mock),频道通过端口加适配器隔离,并带有护栏、预算上限、联系方式令牌、日志脱敏和评测集。
核心能力与快速开始
★ 1 · TypeScript
- 能做什么
- 通过 ManyChat 的 Dynamic Block external_message_callback 在 WhatsApp 上维持多轮客服对话;根据问题检索目录等数据作答并引导购买;在低置信度、schema 校验失败、预算或限流耗尽、供应商故障时升级至人工;使用 Promise.race 在 8 秒截止时间与模型调用间竞速,超时先发确认并把已回答结果经 Postgres outbox 延迟投递;记录 token、缓存命中与估算成本并设置每日 token 与金额上限;对联系人使用各自随机令牌与哈希存储以限制历史访问;去除日志中的 PII 并省略 trace 中的提示词;内置含注入尝试的评测集与并行校准的评判模型。
- 适用场景
- 在 WhatsApp 上为课程等业务提供自动客服问答与销售引导;在 webhook 有硬超时限制的聊天平台上部署 LLM 客服;需要按环境变量更换模型供应商而几乎不改代码的场景;需要可审计护栏、花费上限与转人工兜底机制的商业客服。
- 项目形态
- 可直接使用的工具
- 部署方式
- 提供 Docker Compose(Postgres 18 + agent,可选 Ollama profile)与本地 pnpm 开发方式;服务暴露 POST /v1/channels/manychat/message 与 /health、/ready。
- 主要依赖
- TypeScript/Node 项目(pnpm 管理);云模型需在 .env 配置 AGENT_MODEL 与对应 API key,本地模型需 Ollama(首次拉取约 4.7 GB 权重);需设置 MANYCHAT_SHARED_SECRET;生产需 ManyChat 侧的 Dynamic Block 配置与联系人令牌字段。
- 使用限制
- ManyChat 不对 webhook 签名,项目接受了该风险并记录补偿控制;联系人令牌强制模式下没有令牌的请求只能基于本条消息作答;快速回复在 WhatsApp 上不生效,该限制以 ChannelCapabilities 数据形式存在;8 秒竞速截止意味着较慢的本地模型默认走延迟投递路径;本地 Ollama 模型定价为零,因此每日美元上限不会触发,但 token 上限仍生效;Ollama 首次运行需拉取约 4.7 GB 权重。
- 许可证
- MIT
- 最近推送
- 2026-10-04 07:00
资料检查:2026-10-04 07:00 · 卡片整理:2026-10-04 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容
职业应用
程序员
作为可复用的参考实现,供程序员在构建接入 ManyChat/WhatsApp 的 LLM 客服代理时借鉴:用 Promise.race 在 8 秒截止时间与模型调用之间竞速,超时则先发确认并把结果写入 Postgres outbox 由 worker 稍后投递,避免 webhook 超时丢消息;通过环境变量切换模型供应商,通过端口加适配器隔离频道。
查看内容依据
它用 Promise.race 在 8 秒截止时间与模型调用之间做竞速:模型及时返回则内联回复,超时则先发简短确认、让模型继续运行并写入 Postgres outbox,由 worker 稍后投递,从而避免 ManyChat 10 秒 webhook 超时导致的丢消息。
由 AI 根据来源材料整理,未进行安装或运行验证
讨论 0
登录后参与讨论,阅读资讯无需注册。
还没有评论,来分享第一个看法。