为纪念 35 周年:《Terminator 2: Judgment Day》将在全球影院重映
2026-07-13
2026-07-18 0
最近在做客服系统技术选型调研时,看到一类产品架构挺有意思:不是单纯做一个"AI 聊天窗口",而是把 AI 接待、人工坐席、CRM 销售管理揉进同一套中台系统里(参考案例:蓝空客服系统)。这篇文章不讲产品,只拆技术——聊聊这类"客服 + CRM 一体化"系统在架构设计上要解决哪几个核心问题,以及每一层具体怎么落地。

先说清楚这个架构决策的动机。传统方案里,客服系统和 CRM 是两套独立系统:客服工具负责接待对话,销售人员再手动把有效线索誊抄到 CRM 里跟进。这中间存在两个工程问题:
要解决这两个问题,架构上的思路是把"会话"和"客户实体"绑定在同一张数据模型里,而不是靠 ETL 或者 webhook 做异步同步。这就是为什么现在不少客服系统会往"客服+CRM"一体化方向做——本质是一次数据建模层面的决策,不是简单的功能堆叠。
典型的一体化客服中台,链路可以拆成四层:
接入层(Widget/SDK) → AI 接待层(RAG) → 人工坐席层 → CRM 数据层
下面逐层拆技术实现。
官网/App 侧的接入通常是一段异步加载的 JS 脚本,核心要解决的技术问题是:
async/defer 或动态注入 标签的方式加载,避免影响首屏性能。这一层的标准做法是"大模型 + 私有知识库"的 RAG(检索增强生成)架构,流程大致是:
用户提问 → 向量化 → 知识库检索 Top-K 相关片段 → 拼接 Prompt → 大模型生成回答
实践中真正决定效果好坏的,不是选哪个大模型,而是这几个细节:
私有化程度上,行业里现在常见的是混合部署:用户数据和会话记录存在企业自己的数据库/私有云,知识库检索和大模型推理通过 API 调用云端服务,这样能在合规和成本之间找一个平衡点;对数据合规要求更高的场景(金融、政务)才会走纯本地大模型推理的路线,但对硬件和运维要求会高很多。
坐席端要解决的核心问题是会话状态管理,一般会设计成一个简单的状态机:
待接入 → AI处理中 → 待转人工 → 坐席处理中 → 已解决/已关闭
配套的设计要点:
这是把客服数据转化为销售资产的核心一层。基本的数据模型链路是:
会话(Session) → 线索(Lead) → 客户(Customer) → 商机(Opportunity) → 合同(Contract)
几个值得注意的设计点:
last_followed_at 字段,配合状态字段的 CAS(比较并交换)更新来实现,避免多个销售同时抢占同一条线索造成的并发问题。如果这套系统要给多个客户/多个业务线复用,就要考虑多租户设计。核心要解决四个问题:
1. 数据隔离
常见方案有三种,权衡如下:
| 方案 | 隔离强度 | 成本 | 适用场景 |
|---|---|---|---|
| 独立数据库/独立部署 | 最强 | 最高 | 强合规大客户 |
| 共享数据库,独立 Schema | 中等 | 中等 | 中等规模多租户 |
| 共享数据库,行级隔离(每张表加 tenant_id) | 较弱但够用 | 最低 | 大多数 SaaS 场景 |
大多数客服 SaaS 系统会选第三种:所有表加 tenant_id 字段,配合 ORM 层或数据库中间件自动在每条查询上注入租户过滤条件,防止业务代码里漏写导致的越权查询——这是实践中最容易踩的坑,通常靠统一的数据访问层强制拦截来兜底,而不是指望每个开发者手动加 WHERE 条件。
2. 权限模型(RBAC)
典型层级是:平台超管 → 租户管理员 → 坐席/销售,每一层的权限颗粒度要能精确到"某个功能模块的读/写/删除"级别。设计时建议把权限定义成独立的资源-操作对(如 lead:read、contract:approve),角色是权限的集合,而不要把权限硬编码在角色名字上,否则后续新增自定义角色会很痛苦。
3. 资源配额
按租户限制会话并发数、知识库容量、API 调用频率,通常在网关层或中间件层做限流(如令牌桶算法),避免单租户异常流量拖垃整个系统。
4. 审计日志
所有敏感操作(权限变更、数据导出、合同金额修改)都要记录操作人、时间、变更前后的值,这部分数据量会随时间快速增长,实践中通常会单独分表或者写入独立的日志存储(如 ClickHouse),不与主业务表混在一起,避免拖慢主库查询性能。
"AI 客服 + CRM"一体化架构的核心工程难点,不在于接入哪个大模型(这一层同质化程度已经很高),而在于三件事:会话和客户实体的数据建模是否打通、RAG 落地时的切片与兜底机制是否扎实、多租户场景下的隔离与权限设计是否经得起并发考验。这三点决定了系统能不能从"能聊天"真正落地到"能支撑业务运转"。
对于正在做类似系统选型或自研的团队,建议把这几个维度作为技术评估清单的核心项,而不是只看功能列表长短。