nexora-loop · 客服 Agent · 方案 B

客户提问,Agent 应答
答不了就自动建单派人。

在 nexora-loop 客服平台上自研的客服 Agent:结合知识库答疑,解决不了就落工单、深度分析、派飞书给开发。快慢分离——热路径极简保延迟,智能全堆在客户看不到的慢路径。

✅ 已落地实现 · 全链路真实跑通 · 2026-07-08

一张图看懂整条链路

客户匿名访客走 widget,热路径只经过一个快 Agent;转工单后 Postgres 是唯一真相源,Deep Worker 异步把一句「催一下」嚼成带根因、查重、指派的结构化工单,再投影到飞书交给人工。

nexora-loop 后端 · claw-bot 客户 · 商城 / ERP 匿名访客 widget.js 原生 SSE 流式 ① Fast Agent 热路径 · 客户实时 · ReAct ≤4 步 快模型 · 只有两种出路: ① 知识库有答案 › 直接答 ② 解决不了 › 建工单 tenant 后端锁死 · search_kb 只搜本租户 search_kb 知识库检索 命中 › 流式答 create_ticket 解决不了 › 落库 走工单流程 Postgres 工单表 · 单一真相源 先落库 › 再逐步 enrich status: pending › analyzed › dispatched 飞书全挂也不吞单 · 幂等可重试 ② Deep Worker · 第二遍 强模型 + high thinking · 异步 (客户已离开,不占延迟) 读全程 · 重查 KB · 查重复工单 定根因 · 判紧急 · 按模块选开发 输出结构化工单:根因 / 紧急度 / 指派建议 / duplicate_of ③ 飞书多维表格 · 建单 结构化工单落表 + 指派开发 飞书 = 投影(Postgres 才是真相源) 李浩南(订单)· 靠类型字段区分项目 ④ 开发 飞书人工接单 改代码 (本期不自动改) ① 提问 ② 落库 ③ 捞 pending 回填 analyzed ④ 结构化工单 图例 热路径(客户实时) 工单流程(慢路径) 员工侧(飞书 / 人工) 热路径(绿):客户提问 › Fast Agent › 流式 SSE 秒回。 慢路径(黏土色):create_ticket 落库 › Deep Worker 异步 enrich › 飞书派单。

01整体架构 · 快慢分离

同一个 deepseek-v4-flash,一个 key,靠参数分快慢:Fast Agent 压制 reasoning 秒回;Deep Worker 放开 high thinking 深挖。Postgres 是单一真相源,飞书只是投影。

客户提问 Fast Agent · ReAct ≤4 步 search_kb 命中 秒回
答不了 · create_ticket Postgres 落库 pending Deep Worker · high thinking 根因/紧急度/置信度 派飞书多维表格
Fast Agent — ReAct 原生 function-calling 单循环,压制 reasoning(thinking:disabled,秒回),2 工具
Deep Worker — 异步 fire-and-forget,reasoning:high 深度分析,失败不吞单
租户锁死 — 工具 schema 不含 tenant/conversationId,后端从 conversation→bot→project 注入,LLM 碰不到
兜底扫描 — 每 10 分钟扫 pending 超时工单补触发,防丢单

02完整流程演示 · 真实对话

下面是一次真实运行(真 deepseek + 真数据库 + 真飞书)。客户从打招呼到报障,Agent 全程自主决策。

客户你好,在吗?
客服在的呀!😊 您好,请问有什么可以帮您的吗?闲聊 · 秒回 · 不建单
客户你们支持七天无理由退换货吗?
客服是的,我们支持七天无理由退换货哦!具体规则如下…命中知识库 FAQ
客户那我买的金镯子平时怎么保养啊?
客服金镯子的保养其实很简单,给您几个小建议…命中知识库 FAQ
前 3 轮建工单数 = 0 · 知识库/闲聊都能应对,不打扰人工
客户我的订单 XP20345 金镯子付款六天了一直没发货,物流也不更新,帮我催一下!
客服好的,已经帮您创建了加急工单,转交人工客服优先处理了。客服同事会尽快核实您订单 XP20345 的发货情况…🙏知识库答不了 · 建工单

工单建好后 · 客户看不到的慢路径

Deep Worker 深度分析(high thinking)
根因:商家未及时处理订单发货,导致付款后六天仍无物流更新
紧急度:high · 置信度:0.95 · status:pending → analyzed

派飞书多维表格「✅任务管理」 · 指派李浩南 · status → dispatched
完整事件链:created/fast_agent → analyzed/deep_worker → dispatched/deep_worker

03交付模块 · 逐个真实验证

模块文件做什么
DeepSeek 客户端deepseek-client.tsreasoning 开关(压制=0 / 放开=数百 tokens)+ function-calling
建工单tools/create-ticket.ts落库 pending,租户推导,fire-and-forget 触发 Deep Worker
知识库检索tools/search-kb.ts查飞书多维表格 FAQ + 关键词打分 + 未配即降级不崩
Fast Agentfast/index.tsReAct ≤4 步,2 工具,租户锁死,压制 reasoning
Deep Workerdeep/index.tshigh thinking 定根因/紧急度/置信度,幂等 + 失败不吞单
兜底扫描sweep-pending.ts扫 pending 超时补触发,防丢单,带 API route
飞书派单dispatch/index.ts写多维表格:根因/紧急度/置信度/指派李浩南,→ dispatched
编排入口orchestrator.ts串起 session→Message→Fast Agent→SSE→建单,平行于旧链路

04知识库 · 飞书多维表格

为什么用多维表格

飞书云文档搜索对 tenant token 不开放(wiki 需 user token,bot 进不去)。多维表格用 tenant token 稳定读写,每租户一张 FAQ 表天然租户隔离。

检索策略

拉本租户 FAQ 全表,内存里对 query 做「问题+关键词+答案」分词打分,取 top N(阈值过滤答非所问)。量大可换向量检索。

客户问命中 FAQ得分
七天无理由退货支持七天无理由退换货吗?29
黄金怎么保养黄金首饰怎么保养?20
戒指圈口选错了钻戒圈口选错了能改吗?20
发货要几天发货一般要多久?14

05工单状态流

pending analyzed dispatched closed
pending — 刚建,客户已收到"已记录" · analyzed — Deep Worker 分析完,有根因 · dispatched — 已派飞书给李浩南 · closed — 开发处理完