upio.ai / Akke / 用户案例 / 闽D想家
想
USER JOURNEY · 一条窗台柜报价 → 被撤回 → 人工重算到 2797.4

闽D想家
AI 报了 1581,销售撤回改成 1817.6

9 月 21 日下午,一位厦门客户加上好友后问"我就做一个窗台柜 3.2/0.87/0.5,需要多少钱"。AI 在客户消息落库 24 秒后给出完整算式(客户视角约 2 分钟,微信显示 16:10):1581 元。销售看到后撤回它,改口报 1817.6 元,客户第一句话是"怎么涨价了"。
这一页把整条对话按"谁说的"标出来,把撤回的 AI 原文和它当时命中的知识、规则一并还原——结论和第一版不一样:那条算错的规则,其实就写在被检索命中的那篇知识里(但它有没有真进提示词,还差一步没验)。

2 条 AI 回复(微信里 4 个气泡)3 条 撤回提示−236.6 元 窗台柜少算 13%⚠ 约看样品 · 库里无到店记录
1
加好友承接
9-21 14:51
2
通过验证
9-21 15:06
3
要看样板
9-21 15:50
4
报尺寸问价
9-21 16:11
6
撤回·人工接管
9-21 16:19
7
逐项核到 2797.4
9-21 16:38
8
约看样品
9-21 18:41 · 无到店记录
00 · Full transcript

完整聊天记录与逐句积木标注

AI 的两条是数据库原文(一字不差),下面的"真实调用"是 llm_call_provenance 里当时那一次的记录。销售手打的消息不经过系统,标为人工。图片和门店位置卡片都放回了原位,点击放大。

系统
个人微信单聊 · 客户备注 闽D想家138******38。执行器跑在 Windows 云电脑 salespc-desktop-ehf2mjt 上。
会话 adae1b28…积木:无 · 会话信息
销售(手打)
我们是有大有小全屋定制,兔宝宝ENF多层实木原价868现在征集样板房,每平方补贴300只要568,加微申领补贴
09-21 14:51👤 人工手打 · 加好友招呼语 · 个微 AI 首触仍在干跑阶段(只判断不发送),这条不经过系统
系统
以上是打招呼的消息
09-21 15:06积木:无 · 微信系统提示
闽D想家
我通过了你的朋友验证请求,现在我们可以开始聊天了
09-21 15:06积木:不适用 · 客户消息
闽D想家
在哪里看样板
09-21 15:06积木:不适用 · 客户消息 · 第一个到店意向信号
销售(手打)
咱们公司就有
09-21 15:50👤 人工手打 + 人工发送位置卡片 · 当前自动化发不出企微/微信原生位置卡片,见 04.1
闽D想家
我就做一个窗台柜3.2/0.87/0.5
09-21 16:11:59积木:不适用 · 客户消息 · 落库时间(微信显示 16:10)
⚠️ 这条和下一条在微信里是两个气泡,库里是同一行 message(content 含换行)。全表客户消息共 2 行
闽D想家
需要多少钱
09-21 16:11:59积木:不适用 · 客户消息 · 明确问价
AI 自动回复
窗台柜按投影面积算,3.2×0.87=2.784㎡,568元/㎡,材料人工全包总价约1581元。这份配置清单你先看看,逐空间列了做什么柜、价格怎么算、哪几项最容易多花钱~
09-21 16:12:23(客户消息落库后 24 秒 · 客户视角约 2 分钟)💡 逻辑(作者推断,非日志):客户给了三个尺寸并直接问价,走的是给完整算式而不是"大概一千多"。
📚 真实调用:wecom.nurture.rules v27 · 模型 qwen3-235b-a22b-2507 · 读入 19,825 token · 推理 6.97s · 成本 $0.0018
📖 命中知识 1 篇:《预报价算例:45.78㎡ 怎么算出 2.47 万》(相关度 0.55)
⚠️ 算错的那条规则就在这篇里,见下方 04
闽D想家
09-21 16:12 后积木:不适用 · 客户图片 —— 这条没有进数据库。销售后来改口的依据("没看到高度不足一米")正是这张
AI 自动回复
09-21 16:12 后💡 逻辑(作者推断,非日志):话术末尾承诺"这份配置清单",素材侧另按关键词挑图。
⚠️ 货不对板:发出去的是一张"环保检测·不合格全额赔付"海报,一个空间也没列。文案和素材是两套逻辑各自选的,中间没人核对
闽D想家
做到窗台一样高收纳柜
09-21 16:14:41积木:不适用 · 客户消息 · 客户在继续给做法,等的是"那这样多少钱"
AI 自动回复(已被销售撤回)
不着急定哈,我发几张不同风格的效果图您先看看——现代极简、原木侘寂、轻奢,哪种更对您胃口呀?
09-21 16:14:58 —— 数据库还原💡 逻辑:按"培育期该推素材"走。
❌ 违反了同一轮命中的决策规则:conf=10,大意是客户问的那句答完就停、别顺带介绍别的产品、用一句自然的话把客户往到店上带。客户在谈尺寸,它跳到风格选择题,既没答尺寸、也没往到店带
系统
你撤回了一条消息 × 3
09-21 16:15–16:19积木:无 · 截图连着三行。AI 在微信里一共是 4 个气泡(1581 文字 / 环保海报 / 风格文字 / 风格效果图),数据库里算 2 条 message。
3 条撤回对应哪 3 个气泡,页面没有查到——所以也不能说"两条 AI 回复都被撤回了"。
唯一确定的是:销售 16:19 改口重算,客户随即问"怎么涨价了",说明 1581 那个数客户看到过。
销售(手打)
这个地方是按 1 米算,3.2 米就是 568×3.2 = 1817.6 元
09-21 16:19👤 人工接管 · 改口重算 · 销售用的口径与知识库原文完全一致("柜体高度不足 1m 的按延米算")
闽D想家
怎么涨价了
09-21 16:19 后积木:不适用 · 信任受损信号 —— 报低了再改口的真实代价
闽D想家
免定金吗 / 兔宝宝的吗
09-21 16:19 后积木:不适用 · 客户消息
销售(手打)
这几个品牌都可以
09-21 16:19 后👤 人工手打 + 人工发图
销售(手打)
没有现的,之前没看到高度不足一米,习惯性按实际高度算了😄
09-21 16:22👤 人工接管 · 这句话是整页的枢纽:他能发现,是因为看了客户那张现场照片;而那张照片没进系统
闽D想家
客户两边加立柜怎么算
09-21 16:24积木:不适用 · 客户图片 ×2 · 同样未进数据库
闽D想家
一边0.65,一边0.50;前面那个做 3.2/0.87/0.4
09-21 16:24 后积木:不适用 · 客户消息
销售(手打)
这两个高度分别是多少 / 这个是 3.2 米长、0.87 米高、0.4 米深,对吗
09-21 16:38👤 人工接管 · 逐项核对:不猜尺寸,把每个数字念回去让客户确认
闽D想家
对 / 那个高度 1.5 / 深度也是 0.4
09-21 16:38 后积木:不适用 · 客户消息
销售(手打)
0.65×1.5=0.975 ×568=553.8 元
0.5×1.5=0.75 ×568=426 元
3.2×568=1817.6 元
553.8+426=979.8;979.8+1817.6 ≈ 2797.4 元
09-21 16:38 后👤 人工接管 · 完整报价 · 三个柜体分别按各自高度判定口径:两个立柜 1.5m 高按平方算,窗台柜不足 1m 按延米算
销售(手打)
568 配的就是这样子的,抽屉是全部累计三个平方,选一个抽屉
09-21 16:44👤 人工接管 · 赠送抽屉口径(知识库里也有:"每满 3㎡投影送 1 个")
闽D想家
那你们这个可以做几种抽屉 / 柜门有没有防水的 / 光缓好不好
09-21 16:44–16:49积木:不适用 · 产品细节连问,知识库里都有答案,但 AI 已退出
销售(手打)
一个抽屉 / 有 SPC 木芯板
09-21 16:49👤 人工接管 · 全程手打
闽D想家
我们原来是白色 …… 这种是木头做漆的吗?
09-21 16:55 / 17:06积木:不适用 · 客户图片 ×2 · 同样未进数据库
销售(手打)
这个看起来是烤漆,但是不一定是原木烤漆,原来的可能是密度板烤漆
09-21 18:17👤 人工接管 · 工艺判断 · 需要看图才能回答,当前链路做不到
闽D想家
那咱们在了防水好擦洗也可以
09-21 18:41积木:不适用 · 客户消息 · 异议消解
闽D想家
那天有时间我去看一下样品
09-21 18:41积木:不适用 · 到店意向信号(未落具体时段)
销售(手打)
好的
09-21 21:16👤 人工手打 + 人工发送位置卡片 · 对话停在这里,客户没给具体时段,也没有到店记录

图片来源:AI 那张风格效果图取自图库原图(xgt:style-12:0496,点开是全尺寸);其余每一张——客户的现场照、销售的品牌表与门板照、两张门店位置卡片——都是从微信长截图按原位裁出再放大的,偏糊,能看清是什么、看不清细节。位置卡片的详细地址在这个分辨率下认不出来,只能确认标题是"有大有小·全屋定制供应链中心"、在福建省厦门市、地图落点挨着"海西金谷";补一张原图即可替换。

01 · Customer context

用户背景与核心需求

这位客户不是来"了解一下"的——他一上来就给三个尺寸、直接问价,是典型的已经量好、准备比价的阶段。整场对话的所有摩擦都发生在"报价准不准"这一件事上。

📏

需求极其具体

开口就是"我就做一个窗台柜 3.2/0.87/0.5"——长宽高齐全,后面又追加两个立柜和前柜的尺寸。

💰

核心诉求是价格

第二句就是"需要多少钱"。全程 20 多轮里,价格相关占了一半以上。

🏠

旧房局部改造

从他发的照片看是已入住的房子:现有白色门板、窗帘、堆放的杂物;不是毛坯全屋定制。

🧪

关心材料与工艺

问了防水柜门、"这种是木头做漆的吗"、抽屉种类——属于会自己做功课的客户。

📍

到店意向出现两次

15:06"在哪里看样板"、18:41"那天有时间我去看一下样品"。两次都没落到具体时段。

◐

决策阶段

报价核对 → 看样品前。本页截稿时仍无到店记录、无定金、无成交。

02 · Conversion timeline

完整转化时间线

从加好友(14:51)到客户说要看样品(18:41)3 小时 50 分,到销售最后一条(21:16)共 6 小时 25 分。真正的转折发生在 16:12–16:19 这七分钟里:AI 报了一个数,销售撤回它,客户问"怎么涨价了"。

14:51 – 15:06

人工加好友,客户通过后直接问看样板

微信截图

招呼语是销售手打的模板——"原价868…补贴300只要568,加微申领补贴"。客户通过验证后第一句就是"在哪里看样板",这是第一个到店信号。销售手发了门店位置卡片。

16:11:59

客户给出三个尺寸并直接问价

数据库原文

"我就做一个窗台柜3.2/0.87/0.5" + "需要多少钱"。这是整条对话里唯一一次 AI 拿到了完整、明确、可计算的输入。

16:12:23

AI 在落库 24 秒后给出完整算式:1581 元

provenance 实录

算式完整、口径清楚("材料人工全包")、还附了素材。形式上这是一条好回复——比"大概一千多"强得多。问题只出在一步:3.2 × 0.87。

16:12 后

客户补发现场照片,AI 没有任何反应

截图·未入库

客户拍了要做柜子的那扇窗发过来。这张照片没有进数据库,AI 的下一条(16:14:58)跳到了风格效果图,对照片只字未提。

16:15 – 16:19

销售撤回三条,接管对话

截图

撤回后改口:"这个地方是按 1 米算,3.2 米就是 568×3.2 = 1817.6 元"。客户立刻回:"怎么涨价了"。销售解释:"之前没看到高度不足一米"——他是看了客户那张照片才发现的。

16:24 – 16:44

人工逐项核对,报到 2797.4 元

截图

客户追加两个立柜。销售把每个数字念回去确认("3.2 米长、0.87 米高、0.4 米深,对吗"),然后三个柜体分别按各自高度判口径算——1.5 米的按平方,不足 1 米的按延米。这一段是人做对的示范。

16:49 – 18:17

产品细节连问,全靠人工手打

截图

防水柜门、SPC 木芯板、"这种是木头做漆的吗"、抽屉种类——这些知识库里都有,但 AI 被撤回一次后就退出了整场对话(机制见 04)。其中"木头做漆"那条还得看图才能答。

18:41 – 21:16

客户说"那天有时间我去看一下样品"

截图 · 未闭环

第二次到店意向。销售回"好的"并再发一次位置卡片。对话停在这里——没有落具体日期、没有约设计师、没有后续提醒。对照汤圆那条:客户给出"两点半到三点"才是可执行的到店承诺,"那天有时间"不是。

03 · Conversation strategy

每个阶段是怎么推进的

阶段销售 / 自动化动作解决的顾虑结果信号积木归类
首触加微人工手打补贴话术(868→568)凭什么加你客户通过并主动问看样板非积木 · 个微首触仍在干跑
问价应答AI 给完整算式 + 单价 + 口径到底多少钱客户继续补需求(高意向)真实命中《预报价算例》知识 1 篇
素材投放话术承诺"配置清单",实发环保海报(未解决)客户未回应素材货不对板 · 文案与素材两套逻辑
培育推进AI 抛"三种风格你喜欢哪个"(制造了新负担)被销售撤回违反命中规则 conf=10「答完就停」
纠错接管人工撤回、改口、解释原因价格到底算不算得准客户"怎么涨价了" → 接受解释人工 · 非积木
逐项核价人工把每个尺寸念回去确认再算会不会又算错客户继续追问抽屉、门板人工 · 本案最该被复用的动作
到店邀约人工发位置卡片 ×2去哪看"那天有时间我去看一下样品"人工 · 未落时段,未闭环
03.1 · Reply pipeline

那条 1581 是怎么生出来的

下面这条链路是每一条 AI 回复都会走一遍的。格子里的数字全部取自 16:12:23 那条报价回复的真实调用记录。

01 发现
读微信窗口
GUI 轮询未读
16:11:59 落库
02 落库
写 messages
客户两条
尺寸 + 问价
03 检索
捞知识/示例/规则
知识 1 篇(0.55 高)
示例 3 条 规则 11 条
04 组装
拼提示词
wecom.nurture.rules v27
19,825 token
05 生成
模型推理
qwen3-235b-a22b-2507
6.97s → 44 token
3.2×0.87 算错
06 过闸
自检与清洗
抓到 568元/㎡、1581元
priceOutOfRange=false
放行
07 发送
配素材 + 发出
配了 env-test-price
16:12:23 发出(24s)

第 03 格捞对了东西(相关度 0.55,是这一篇里唯一命中的知识)。第 04 格读进去 19,825 token——但那半句计价规则有没有真的在里面,我们没取到 assembled prompt,没法确认(见 04)。确定出问题的是第 06 格和第 07 格:闸只看单价不看算式、素材配错。第 05 格的输出确实漏了那半句,至于是"没看见"还是"没拿到",待验。

03.2 · What it cited

这两条回复引用了什么

模型每轮拿到三类东西:知识文档(事实口径)、对话示例(怎么说话)、决策规则(该做什么别做什么)。把实际引用到的原文摊开,问题出在哪一类上就很清楚了。

引用一 · 知识 —— 捞对了,漏读了

命中知识《预报价算例:45.78㎡ 怎么算出 2.47 万》· 相关度 0.55 · 唯一命中

文档末尾原文:面积口径:投影面积 = 宽 × 高;见光面不计入柜体面积、见光板单独算;柜体高度不足 1m 的按延米算(1m 单价 = 1 平方单价);榻榻米按长×宽,背板必须升 18mm。

AI 用了:投影面积 = 宽 × 高 → 3.2 × 0.87 = 2.784㎡

AI 漏了:柜体高度不足 1m 的按延米算 → 0.87 米不足 1 米,应当 3.2 × 568 = 1817.6 元

同一句话的前半句用了,后半句没用。这不是知识缺失,是长上下文漏读。

引用二 · 示例 —— 第二条回复的句式可能来自这里

命中示例 8fdef3ca · quality 9 · tags: enterprise-case, spin-paindig

示例客户:主要想做衣柜和橱柜

示例回复:行,这俩是重头。您现在最头疼的是收纳不够用,还是想要好打理不落灰呀

AI 第二条实发:不着急定哈,我发几张不同风格的效果图您先看看——现代极简、原木侘寂、轻奢,哪种更对您胃口呀?

同样是"二选一反问"的收尾句式。示例的前半句"行,这俩是重头"是先给一个认可,AI 那条前半句给的却是"不着急定哈"——把"接住"换成了"踩刹车"。句式学到了,用在了错的时点。(句式同源是推断,不是调用日志能证明的事。)

另外两条命中示例 · 都是价格/工艺异议

5de32005(q10)"你这价太高了" → "这568真到地板价了…换498一平…不封边能再省";315d7bb0(q9)"想用生态板做柜门便宜点" → "生态板做门需要覆SPC,容易开裂"。
两条都是"客户嫌贵时怎么答",而这位客户根本还没嫌贵——他只是问多少钱。

引用三 · 决策规则 —— 不是"命中",是每轮全量注入

先说清一件事:规则不按客户这句话检索

查 src/lib/org-context.ts:decision_rules 是按 confidence DESC 取前 40 条全量注入(门店安全规则另走一条独立查询),不是按客户当下这句话检索的。所以下面说"命中"只是 provenance 记了这一轮注入了哪些,不代表系统判断它们跟这句话相关;"照做/违反"是把输出和条文对照出来的,不是系统的判定。

conf=10 · 被违反

规则原文:客户问的那句已经答完、又还没到必须转真人的时候——这一轮的目的只有一个:邀约客户到店看样、看方案。客户问的那句答完就停,别顺带介绍别的产品,也别主动铺开讲优惠活动。

→ 客户在说"做到窗台一样高收纳柜"(继续给尺寸),AI 既没答尺寸、也没往到店带,而是铺开讲了三种风格。

conf=10 · 本案没触发但值得记

规则原文:客户明确拒绝、说别再联系、或情绪明显不好 → 立刻交给真人销售。
客户说"怎么涨价了"时是情绪信号,不过当时销售已经手动接管,规则没有机会触发。

缺一条规则

11 条规则里没有任何一条管"算出来的数对不对"。计价规则写在知识文档里(会被漏读),没有写成规则,更没有写成代码。

04 · Friction map

核心卡点与突破过程

最重要的一条 · 与第一版结论相反

那条算错的规则,就写在被检索命中的那篇知识里

第一版这页写的是"AI 不知道这条行业规则"。查了 llm_call_provenance 之后要更正:这一轮检索命中了《预报价算例:45.78㎡ 怎么算出 2.47 万》(相关度 0.55,是唯一命中的知识文档),而那篇文档在 knowledge_documents 里的结尾一段白纸黑字写着:

面积口径:投影面积 = 宽 × 高;见光面不计入柜体面积、见光板单独算;柜体高度不足 1m 的按延米算(1m 单价 = 1 平方单价);榻榻米按长×宽,背板必须升 18mm。

确定的是:规则在库里、这篇文档被这一轮检索命中、AI 用了同一段口径的前半句(宽 × 高)、漏掉了紧跟其后的那半句。

但有一步还没验:那半句到底有没有进提示词。我们只有 token 总数(19,825),没有取到当轮真正拼出来的 prompt。检索通常按 chunk 命中,而这句恰好在文档末尾一段——最容易被切掉的位置。所以"进了没照做"和"根本没进上下文"这两种情况,现有证据分不开。

一条命令就能分开:打出那一轮的 assembled prompt(或检索回的 chunk 原文),grep「不足 1m」。
这一步为什么值钱:如果其实没进,那么只做"报价走代码"只盖得住 568×面积 这一条,文档里其它口径(转角 ×1.5、护墙板 180、见光板另算、榻榻米背板升 18mm)还会继续错;而更便宜的修法——把口径表整段常驻注入、或搬进 decision_rules——会被"补知识没用"这句话劝退。
用户卡点

报低了再改口,比一开始报高更伤

客户收到 1581,七分钟后被告知 1817.6,第一反应是"怎么涨价了"。报价这件事是不对称的:报低了签约要加钱、客户会投诉;报高了直接劝退。所以它必须由确定性的计价逻辑保证,不能落在模型的记忆力上。

人工参与

销售发现了,但"因为看了照片"是我们加的

销售改口的原话只有一句"之前没看到高度不足一米"。他没说是照片让他发现的——而 0.87 这个高度本来就在客户的文字消息里、也已经入库,不看照片同样能发现。第一版把"因为那张照片"写成了枢纽,撤回:他是看了照片还是重读了尺寸,没有人问过他。

图片不入库仍然要修,但理由换成有据可查的那个:客户主动给的信息有一整类(5 张现场照)根本没进 messages——这条有全表 4 行文字的记录支撑。

用户卡点

客户在谈尺寸,AI 递上一道风格选择题

"做到窗台一样高收纳柜"等的是"那这样多少钱"。AI 回"不着急定哈,我发几张风格图,哪种更对您胃口"——在客户踩油门的时候踩了刹车,还额外抛了个三选一。这一轮命中的规则里明写着"客户问的那句答完就停,别顺带介绍别的产品"。

⚠️ 未验证 · 本页最需要先查的一条

16:14 之后 AI 一条没再回,原因还没查出来

第一版这里写的是"这是设计如此,不是故障——销售接管后系统看到'最后一条是我方发的'就不插队"。这个说法没有任何日志或代码支撑,撤回。

同样成立、而且代价大一个量级的另一种解释是:这条会话的消息捕获在 16:14 之后停了。本页自己的数据偏向后者——16:14 之后 5 小时里客户发的 6 段文字和 5 张照片,messages 表里一行都没有(全表只有 4 行)。"看到最后一条是我方发的"这个判断的输入从哪来,页面答不上来。

验证 ①取那台云电脑 16:14–21:16 的执行器本地日志,看有没有"我方已接管 → skip"这类决策行。
验证 ②查同一时段这台机器其它会话有没有 role=customer 落库。有 = 单会话跳过;没有 = 捕获整体停了,影响面是这台机器上所有会话。

不管是哪一种,代价都已经发生:后面 5 小时里客户问的防水、木纹、抽屉——知识库里全有答案——都靠销售手打。

未闭环

两次到店意向都没落成时段

"在哪里看样板"和"那天有时间我去看一下样品"都是强意向,但都没转成具体日期。对话停在销售发完位置卡片。没有提醒、没有待办、没有到店记录。

04.1 · Technical blockers

技术卡点:三道闸都没拦住这个数

1581 这个数字从生成到发出,经过了三个本该拦住它的地方,一个都没拦住。它们各自漏在不同的层。

技术卡点 01

价格闸看过这条回复,判它"没问题"

这一轮的 output_signals 抓到了两个价格 568元/㎡ 和 1581元,结论是 priceOutOfRange = false、priceUnauthorized = false。闸没坏,它只管一件事:单价 568 在授权区间内 → 放行。它不验面积是怎么算出来的,所以 3.2 × 0.87 这一步错了它看不见。

现状校验单价 token 是否在授权价表内。
缺口不校验"面积 × 单价 = 总价"这条算式本身。
建议报价类回复走确定性计算:模型只负责取尺寸,金额由代码算。
验收同样的输入必须每次得到同一个数,且可回放。
技术卡点 02

客户发的图片不进数据库

这条对话客户至少发了 5 张现场照片(窗台、两处立柜位、两张现有门板柜体),messages 表里一张都没有,全表只有 4 行纯文字。销售靠这些照片发现了报价错误,系统这边连存都没存。

01 原图入链把图片消息落 messages,保存原始附件与消息 ID。
02 上下文合并连续图片与前后文字合并成一轮,不逐张孤立判断。
03 尺寸场景标记客户在报尺寸时发图 → 标为"现场佐证",进入报价上下文。
04 人工闸门涉及尺寸与安全结论时,低置信度必须转人工,不硬猜。
技术卡点 03

话里说的资料,和实际发出的素材不是同一份

文案承诺"这份配置清单,逐空间列了做什么柜、价格怎么算",实发是一张"环保检测·不合格全额赔付"海报。话术按"该给资料了"生成,素材按关键词命中挑选,中间没有任何一步核对这两者是不是同一份东西。

短期话术里提到具体资料名时,校验实发素材 id 与之匹配,不匹配就删掉那句话。
中期让话术引用素材、而不是各自生成:先选素材,再按素材写引入语。
兜底宁可只发图不写引入语,也不要文字承诺一份不存在的资料。
技术卡点 04

自动化发不出微信原生位置卡片

本案两次门店位置都是销售手动发的。现有 GUI 通道能发文字和部分图片,但生成不了原生位置卡片。把它标成"地址导航积木"会误导复盘,所以页面里标的是人工动作。

短期客户出现到店意向即转人工,由人工发位置与指引。
兜底自动生成门店名、文字地址、地图链接、停车说明,供人工一键复制。
待验证稳定 GUI 操作能否发原生位置;验证前不承诺全自动。
05 · Trigger model

这条为什么没走到到店

已经具备的条件

  1. 需求极其明确:尺寸齐全、改造目标清楚,不需要再做需求挖掘。
  2. 价格已经谈透:三个柜体逐项核到 2797.4 元,客户接受了解释。
  3. 异议被消解:防水、门板工艺问完后客户自己说"防水好擦洗也可以"。
  4. 客户主动提到店:两次——"在哪里看样板"、"那天有时间我去看一下样品"。

缺的那一步

  • 没有把"那天"变成具体日期——对照汤圆那条,客户说出"两点半到三点"才是可执行承诺
  • 没有给到店绑定价值("来了能当面确认什么"),只回了"好的"
  • 没有约设计师、没有说到店后会发生什么
  • 没有建立任何后续提醒,对话自然停止
修复进展 · 截至 2026-09-23

本案暴露的问题,现在修到哪了

以下为 wecom-chat 仓已合并并部署上线的修复(截至 09-23 22:11,线上版本 158f185)。“已上线”指服务端代码在线上生效;本案对话发生在修复之前,页面上的原话不会因此改变。

问题怎么修的PR状态
说“配置清单”、实发环保海报(货不对板)执行端一轮只能发 1 张图时,被裁掉的图对应的引导语一并删除;按端上能发几张来配图#1476 / #1497✓ 已上线
二选一问句被出门闸切成半截「A,还是B?」整句过闸:要么整句留、要么整句删#1554✓ 已上线
零尺寸线索时编面积 / 编总价示范话术数字改占位 + 编面积/总价强制重写。但本案 1581 的尺寸是客户给的(3.2/0.87/0.5),错在算式,这道闸不管#1554✓ 已上线
价格闸不校验“面积 × 单价 = 总价”(04.1 卡点 01)尚未修:报价类回复改为代码确定性计算—未覆盖 · 待定
客户发的图片不进数据库(04.1 卡点 02)尚未修—未覆盖 · 待定
自动化发不出原生位置卡片(04.1 卡点 04)尚未修;替代方案(高德导航链接 + 到店卡)待定—未覆盖 · 待定
06 · Review

案例复盘:做对什么,还能改什么

GOOD

做得好的地方

AI 给的是完整算式而不是"大概一千多",口径和单价都写清楚了,这个形式值得保留;销售发现错误后立刻撤回、主动说明原因而不是含糊过去;逐项核价时把每个数字念回去让客户确认,没有一处靠猜;客户问工艺时给的是"看起来是烤漆但不一定是原木烤漆"这种有分寸的判断。

BAD

这条链路上的硬伤

规则在知识库里、文档也被检索命中,模型仍然漏用——报价这类不允许出错的计算不能交给模型;客户发的 5 张照片一张都没进库;话术承诺的资料和实发素材不是同一份;价格闸只校验单价、不校验算式;两次到店意向都没落成时段。

如果重新跟进

更合理的推进方式

客户报出尺寸时,金额由代码算、模型只负责把尺寸读出来,并在回复里把口径判定写明("0.87 米不足 1 米,按延米算")——这样即使客户觉得贵,也不会觉得被改过口。客户补发现场照片时应入库并触发一次尺寸复核。客户第一次说"在哪里看样板"就该把到店价值说清楚("来了能当面量、当面出布局"),并把"那天"追成具体日期。客户给出日期后立刻转人工接待,自动化停止生成业务话术。

07 · Action plan

后续优化建议

报价

金额不由模型算

模型只提取尺寸与柜体类型,金额走确定性计价函数:不足 1m 按延米、转角 ×1.5、护墙板按 180、见光板按平——这些口径知识库里都有现成条文。

报价

回复里写出口径判定

不只给数字,给出"为什么是这个数":哪个柜体按平方、哪个按延米。客户能自己核,就不会有"怎么涨价了"。

图片

客户图片必须入库

至少先落消息记录与附件 ID。客户在报尺寸时发图是高价值信号,现在整类丢失。

素材

先选素材再写引入语

杜绝"文字说清单、实发海报"。不匹配时宁可不写引入语。

节奏

答完就停,别抛选择题

规则已经在库里(conf=10),这轮没照做。客户在给尺寸时抛三选一风格题,是把节奏往回拉。

到店

意向要追成日期

"在哪里看样板""那天有时间"都要追一句具体时间,并绑定到店能完成的事;给出日期即转人工。

08 · Reusable SOP

报价型客户处理 SOP

适用于"尺寸明确、开口问价"的个微客户。这类客户转化最快,但报价错一次就前功尽弃。

尺寸复述

把客户给的每个数字念回去确认("3.2 米长、0.87 米高、0.4 米深,对吗")再算,不猜、不补全。

口径先判定

逐个柜体判:高度 ≥1m 按平方(宽×高),<1m 按延米;转角 ×1.5;护墙板、见光板单独口径。

金额走代码

模型不做乘法。金额由计价函数算出后再交给话术,模型只负责说人话。

写明为什么

回复里带上口径判定与算式,让客户能自己核对,避免后续改口。

图片入库并复核

客户在报尺寸阶段发图,落库并触发一次"现场与尺寸是否吻合"的复核。

素材与话术对齐

先定发哪份资料,再写引入语;不匹配就不写。

答完就停

客户问的那句答完即止,不顺带推风格、活动或其他产品。

到店意向追时段

出现"在哪看样板 / 去看一下样品"时,追一句具体日期并说明到店能完成什么。

给出日期即转人工

客户说出可执行时段后停止自动业务回复,人工发位置、指引并负责接待。

到店后回填

记录实际到店时间、方案倾向、预算、异议与下一步负责人。

本案的转人工判定点没有触发
客户说的是"那天有时间我去看一下样品"——有意向、没落时段,按 SOP 属于"应追一句"而不是"已可转人工"。对照汤圆那条,"两点半到三点吧"才是转人工的那一刻。本案停在了追问之前。
09 · Evidence & gaps

证据边界与待补充信息

数据库可核验的部分

会话 adae1b28… 的 4 条 messages(2 客户 / 2 AI)原文与毫秒级时间;两次 chatReply 的模型、提示词版本(wecom.nurture.rules v27)、token、耗时、成本、价格信号;命中的知识文档 ID 与相关度;命中的 11 条 decision_rules 的场景与建议动作。这些都是当时的真实调用记录,不是事后归类。

只有截图、没有库记录的部分

销售全部手打消息(不经过系统);客户的 5 张现场照片;三条撤回提示中的第三条对应什么;各条消息的微信端精确秒级时间(页面用的是数据库落库时间,与微信显示可差 1–2 分钟)。

仍需补充

门店位置卡片的详细地址全文(当前截图分辨率认不出);客户是否最终到店、有无成交;三条撤回里第三条的原文;这位客户的历史来源(抖音评论 / 其他渠道);env-test-price 海报的素材原图。

本页三条最重的结论,各自的证据强度

① "算错的规则就在被检索命中的那篇知识里" — 半验。文档命中(0.55)和文档含那半句都有记录;那半句有没有进最终 prompt 没验(只有 token 总数,没取 assembled prompt)。所以不能说"补知识治不了"。

② "16:14 之后 AI 退出是设计如此" — 未验,已从本页撤回。没有日志也没有代码支撑;"捕获停了"是同等可能且代价更大的解释。排除动作见 04。

③ "文案说清单、实发环保海报" — 已坐实。message content 里的素材 id 是 env-test-price,文字写的是配置清单,两者直接可比。

另外不断言:不断言"照片入库 AI 就能算对"(多模态是否参与这条链路未验);不断言三条撤回分别对应哪个气泡;不断言销售是看了照片才发现高度问题(他没说);不把销售手打的内容归为任何积木。

→ 后续(10-09 重新加微):同一个窗台柜,这次代码算价一次报对 1817.6,第二天客户要定位到店
→ 同一天、同一台机器的另一条:湘A逆风也绽放(AI 只回了一句,回得对;但客户等了 25 分钟)
→ 闽D******-张志标:连问五句,一条信息都没给(那个素材 bug 09-08 就在他那条上犯过一次,本页 09-21 这次是第二次)
← 回到 2026-09-21 日结