AI 客服支持栈
十件给 SaaS 团队搭 AI tier-1 客服的工具:全渠道收件箱、工单系统、共享邮箱、客户体验运营层、聊天机器人分流、对话式 AI 框架、RAG 知识库、AI 起草工单回复、人工接管升级。把 Intercom/Zendesk 的座席税账单换成可审计的开源链路。
这个 pack 包含什么
这是 SaaS 团队决定「tier-1 客服必须扩起来但不能翻倍招人」那一周会搭的栈,不是供应商博客上那种功能勾选清单。每一件都是开源、可自托管、在「工单到解决」流水线里有真实位置的。账单这件事很重要:10 座席的 Intercom 月费基本等于一台 Hetzner 跑完整套栈的成本。
顺序有意义,每层都默认下一层已经在。停在第 4 步你有一个能跑的人工客服台;停在第 9 步你有 AI 辅助客服;第 10 步(HumanLayer)保证 AI 哪天兴致一来要退款 $40K 年单时你能拦住。
推荐安装顺序
- Chatwoot — 从全渠道收件箱开始。邮件、网页聊天 widget、WhatsApp、Instagram DM、Twitter 全落到一个队列。这是 Intercom/Zendesk 替代品,也是人类客服真正生活的界面。Docker 自托管,配支持邮箱 MX 记录,挂 widget JS — 中午之前就能跑起来。
- Zammad — 主渠道是「邮件 + 电话 + SLA 报表」而不是聊天时的工单替代选项。Chatwoot 和 Zammad 选一个做记录系统,并行跑两个就是日后要还的数据碎片化债。Zammad 适合财务和运维要传统工单报表的 B2B 场景。
- FreeScout — 第三个收件箱选项,给最小的团队用。1-3 人共享邮箱、Chatwoot 显得重时,FreeScout 跑 Laravel 一台 $5 VPS 就够。每周对话数过 200 再升级到 Chatwoot。
- Erxes — CX 运营层。收件箱有了之后,你需要一个跨渠道的客户画像、success 团队看的 segment 视图、营销活动接口。Erxes 紧挨 Chatwoot/Zammad 部署,用一个自托管骨架替掉 HubSpot + Zendesk 的双套配置。
- Botpress — 做 tier-1 分流的可视化 chatbot。「密码重置的链接是啥」这种 60% 的工单根本不该到真人那里。Botpress 挂在 Chatwoot 聊天 widget 前面,按你画一次的流程接走 FAQ 流量,剩下的才升到人类队列。
- Rasa — 对话式 AI 框架,等 Botpress 的可视化流撞到天花板那一天。Rasa 给你真正的意图分类、多轮对话管理、Python 自定义动作。等你有 3-6 个月的工单数据真能训意图时再上,别更早。
- haiku.rag — RAG CLI + MCP server。这一层把你 help center 的 markdown 变成可引用的答案。
haiku-rag add-src ./docs && haiku-rag ask --cite "如何轮换 API key"会返回文档段落和源链接。接到 Botpress、Rasa、下面的 AI agent 里,每个答案都锚定到你的文档而不是 LLM 的训练集。 - AnythingLLM — 知识库前端。haiku.rag 是可编程的原语,AnythingLLM 是客服经理用来上传 PDF、同步 Notion 导出、给政策打 tag、观察 bot 被问啥的 GUI。喂第 5-7 步的语料库的唯一真相源。
- Claude Code Agent: Customer Support — 装进 Claude Code,LLM 就能基于打开的工单 + 你的 RAG 语料库起草工单回复、FAQ 条目、排障指南。输出写到 Chatwoot/Zammad 是草稿,回复质量看板没攒够数据之前永远不要自动发。
- HumanLayer — 升级路由。agent 要退款、注销账号、对外发消息的那一刻,HumanLayer 把这个调用包成审批循环:真人收到 Slack 通知看到拟动作,要么放行要么直接回复。生产 AI 客服上这一层不可妥协。
它们怎么协同
客户
│
▼
Chatwoot(或 Zammad / FreeScout) ◄── Erxes(CX 画像 + segment)
│
├─ Botpress(FAQ 分流)
│ └─ Rasa(流撞天花板时上意图 + 对话)
│
▼
Claude Code Agent: Customer Support
(起草工单回复)
│
├─ 由 ─► haiku.rag ◄── AnythingLLM(语料库后台)
│ 锚定
│
▼
HumanLayer(退款 / 注销 / 对外消息审批)
│
▼
真人客服 或 自动结案
关键的连接是 haiku.rag + HumanLayer:RAG 让 agent 不胡说事实,HumanLayer 让 agent 不乱做允许之外的动作。没有 RAG,bot 会瞎编价格档位。没有 HumanLayer,bot 哪天就把客户的 $40K 年单全退了,就因为客户打了几句脏话。
你会遇到的取舍
- Chatwoot vs Zammad vs FreeScout — Chatwoot 是聊天优先、widget 和收件箱 UX 最现代,B2C 或 PLG 选它。Zammad 是工单优先、SLA 报表是财务团队期待的格式,B2B 和企业级选它。FreeScout 最便宜最好运维,团队 ≤5 人选它。
- Botpress vs Rasa — Botpress 上线快,CS 经理自己就能编流。Rasa 要 Python 和 ML 工程师在屋里。先默认 Botpress,等真有对话日志可以训了再切(或加上)Rasa。
- AnythingLLM vs 原生向量库 — AnythingLLM 用性能上限换可用的管理界面。1 万文档以内是对的。超过这个量级,把存储层换成 pgvector 加一个薄壳 UI。
- AI 草稿自动发 vs 人在环路 — 所有团队都想自动发。没有质量看板就开自动发的团队,一个月内全部回滚。前 2000 个工单老老实实让草稿是草稿;看回复编辑率(目标 <15%)告诉你什么时候可以放松。
常见踩坑
- 两个收件箱并行跑 — 「我们慢慢迁移」基本都会变成「我们永远有两套系统」。在 Chatwoot/Zammad/FreeScout 里选一个,承诺下来。第一天迁完比拉一年分裂数据便宜得多。
- 让 RAG 看到只能内部看的文档 — 你的语料库会通过引用泄漏出去。每个文档打受众 tag(public/internal/confidential),让 haiku.rag 在检索时过滤。每季度审一次过滤器。
- 「低风险」动作跳过 HumanLayer — bot 群发一封不合时宜的事故公告给 30K 用户那一天,你会希望「退款审批」和「对外消息」都走同一条审核路径。从 day 1 两个都包起来。
- 没有回复质量看板 — 没有编辑距离和按渠道的 CSAT 指标,你就没有放权 AI 的信号。看板要在 AI 草稿开关打开之前建,不是之后。
- 把 chatbot 当成产品 — Botpress/Rasa 存在的意义是快速路由到正确答案,不是娱乐客户。用户打了两条消息,bot 既没回答也没升级,就是失败。
10 个资产打包就绪
常见问题
真给 SaaS 团队搭起来要多久?
5 人 SaaS 的现实时间线:第 1 周 — Chatwoot 上一个子域名、支持邮箱迁过去、widget 部署(2 天集中干活,剩下都是等 DNS)。第 2 周 — haiku.rag 把现有 help center 索引完、AnythingLLM 开放给客服经理做语料管理。第 3 周 — Botpress 接管 top-10 分流意图(密码重置、账单门户链接、状态页)。第 4 周 — Claude Code 客服 agent 在 Chatwoot 里起草回复,所有触及账单或对外邮件的动作都过 HumanLayer。合计:一个全职工程师一个月。Erxes 和 Rasa 等基础稳了 2-3 月后再上。
和真实 Intercom/Zendesk 账单比成本是多少?
纯基础设施:一台 Hetzner CCX23(4 vCPU、16 GB RAM,约 30 美元/月)跑 Chatwoot + Erxes + Botpress + haiku.rag + AnythingLLM 完全够。加上 LLM 账单(爬坡期 10-50 美元/月)和 Anthropic credits 给客服 agent 用。对比 Intercom 起步约 39 美元/座席/月加 AI 解决条数费,或 Zendesk Suite Professional 起步约 115 美元/座席/月 — 10 个座席就月省四位数,AI 解决条数附加费还没算。
AI agent 真能不要人就把工单结掉吗?
技术上能,前 3 个月不建议。把 Claude Code 客服 agent 配成「起草不发」。盯回复编辑率 — AI 草稿被真人改动的比例。500 个工单稳定在 15% 以下,再把特定意图类目(密码重置、状态页问题)放权到自动发,退款 / 注销 / 对外消息这些继续走 HumanLayer。完全自动结案只留给 Botpress 已经在跑的只读分流路径。
为啥同一个 pack 里 Chatwoot **和** Zammad 都进了?
因为选哪个看你的渠道结构,搭这套栈的 SaaS 团队两个都该评估再定。聊天和社媒 DM 占 60%+ 流量就选 Chatwoot — widget 和收件箱 UX 是同类最好。邮件 + 电话主导、运维团队要按优先级出 SLA 报表选 Zammad。FreeScout 是 ≤5 座席团队跳过 Postgres 部署的逃生口。只选一个做记录系统,另外两个是备选不是推荐。
Day 1 的 RAG 语料从哪儿来?
按顺序三个来源:(1) 已有 help center — 导出 markdown 直接喂 haiku.rag;(2) 历史 top-50 已解决工单匿名化后粘到 AnythingLLM 一个 'resolved-cases' workspace;(3) 内部运行手册,但只在打完 'public' / 'internal' tag 并确认 haiku.rag 真的会过滤之后。跳过产品营销文案 — 那是地球上最差的 RAG 源,全是含糊的利益话术,没有任何 bot 能引用的事实内容。