flag92 flag92
组合方案

Chatwoot + Dify — 经典 AI 客服组合

用 Chatwoot 作为多渠道入口与人机协同界面,用 Dify 提供 AI 大脑与知识库。这是中小团队最稳妥的起手组合。

场景
中小 SaaS / 电商团队,需要替换 Intercom 又想要可控的 AI 能力
月成本
$40 - $120(不含 LLM tokens)
难度
中等
ChatwootDifyPostgresRedisWeaviate

这套方案在解决什么问题#

绝大多数想自部署 AI 客服的中小团队,痛点都集中在 4 个方面:

  1. SaaS 太贵——Intercom 的 AI seat 一年轻松突破 $20k
  2. 现有客服平台不够「AI」——传统工单系统接 LLM 困难
  3. 多渠道分散——网页 / WhatsApp / 邮件 / 微信,数据散落
  4. 不想被厂商绑死——希望按需切换模型与知识库

Chatwoot + Dify 是 2026 年中文社区对这个组合达成共识的「默认起手式」,理由是协议合理、组件成熟、文档充足。

架构#

Web / WhatsApp / 邮件 / 微信

Agent Bot Webhook

工具调用

HTTP 节点

低置信度

用户

Chatwoot Inbox

Dify Chatbot

知识库
Weaviate / pgvector

业务 API

n8n / 自定义脚本

LLM 提供商

人工坐席

Postgres + Redis

角色划分#

组件在系统里扮演什么是否必需
Chatwoot多渠道入口、坐席工作台、工单系统✓ 必需
DifyAI 大脑:Prompt、知识库、工作流、模型治理✓ 必需
PostgreSQL两者共用的关系库(建议物理分库)✓ 必需
Redis队列、缓存✓ 必需
Weaviate向量库(也可换 pgvector / Milvus)✓ 必需
Sidekiq WorkerChatwoot 的异步任务(已含在 image)✓ 必需
n8n业务编排(订单、CRM 写回)可选
Postmark / SES邮件发送强烈推荐

硬件与成本#

测试 / POC(单机)#

配置数量单价(月)备注
4 vCPU / 8 GB / 80 GB VPS1$20-40Hetzner CPX31 / DigitalOcean s-4vcpu-8gb
LLM tokens(按 5,000 月会话估算)$5-30用 DeepSeek / Doubao 时偏低
域名 + Postmark$5-15
合计$30-85 / 月

小型生产(双机)#

配置数量单价(月)
4C/8G Chatwoot 节点1$30
8C/16G Dify 节点1$60
托管 Postgres(小型)1$25
总计$115-150 / 月

中型生产(3 台 + LLM 用量上升)#

总 $250-500 / 月,含 LLM tokens。

部署步骤(45-90 分钟)#

1. 准备服务器与域名#

# Ubuntu 24.04 上装 Docker
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

# 解析子域到服务器:
#   support.example.com  → 服务器 IP
#   dify.example.com     → 服务器 IP

2. 起 Dify#

git clone https://github.com/langgenius/dify
cd dify/docker
cp .env.example .env

# 关键 env:
#   CONSOLE_WEB_URL=https://dify.example.com
#   APP_API_URL=https://dify.example.com
#   SECRET_KEY=(用 openssl rand -base64 42 生成)

docker compose up -d

打开 https://dify.example.com,注册管理员,「设置 → 模型供应商」 配上 LLM(推荐 DeepSeek 起步)+ Embedding(中文用 bge-m3,可走 SiliconFlow)。

3. 在 Dify 创建 Chatbot 应用#

  • 类型选「聊天助手」或「Agent」(需要工具调用就选 Agent)
  • 上传知识库文档:FAQ、产品介绍、退款政策等
  • 分块策略选「父子检索」,效果优于默认
  • 在 Prompt 顶部加严格约束:
    你是 [品牌] 的客服助手。
    规则:
    1. 仅基于「参考资料」回答
    2. 资料不足时,回复「我没有相关信息,正在转接人工」
    3. 不要编造金额 / 日期
  • 发布应用,复制 API Key(形如 app-xxxxxxxx

4. 起 Chatwoot#

git clone https://github.com/chatwoot/chatwoot
cd chatwoot
cp docker/.env.example .env
# 改:FRONTEND_URL、SMTP、SECRET_KEY_BASE 等
docker compose -f docker-compose.production.yaml \
  run --rm rails bundle exec rails db:chatwoot_prepare
docker compose -f docker-compose.production.yaml up -d

打开 https://support.example.com,注册账号、创建 Account / Inbox。

5. 把 Dify 配成 Chatwoot 的 Agent Bot#

Chatwoot 控制台 → Settings → Agent Bots → 新建

字段
NameDify Bot
Outgoing URLhttps://dify.example.com/v1/chat-messages
Auth HeaderAuthorization: Bearer app-xxxxxxxx

在目标 Inbox 选这个 Bot 作为默认机器人。

6. 验证#

发一条测试消息到网页 Widget:

  • Chatwoot 收到对话
  • Bot 自动回复(< 3 秒)
  • Dify 后台「应用日志」可见调用记录
  • 低置信度(< 0.5)时把对话转给人工坐席

关键调优点#

知识库准备#

  • 把碎片化的 Notion / 飞书文档先清洗(去 TOC、emoji 标题、空图片)
  • 切分按 H2 / H3 标题,避免硬切字数
  • 每周用「评估集」跑一次回归(参考知识库准备实战

兜底机制#

场景处理
检索 top-1 分数 < 0.5自动回复「转人工」+ 创建工单
工作流报错失败分支返回降级答案 + 通知运维
LLM tokens 超月度上限Dify 自动停应用 + 告警
关键词命中(投诉、退款)n8n 转人工 + 飞书通知值班

人机协同模式#

不要让 AI 完全替代人工。最稳妥的模式是 AI 起草 → 人工审核 → 一键发送

  1. Chatwoot 把客户消息发给 Dify
  2. Dify 把回复以草稿形式写回(不直接发给用户)
  3. 坐席点击「发送」或调整后发送
  4. 调整内容自动回流到「改进队列」供 Prompt 工程师周一复盘

关键 KPI(实战目标)#

指标目标值6 个月观察值
首响时间(FRT)< 3 秒1.2-2.4 秒
AI 自助解决率45%-70%取决于 KB 质量
24h 回访率< 10%8%
CSAT(AI 段)> 4.0 / 54.2-4.4
单次会话成本< $0.05$0.02-0.04

常见坑#

  1. Chatwoot 邮件发不出:SMTP 走 Postmark / SES,MAILER_SENDER_EMAIL 必须在认证域内
  2. Dify 检索 0 条:换了 Embedding 模型但没重建向量库——必须删 dataset 重导
  3. Cloudflare Tunnel 502:容器绑 127.0.0.1 而不是 0.0.0.0
  4. AI 跑题:Prompt 缺约束 + 知识库混入了过期文档
  5. Tokens 账单暴涨:某个 Workflow 死循环或被 bot 灌爆——给应用设月度上限 + Cloudflare Turnstile

演进路径#

阶段加什么何时加
1. 起步Chatwoot + DifyDay 1
2. 业务集成n8n(订单 / CRM 调用)月会话 > 2k
3. 知识库升级RAGFlow(复杂 PDF)文档复杂度高时
4. 多 LLM 治理Dify 多模型组合成本压力出现时
5. 高可用拆库 + Docker Swarm / K8s月会话 > 30k
6. 本地推理Ollama + Qwen 14B/32B合规要求出现时

相关阅读#

站内搜索

按 ⌘ K 随时唤起