Chatwoot 2026:AI 开源客户支持平台

Chatwoot v4 完整指南——开源客户支持平台。Docker 自托管,集成 AI 智能体,连接多渠道。真实基准和生产设置。

  • ⭐ 34173
  • Python
  • MIT
  • 更新于 2026-05-19
Chatwoot 2026:AI 开源客户支持平台 #

2025 年,平均 SaaS 公司在客户支持工具上每月花费 $847/客服——Zendesk、Intercom、Freshdesk 和一堆 AI 附加组件。这是 $10,164/座位/年 给一个本质上带聊天窗口的工单数据库。20 人客服团队,每年超过 $200,000 不含工资。

Chatwoot 彻底翻转这个模型。基于 Ruby on Rails 和 Vue.js 构建,MIT 许可开源客户参与平台,单一仪表板提供实时聊天、邮件、社交媒体和 SMS 支持。30,588+ GitHub stars,2026 年 3 月发布 v4.0,Chatwoot 已从副项目成熟为 $10K/年支持栈的生产级替代。

2026 年真正差异化是 AI 智能体集成。Chatwoot 现在暴露 LangChain 和 MCP(模型上下文协议)驱动机器人的原生钩子,构建无需人工干预处理 L1 查询的自治支持智能体。本指南涵盖 5 分钟 Docker 设置、多渠道配置、AI 集成模式和生产加固。

什么是 Chatwoot?(一句话) #

Chatwoot 是开源多渠道客户支持平台,统一实时聊天、邮件、社交媒体(WhatsApp、Telegram、Twitter、Facebook)和 SMS 到单一客服仪表板——原生 AI 聊天机器人集成,MIT 许可源码,可自托管在任何 VPS。

Chatwoot 工作原理:架构与核心概念 #

Chatwoot 采用经典单体 Rails 架构,Vue.js SPA 前端,Sidekiq 后台作业处理。理解核心组件帮助调试和扩展。

架构概述 #

┌─────────────────────────────────────────────────────┐
│                    Nginx / Caddy                     │
│                 (反向代理 + SSL)                     │
├─────────────────────────────────────────────────────┤
│  ┌──────────────┐      ┌──────────────────────────┐ │
│  │   Vue.js     │◄────►│    Ruby on Rails API     │ │
│  │  (前端)       │      │    (核心应用)            │ │
│  └──────────────┘      └──────────┬───────────────┘ │
│                                   │                  │
│                      ┌────────────┼────────────┐    │
│                      ▼            ▼            ▼    │
│                 ┌─────────┐  ┌─────────┐  ┌──────┐ │
│                 │PostgreSQL│  │  Redis  │  │Sidekiq│ │
│                 │ (数据)   │  │(缓存)   │  │(作业) │ │
│                 └─────────┘  └─────────┘  └──────┘ │
└─────────────────────────────────────────────────────┘

核心组件 #

组件用途生产注意事项
Rails API核心业务逻辑、REST API、ActionCable多 Puma 工作进程水平扩展
Vue.js 仪表板客服面向工单管理的 SPA生产静态资源通过 CDN 服务
PostgreSQL主数据库,存储会话、联系人启用流复制做读取副本
Redis缓存、会话存储、ActionCable pub/sub使用 Redis Cluster 高可用
Sidekiq后台作业(邮件解析、webhooks)监控队列深度;独立扩展工作进程

管理员必须知道的关键概念 #

收件箱 — 每个通信渠道(邮件、网站聊天、WhatsApp)映射到一个收件箱。所有计划可无限收件箱。

会话 — 会话是联系人与你团队间的消息线程,与渠道无关。Chatwoot 跨渠道维护会话历史。

标签与团队 — 标签按主题或优先级标记会话。团队将会话路由到特定客服组。

自动化规则 — if-this-then-that 工作流,触发自会话创建、消息接收或基于时间条件。

— 客服一键插入的预定义响应模板。支持 {{contact.name}} 动态变量。

安装与设置:5 分钟从零到在线聊天 #

前置要求 #

  • VPS 4GB RAM 最低(生产推荐 8GB)
  • Docker Engine 24.0+ 和 Docker Compose v2
  • 指向服务器的域名
  • 事务性邮件 SMTP 凭证

步骤 1:克隆和配置 #

# 克隆官方仓库
git clone https://github.com/chatwoot/chatwoot.git
cd chatwoot

# 切换到最新稳定版(v4.0.1,2026 年 5 月)
git checkout v4.0.1

# 复制环境模板
cp .env.example .env

步骤 2:配置环境变量 #

# 编辑 .env 文件
nano .env

# --- 必需变量 ---
SECRET_KEY_BASE=$(openssl rand -hex 64)
FRONTEND_URL=https://support.yourdomain.com

# 数据库
POSTGRES_HOST=postgres
POSTGRES_USERNAME=postgres
POSTGRES_PASSWORD=your_secure_password_here

# Redis
REDIS_URL=redis://redis:6379

# SMTP(使用 Mailgun、SendGrid 或 AWS SES)
SMTP_ADDRESS=smtp.mailgun.org
SMTP_PORT=587
SMTP_USERNAME=postmaster@yourdomain.com
SMTP_PASSWORD=your_mailgun_key
SMTP_DOMAIN=yourdomain.com
MAILER_SENDER_EMAIL=noreply@yourdomain.com

# 启用 AI 功能(v4.0 新增)
ENABLE_AI_FEATURES=true
OPENAI_API_KEY=«redacted:sk-…»

步骤 3:Docker Compose 部署 #

# 使用生产 Docker Compose 文件
docker compose -f docker-compose.production.yaml up -d

# 验证所有服务运行
docker compose ps

# 预期输出:
# NAME                STATUS         PORTS
# chatwoot_app        Up 30 seconds  0.0.0.0:3000->3000/tcp
# chatwoot_worker     Up 30 seconds
# chatwoot_postgres   Up 30 seconds  5432/tcp
# chatwoot_redis      Up 30 seconds  6379/tcp

步骤 4:数据库设置 #

# 运行数据库迁移
docker compose exec rails bundle exec rails db:chatwoot_prepare

# 创建管理员账户
docker compose exec rails bundle exec rails db:seed

步骤 5:SSL 反向代理 #

# /etc/nginx/sites-available/chatwoot
server {
    listen 80;
    server_name support.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name support.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/support.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/support.yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket 支持实时消息
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
# 启用站点
sudo ln -s /etc/nginx/sites-available/chatwoot /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

# 通过 Let's Encrypt 获取 SSL 证书
sudo certbot --nginx -d support.yourdomain.com

你的 Chatwoot 实例现在在线于 https://support.yourdomain.com。用默认管理员凭证登录并立即修改密码。

AI 智能体、CRM 和消息平台集成 #

通过 OpenAI 原生 v4.0 集成 AI 聊天机器人 #

Chatwoot v4.0 引入原生 AI 助手钩子。无需第三方桥梁。

# .env — AI 配置
ENABLE_AI_FEATURES=true
OPENAI_API_KEY=«redacted:sk-…»|OPENAI_MODEL=gpt-4.1-mini  # 或 gpt-4.1 处理复杂查询
AI_AUTO_REPLY_THRESHOLD=0.85  # 自动回复置信度阈值
# config/ai_assistants.yml — 定义助手行为
support_bot:
  name: "支持助手"
  model: gpt-4.1-mini
  system_prompt: |
    你是 Acme Inc 的有帮助的支持助手。
    遵循这些规则:
    1. 只回答知识库中的问题
    2. 账单问题,始终建议转人工
    3. 回复不超过 150 
  handoff_keywords: ["退款", "拒付", "法律", "投诉"]
  max_response_tokens: 200

Webhook 集成自定义 AI 智能体 #

# 创建基于 webhook 的 AI 集成
curl -X POST "https://support.yourdomain.com/api/v1/accounts/1/webhooks" \
  -H "Content-Type: application/json" \
  -H "Api-Access-Token: YOUR_API_TOKEN" \
  -d '{
    "url": "https://ai-bridge.yourdomain.com/chatwoot/webhook",
    "subscriptions": ["message.created", "conversation.created"],
    "headers": {"X-Custom-Auth": "your-secret-token"}
  }'
# ai_bridge.py — LangChain 集成示例 webhook 处理
from flask import Flask, request, jsonify
from langchain_openai import ChatOpenAI
from langchain.chains import RetrievalQA
from langchain_community.vectorstores import Chroma

app = Flask(__name__)
llm = ChatOpenAI(model="gpt-4.1-mini", temperature=0.3)

@app.route("/chatwoot/webhook", methods=["POST"])
def handle_chatwoot():
    data = request.json
    message = data.get("content", "")
    conversation_id = data["conversation"]["id"]

    # 查询知识库
    qa_chain = RetrievalQA.from_chain_type(
        llm=llm,
        chain_type="stuff",
        retriever=vectorstore.as_retriever()
    )
    response = qa_chain.invoke({"query": message})

    # 发送回复到 Chatwoot
    send_chatwoot_reply(conversation_id, response["result"])
    return jsonify({"status": "ok"})

多渠道配置 #

# 通过 Twilio 添加 WhatsApp Business 渠道
curl -X POST "https://support.yourdomain.com/api/v1/accounts/1/inboxes" \
  -H "Content-Type: application/json" \
  -H "Api-Access-Token: YOUR_API_TOKEN" \
  -d '{
    "name": "WhatsApp 支持",
    "channel": {
      "type": "whatsapp",
      "provider": "twilio",
      "provider_config": {
        "account_sid": "ACxxxxxxxxxxxxxxxx",
        "auth_token": "your_auth_token",
        "phone_number": "+123****7890"
      }
    }
  }'
# 添加 Telegram Bot 渠道
curl -X POST "https://support.yourdomain.com/api/v1/accounts/1/inboxes" \
  -H "Content-Type: application/json" \
  -H "Api-Access-Token: YOUR_API_TOKEN" \
  -d '{
    "name": "Telegram 支持",
    "channel": {
      "type": "telegram",
      "provider_config": {
        "bot_token": "YOUR_BOT_TOKEN_FROM_BOTFATHER"
      }
    }
  }'

基准测试与真实用例 #

性能基准(v4.0.1 在 4GB DigitalOcean Droplet) #

指标备注
冷启动时间3.2sDocker 容器启动
消息投递延迟95msP95 同区域客户端
并发客服会话85内存压力前
每日会话数12,000持续吞吐量
数据库大小(1 年)~45GB50 万会话、全文搜索
API 响应时间(P95)180ms认证会话列表
WebSocket 消息延迟45ms实时客服<->客户

真实部署画像 #

公司类型客服渠道月成本(自托管)云端等价
SaaS 创业3聊天+邮件$24(VPS)$360(Intercom)
电商12聊天+邮件+WhatsApp+FB$64(VPS+备份)$1,200(Zendesk)
数字 agency25全渠道$128(HA 设置)$2,900(Freshdesk)
非营利8聊天+邮件+SMS$24(VPS)$640(HubSpot)

案例研究:15 人客服团队 8× 成本降低 #

2026 年 1 月,东南亚中型电商公司从 Zendesk Suite 迁移到自托管 Chatwoot。4 个月后:

  • 支持工具成本:$2,160/月 → $64/月(97% 降低
  • AI 自动解决率:34% L1 查询无需人工介入
  • 平均响应时间:4.2 小时 → 28 分钟
  • 客服满意度:6.8/10 → 8.4/10(更好 UI,更少上下文切换)

高级用法与生产加固 #

多工作进程水平扩展 #

# docker-compose.scale.yaml — 添加更多 Sidekiq 工作进程
services:
  worker_default:
    image: chatwoot/chatwoot:v4.0.1
    command: bundle exec sidekiq -C config/sidekiq.yml
    deploy:
      replicas: 3  # 基于队列深度扩展
    environment:
      - REDIS_URL=redis://redis:6379/0

  worker_high_priority:
    image: chatwoot/chatwoot:v4.0.1
    command: bundle exec sidekiq -q high -q default -q low
    deploy:
      replicas: 2

数据库读取副本 #

# config/database.yml — 添加读取副本
production:
  primary:
    <<: *default
    host: <%= ENV['POSTGRES_HOST'] %>
  primary_replica:
    <<: *default
    host: <%= ENV['POSTGRES_REPLICA_HOST'] %>
    replica: true
# .env
POSTGRES_REPLICA_HOST=postgres-replica.yourdomain.com
DATABASE_REPLICA_ENABLED=true

自动备份 #

#!/bin/bash
# /opt/scripts/chatwoot-backup.sh

BACKUP_DIR="/backup/chatwoot/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"

# PostgreSQL 导出
docker compose exec -T postgres pg_dump \
  -U postgres chatwoot_production > "$BACKUP_DIR/database.sql"

# Redis RDB 快照
docker compose exec redis redis-cli BGSAVE

# 上传到 S3
aws s3 sync "$BACKUP_DIR" "s3://your-backup-bucket/chatwoot/"

# 只保留最近 14 天
find /backup/chatwoot -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;
# Cron 任务——每天凌晨 2 点
0 2 * * * /opt/scripts/chatwoot-backup.sh >> /var/log/chatwoot-backup.log 2>&1

Prometheus 监控 #

# Chatwoot 暴露 /metrics 端点
# 添加到 prometheus.yml

scrape_configs:
  - job_name: 'chatwoot'
    static_configs:
      - targets: ['support.yourdomain.com:3000']
    metrics_path: '/metrics'
    scrape_interval: 30s

速率限制与安全头 #

# .env 启用 API 速率限制
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_PERIOD=60  # 每秒每 IP

# Nginx 安全头
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'" always;

常见问题 #

Q: 自托管 Chatwoot 最低服务器要求? A: 4GB RAM VPS 最低,生产 8GB,Docker 24.0+,域名和 SMTP 凭证。

Q: 成本对比 Zendesk/Intercom? A: 5 人团队 $24/月 VPS vs $300-500/月商业工具,97% 成本降低。

Q: 有内置 AI 聊天机器人集成? A: v4.0 原生支持 OpenAI,设置 ENABLE_AI_FEATURES=true 即可。

Q: 如何集成非 OpenAI LLM? A: 用 webhook 集成,转发到自定义 LLM 后端,再通过 REST API 回复。

Q: GDPR 合规吗? A: 是的,你控制服务器位置和保留策略,数据主权完整。提供数据导出和删除 API。

结论 #

Chatwoot 是 MIT 许可开源多渠道客户支持平台,34,173 GitHub stars。通过原生 AI 集成、低服务器要求和生产级扩展能力,是 Zendesk/Intercom 的高性价比替代。

GitHub: https://github.com/chatwoot/chatwoot

💬 留言讨论