← 返回列表

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.

GitHub原文发布 未知首次收录 2026-10-04上架 2026-10-04 07:02

☆ 收藏查看项目 ↗

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

登录后参与讨论,阅读资讯无需注册。

还没有评论,来分享第一个看法。