沃趣科技的QFusion做了这么多年,售后团队一直是人肉支撑。用户在群里喊一嗓子,值班同学就得翻文档、查日志、截截图,一个常见问题一天能遇上七八遍。2025年OpenClaw火起来之后,我们开始认真考虑把它引入售后体系,搞一套能自动接待、自动分类、自动回答重复问题、复杂问题再转人工的智能售后层。这套方案从调研、POC到上线迭代,内部分了好几个版本,v2.0落地之后,每周能自动消化掉的工单比例提升了不少。这篇文章把整个方案拆开来讲,包括为什么选OpenClaw、部署时踩过的WSL2坑、飞书输出被截断的处理、微信消息没回调的排查,还有和千问、魔塔这类模型服务的对接方式,都是实打实踩过的路。
1. 项目缘起:QFusion售后为什么需要智能化
1.1 售后场景的真实痛点
沃趣科技的QFusion是面向企业客户的数据库云平台,主打数据库私有云和云原生RDS能力。这类产品有个特点:客户环境差异极大,有的跑在物理机上,有的跑在容器平台里,有的还嵌套着客户自己的网络策略。环境一复杂,售后问题就跟着复杂,但复杂问题永远是少数,大部分工单翻来覆去就那么几类。
我统计过运营后台一个季度的数据:来自售后群的提问里,大约有六成属于高频重复问题,比如"实例连接报错怎么办""备份集怎么手动清理""某个参数修改后需不需要重启""升级版本有没有兼容性风险"。这些问题不是没人会答,而是太占人力。值班同学大部分精力都耗在重复解释上,真正需要深度排查的疑难杂症反倒没时间处理。
更麻烦的是消息渠道割裂。客户习惯在微信群里@售后,也在飞书群里提问,还有人直接提单。同一个问题,可能在三个渠道各出现一次,我们得手动去重,否则就是三个人各答一遍,信息还不一致。加上夜间和节假日值班压力大,客户凌晨两点报一个"主从延迟告警",值班人醒着接也不是,不接也不是。
1.2 我们想要达到的目标
项目启动前,我们给智能售后体系定了几个可量化的目标,方便后面验证效果:
- 自动拦截率:高频重复问题中,至少一半由系统直接给出可用答案,不需要人工介入。
- 首响时间:从客户在群里发消息到系统给出首次回应,控制在30秒以内。
- 工单信息完整度:转人工前,系统必须把会话摘要、报错信息、客户环境信息打包好,人工接手时不用再从头问一遍。
- 知识闭环:每次人工处理后,方案要能回流到知识库,让同样的坑不踩第二次。
这几个目标都是奔着"把人从重复劳动里解放出来"去的。我们并不指望AI替代资深售后专家,而是要它把专家从群里捞出来,让他们只处理真正有价值的问题。v2.0方案的所有设计,基本都围绕这几个目标展开。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为什么是OpenClaw:工具选型的心路历程
2.1 市面可选方案的对比
立项时我们没直接拍板用OpenClaw,而是先对比了几条技术路线。说实话,市面上能实现智能客服的东西不少,但多数是半成品,真要落地到生产环境都差一口气。
- 自研IM机器人:直接用飞书或企业微信的机器人API开发,能收发消息、能调用后端接口。但这个路线没有"智能",意图识别、上下文管理、知识检索全得自己写,工作量不亚于做一个小型对话平台。
- 直接调LLM API做客服机器人:接一个千问或GPT接口,把历史消息拼进prompt,看起来是聊天机器人了。可消息渠道适配、会话隔离、工具调用、权限控制这些工程问题一个都躲不掉,做出来的东西很难维护。
- 通用RAG客服框架:有一些开源项目专门做知识库问答,效果也不错,但通常只覆盖"问答"这一环,和IM渠道、工单系统、自动化诊断能力的整合非常薄弱。
OpenClaw的优势在于它把"消息渠道接入、智能体调度、工具调用、记忆存储"这些都做成了框架能力。我们不需要从零开始接飞书、接微信,也不需要自己维护多轮对话的会话状态,核心精力可以放在售后业务逻辑本身。
2.2 OpenClaw的几个关键特性
OpenClaw这个项目早期叫Clawdbot,后来演进出Moltbot,再后来改名OpenClaw,本质是一个开源的个人AI助手框架。它有几个特性正好打在售后场景的需求点上。
第一是channel机制。OpenClaw天然支持飞书、微信、Telegram、网页、命令行等多种消息渠道,而且不同的IM可以配置给不同的agent使用。对售后场景来说,这意味着客户在哪个群提问,我们就在哪个群给答复,不需要强制客户迁移到新平台。
第二是agent工作流。你可以定义多个角色,比如"FAQ客服""工单分拣员""数据库诊断助手",每个角色绑定不同的提示词、工具和知识库。OpenClaw会根据会话内容做意图路由,把问题分发到合适的agent,这比在prompt里硬塞一堆指令要清晰得多。
第三是工具调用能力。OpenClaw的agent可以调用外部API、执行命令、读写文件。我们后来用它接上了公司内部的工单系统,客户问题解决不了时,agent会自动创建一张包含上下文信息的工单,并通知值班人员,完全是工作流级别的联动。
第四是模型无关。OpenClaw底层可以接入不同的模型服务,比如千问、魔塔社区的托管模型,或者私有化部署的模型。这样我们在测试环境用公共API快速验证,在生产环境切到内网模型,数据不会出内网,合规压力小很多。
2.3 内部评审时的顾虑
当然,OpenClaw也有让人犹豫的地方。最突出的是项目还比较年轻,版本迭代速度快,社区文档和案例积累不如老牌框架丰富。我们刚开始看文档时,有些配置项只能靠翻源码才能确认含义。
另一个顾虑是稳定性。OpenClaw的很多channel依赖WebSocket长连接或第三方接口,一旦IM平台调整策略,通道可能随时出问题。我们上线初期就遇到过飞书长连接偶发断开、个人微信通道消息回调失败的情况,这些在选型时都做了心理准备。
数据安全也是评审重点。售后会话里会出现客户IP、数据库版本、甚至某些敏感配置,如果走公共模型API,信息等于出去了。我们的处理方案是生产环境用私有化部署的模型服务,只在开发环境允许走公共API。这一点在后文的架构里会详细讲。
综合考虑下来,OpenClaw虽然年轻,但它的框架抽象做得比我们预想中好,而且开源意味着我们可以自己改。对于沃趣科技这种有研发能力的团队,与其在一个不灵活的闭源客服平台上妥协,不如基于开源框架做深度定制。
3. 整体架构设计:智能售后体系长什么样
3.1 分层架构
v2.0方案把整个智能售后体系分成四层,每层职责单一,互相之间通过标准接口通信。
接入层是最靠近客户的部分。飞书群聊、微信群聊、单聊消息都会先进入这一层,由OpenClaw的channel组件统一收口。接入层不做业务判断,只负责把不同渠道的消息转换成统一的内部消息结构,方便上层处理。
智能代理层是核心。它运行着OpenClaw的agent运行时,主要负责三件事:意图识别、会话管理、工具调度。客户发来一条消息,先判断是闲聊、常见问题、还是需要人工跟进的故障,然后决定走哪条处理链路。这条链路可能是检索知识库直接回答,也可能是调用工单API创建工单,还可能需要先触发一个诊断动作收集环境信息。
数据层负责喂料和记账。知识库存放FAQ、产品文档、历史工单处理方案,支持向量检索;会话存储记录每一轮客户交互,方便追溯;工单库则承接转人工后的流程数据,和公司现有的售后工单系统打通。
运营层是给管理员用的。我们做了一个简单的管理看板,能实时看到每个channel的消息量、自动回答率、转人工率、模型调用失败率。运营层还有一个人工审核入口,agent给出的答案如果需要人工确认,会先在审核列表里停留,确认后才发到客户群。
3.2 会话流转逻辑
整个会话流转逻辑,我们设计得尽量简单,避免把简单事情做复杂。
客户发消息后,OpenClaw先把消息送入意图分类模块。意图分类命中"高频FAQ"时,系统走知识库检索路径,从向量库里捞出最相关的几条答案,用LLM整理成适合对话的回复发出去。如果分类结果是"疑似故障",系统会先引导客户提供必要信息,比如实例ID、报错日志片段、最近做了什么变更,然后根据信息完整度决定是自动给出排查步骤,还是生成一张带上下文的工单转人工。
转人工这个动作,我们最看重的不是"转"本身,而是上下文打包。传统客服机器人转人工时经常只丢一句"请稍等,为您转接专员",结果人工接手后还要重新问一遍问题背景。我们的agent在转人工前,会自动生成一份会话摘要,包括客户问题描述、系统已做的排查动作、已获取的环境信息、以及候选的处理建议,然后以结构化文本的形式追加到工单备注里。值班人员接单时,基本能无缝接管。
3.3 知识库怎么准备
很多团队做智能客服,卡在知识库这一关。文档又不是没有,光QFusion的产品手册就有几百页,但直接丢给LLM去问答,效果一定很差。原因是文档的表述方式和客户提问的表述方式差别太大,文档里写的都是"参数含义",客户问的是"为什么连不上",中间缺一层转化。
我们的做法是分三步准备知识库。第一步,清洗历史工单,从几千条已关闭工单里提取出"问题现象—解决动作—最终结果"的三元组,这些是客户真实遇到过的场景,和FAQ文档互补性很强。第二步,把FAQ、产品手册、工单三元组统一切片,切成适合向量检索的文本块,每块控制在几百字以内,然后用embedding模型向量化。第三步,做知识条目的人审验证,挑一批高频问题反复测试检索召回率,命中率不够就调整切片策略或补充同义表述。
知识库不是建完就完事,要持续更新。每次人工解决一个新问题后,我们会要求值班人员把处理过程记录到工单里,每周由专人把新增的工单处理记录转化成知识条目,重新跑一遍向量化流程,保证知识库跟得上产品迭代。
4. 落地实操:OpenClaw部署与渠道接入
4.1 环境准备:Linux部署为主,Windows备选
部署环境这件事,说实话我们踩了不少坑。OpenClaw的官方文档写法比较偏开发者的直觉,默认你是在一台Linux机器上跑,但实际团队里有人Windows笔记本也要搭开发环境。于是各种安装问题都冒出来了,包括网上搜到最多的"openclaw could not safely verify the wsl2 environment"。
我们的生产环境选择很简单,直接放一台Linux服务器,Ubuntu 22.04,4核8G起步。因为OpenClaw本质上是一组长驻进程,要同时维持多个channel的长连接,还要频繁调用embedding和LLM接口,Windows下的进程管理和守护不如systemd方便。
Windows环境不是不能用,我们团队有人在Windows上用WSL2跑通了开发环境,但被WSL2折腾得不轻。Windows下安装OpenClaw,常见的方式是先确保WSL2默认版本正确,然后通过hub命令或直接clone仓库安装。如果你在Windows上遇到"could not safely verify the wsl2 environment"这类报错,基本都是WSL2环境校验没过,不用慌,挨个排查一下WSL内核版本、是否执行过wsl --update、当前默认版本是不是WSL2就行。
4.2 安装和初始化
Linux上的安装流程其实很标准。我们用的官方推荐方式,通过hub命令一键安装,它会自动拉取依赖、初始化配置目录。当然,如果你想看每一步在干什么,也可以直接clone源码本地跑,只是后续升级要自己处理。
安装完成后,第一次启动会生成一个配置文件,这个文件几乎决定了整个系统往哪个方向走。核心配置项包括模型服务地址、agent列表、channel开关、数据存储路径。我的建议是第一次配置只做最小化改动,先把默认模型跑通,再逐个加channel,这样出了问题容易定位。
bash复制# 安装引导示例(Linux/macOS,Windows下用WSL2后同样适用)
curl -fsSL https://openclaw.example.com/install.sh | bash
# 初始化配置
openclaw init
# 启动服务(前台模式,先看日志)
openclaw run
初始化的时候会问你几个问题,比如模型服务商、API Key、默认语言。这个阶段可以随便填,后面都能改。真正花时间的是把飞书、微信这些channel一个个接通。
4.3 模型服务配置:本地模型还是API
模型是整个系统的大脑,配置模型是初始化里最关键的一步。我们的生产环境走的是内网私有化模型服务,用千问的Qwen系列作为基座模型,embedding用的也是商用兼容接口。开发环境为了省事,直接配了魔塔社区的API,方便快速验证。
如果你要用千问,OpenClaw的配置里其实只要指定base_url、api_key、model_name这三个核心参数就行。千问的OpenAI兼容接口做得不错,很多框架可以直接复用。配合魔塔社区的话,原理也一样,只是地址和模型名不同。
yaml复制# 简化后的配置示意
model:
provider: openai-compatible
base_url: "https://your-model-endpoint.example.com/v1"
api_key: "sk-xxxx"
model_name: "qwen-max"
这里有个容易被忽略的细节:RAG流程里检索用的embedding模型,和聊天用的生成模型,最好是分别配置。因为生成模型追求的是指令跟随能力,embedding模型追求的是语义匹配质量,两者不是一回事。我们最初图省事共用同一个模型,结果知识库召回率明显偏低,后来分开配置才好起来。
4.4 渠道接入实操:飞书和微信
渠道接入是落地过程中最"磨人"的部分,尤其飞书和微信,各自的接入方式差别很大。
飞书这边比较正规,走的是开放平台应用体系。我们要做的是创建一个企业自建应用,打开机器人能力,配置事件订阅,然后拿到App ID和App Secret填到OpenClaw的channel配置里。飞书支持长连接和Webhook两种模式,我们生产上用的长连接,因为Webhook需要公网回调地址,安全策略不太好写。长连接模式下,OpenClaw主动和飞书服务器建立连接,即使内网环境没有对外的回调端口也能正常工作。
飞书通道上线后,很快就遇到一个高频问题:OpenClaw在飞书里输出长文本容易被截断。客户问一个综合问题,agent给出很长的一段答案,飞书界面里只显示前面一部分,后面的内容不见了。排查后发现,这其实是消息长度限制和渲染机制导致的,不是逻辑错误。我们的解决方案是配置消息分段,或者在agent的system prompt里要求回复尽量精简,复杂内容用分点列表而不是长段落。
微信这块要复杂得多。我们测试环境试过个人微信通道,能实现"OpenClaw能发消息到微信,但微信发消息没回复"的状态,原因下面单独讲。生产环境我们强烈不建议用个人微信协议,稳定性差,还有账号风险。更稳妥的方式是用企业微信的客户群机器人能力,通过Webhook把消息推送到群里,但企业微信Webhook只能主动推送,接收用户消息需要做回调,配置起来比飞书繁琐一些。
4.5 channel怎么选:OpenClaw agent怎么选择channel
OpenClaw里有个概念经常让人困惑:agent和channel不是一一绑定的,一个agent可以同时监听多个channel,一个channel也可以被多个agent分享。实际使用时,我们按"场景隔离"来分配channel。
比如内部测试群和客户售后群绝对不能混用。我们会为售后场景单独创建一个agent,只绑定生产环境的飞书售后群和企微群;内部测试agent则单独绑定一个测试群,互相看不到消息。这样设计的好处是隔离噪音,agent不会被"今天午饭吃什么"这类消息干扰,意图识别的准确率会高很多。
OpenClaw的channel选择逻辑,是通过匹配channel的名称或标识来路由的。配置里可以指定某个agent处理哪些channel来源的消息,也可以设置优先级。我们踩过的坑是,如果同一个channel同时被多个agent监听,消息可能被重复处理,客户会收到两条回答。后来我们在agent的channel配置里用了白名单机制,每个channel只允许一个agent消费,问题才解决。
5. 售后场景的agent与工作流实现
5.1 核心Agent设计
智能售后体系里,我们没有只做一个"全能客服",而是设计了好几个分工明确的agent,让OpenClaw根据意图自动路由。
主客服agent是入口,负责接待所有客户消息。它的任务有两个:做意图识别,把问题分发给后面的专业agent;同时处理一些简单的闲聊和FAQ咨询。主客服的system prompt里,我们特别强调了一点:回答不了就明确说"这个问题我需要转给技术专家",不要硬编答案。
专业agent目前有三个。FAQ agent负责知识库问答,主要应对产品功能、参数配置、版本兼容这类问题。诊断agent负责故障排查,比如数据库连接失败、主从延迟、备份异常,它会引导客户提供必要信息,然后逐步给出排查动作。工单agent负责转人工流程,它会收集上下文、生成摘要、调用工单系统API建单,并通知值班人员。
这层设计的好处是各agent的prompt都很短、很聚焦,比一个超大agent包打天下稳定得多。OpenClaw的意图路由会根据用户消息的关键词和语义,自动决定交给哪个agent,实测下来准确率在八成以上,剩下的两成模糊场景会走兜底逻辑转人工。
5.2 关键工作流:以"连接不上数据库"为例
拿客户最常反馈的"连接不上数据库"来说,这条工作流我们打磨了很久。
客户进群发一句"我这边连不上数据库了",主客服agent会先识别出这是故障类问题,转给诊断agent。诊断agent不会上来就给你甩一堆检查步骤,而是先问三个关键信息:报错截图或错误码、连接方式是内网还是公网、最近有没有改过白名单或网络策略。这三样信息凑齐后,agent会先在知识库里匹配最相近的历史工单,看有没有现成解法。
如果知识库里能匹配到方案,比如"客户改了安全组规则忘了放通端口",agent会把排查步骤和验证方法发给客户,并询问解决没解决。如果说没解决,或者一开始就没有匹配到方案,agent就走转人工流程,把完整的排查过程打包交给工单agent。
这套流程看起来不复杂,但细节决定成败。比如agent在提问时必须一次只问一个信息,不能一次抛出十几个问题让客户填表,否则客户体验会非常差。我们通过优化prompt和增加few-shot示例,把交互节奏调成了"一问一答"模式,客户配合度明显提高。
5.3 与工单系统打通
转人工不是终点,工单流程要能闭环。我们公司原先就有售后工单系统,OpenClaw这边要做的事情是打通它。
实现方式不复杂,工单系统暴露了创建工单和更新状态的REST API,OpenClaw用工具调用的方式去请求。agent拿到转人工指令后,先调用工单API创建一个工单,把会话摘要、客户环境信息、已执行的排查动作全部填进去,然后通过IM渠道通知值班人员。值班人员在工单系统里处理完问题后,可以触发一个回调,把处理结果写回OpenClaw的知识库,变成后续问答的知识素材。
打通之后有一个很好的效果:客户不需要自己在群里和工单系统里两头报,我们也能从工单号回溯到完整会话记录。我们还在工单标题里加了一个字段标注来源,是"AI自动生成"还是"客户手动提交",方便后续统计AI的拦截效率。
5.4 敏感信息与权限控制
售后场景绕不开敏感信息处理,这是我们上线前最担心的问题之一。客户聊天记录里可能出现数据库账号、IP地址、内部拓扑信息,这些内容不能随便暴露给所有agent使用,更不能留在非生产环境的日志里。
我们的做法有两层。第一层是会话数据隔离,OpenClaw的配置里区分了客户场景和内部开发场景,客户群的会话数据只存储在指定的存储目录,内部agent访问不到。第二层是敏感信息脱敏,在消息进入agent前,先过一道正则和规则引擎,把明显的密码串、长数字令牌替换成占位符,等真正需要人工介入且确认身份后,再通过工单系统查看原始信息。
权限这块,我们还做了channel白名单,只有特定的售后群才启用智能回答,其他群哪怕艾特了bot也不会响应,避免agent被拉进无关讨论里产生不可控输出。
6. 常见问题与排查记录
6.1 高频问题速查表
项目推进的过程中,我们积累了不少问题和排查经验,挑几个最有代表性的列成速查表,方便后来者少走弯路。
| 症状 | 可能原因 | 排查与解决 |
|---|---|---|
| Windows下报could not safely verify the wsl2 environment | WSL2环境校验失败 | 执行wsl --update升级内核,确认默认版本为WSL2后重试 |
| 飞书里回复被截断只显示一半 | 消息长度或渲染限制 | 配置消息分段发送,或让agent回复更精简、分点输出 |
| OpenClaw能发微信消息但微信发消息没回复 | 接收回调链路不通、登录态失效、channel未启用 | 检查登录状态、消息回调配置和channel监听日志 |
| 同一个channel多条回答 | 多个agent同时监听同一个channel | 改为channel与agent一对一白名单绑定 |
| 对接魔塔模型后请求失败 | base_url或模型名配置错误 | 校验模型服务地址,确认模型名在魔塔侧已开通 |
| OpenClaw配置千问后回答格式异常 | 模型参数或prompt格式不兼容 | 检查model_name和temperature等参数,对照官方示例调整 |
6.2 实际排查案例
第一个想说的是WSL2环境校验问题。团队里一位同学在Windows笔记本上装OpenClaw,curl脚本拉下来跑安装,结果直接报"could not safely verify the wsl2 environment",卡住了。查了一圈发现是他的WSL2内核版本过旧,OpenClaw安装脚本里有个检查项,检测到旧内核就拒绝继续。解决办法很简单,在管理员PowerShell里执行wsl --update,把内核升到最新,再把默认版本切到WSL2,重新跑安装就过了。
第二个是飞书截断问题。这个差点让我们误判成bug。客户问了个复杂问题,agent明明给出了完整回答,但在飞书里只能看到前两行,后面全没了。一开始怀疑是OpenClaw的消息发送函数限制,翻源码也没发现问题。后来试了下把同样的消息发到网页channel,发现是完整的,这才锁定在飞书侧。我们的解决办法是调整OpenClaw的消息输出格式,让agent在回复长内容时自动拆成多条消息发送,每条尽量简短,飞书里就不会截断。
第三个是微信消息没法回复的问题。我们在测试环境遇到过"OpenClaw能发消息到微信,但微信发消息没回复"的怪象。排查过程比较曲折,先看了channel配置,发现接收消息的事件回调地址没配对,微信服务器把消息推不过来;改好后还是不回,又查了登录态,发现个人微信的登录凭证过期了,重新扫码登录后恢复正常。这个经历也印证了前面的结论:个人微信通道在售后生产环境里不可控因素太多,果断切到企业微信才是正路。
7. 运营效果与后续规划
7.1 上线后的数据变化
v2.0方案全量上线后,我们观察了整整一个月的运营数据。自动拦截率做到了接近五成,也就是说群里每两个常见问题,就有一个由OpenClaw直接给出可用答案,客户没有再追问。首响时间从原来的人工平均十几分钟,压到了系统平均10秒以内,夜间和周末的效果尤其明显。
转人工工单的上下文完整度也提升了。以前人工接手要重新问一遍"实例ID是什么、报错怎么说的、什么时候开始的",现在系统打包好的工单里这些信息基本都在。值班同学的反馈是"接单前不用再去翻聊天记录了",处理效率提升不少。
模型调用成本这块,因为我们生产环境用的是内网私有化模型,成本主要是GPU资源和运维,整体可控。开发环境偶尔用一下外部API,费用可以忽略不计。
7.2 后续迭代
v2.0不是终点,我们后面还有几个方向要推进。一是知识库自动挖掘,现在从工单转知识条目还有人工参与,后续想做成半自动,系统定期扫描已关闭工单,用LLM自动生成知识条目草稿,人工只做审核。二是多租户隔离,OpenClaw目前在一个实例里跑了几个agent,后面想把不同客户的chat agent完全隔离,避免串话。三是质检能力,对agent的回答做自动质量评分,低分答案自动收回,重新检索或转人工,把最后的兜底也补上。
这套体系从立项到v2.0落地,最大的心得是:智能售后不是买一个工具装上就行,它本质上是一个持续运营的事情。模型会变、渠道会变、产品会变,OpenClaw给了一个灵活的底座,真正让体系发挥价值的是把知识库养好、把工作流调顺、把人机边界划清楚。最后再说一句,如果你们也在计划上类似的项目,千万别一上来就追求全自动,先把FAQ拦截跑顺,让团队尝到甜头,再逐步扩大边界,这条路会稳得多。
