客户回复类型 · 现状话术 · 优化建议

Owner: 夏夏 2026-06-22 样本:upio.ai/akke/cases 67 个案例 有效 49 个 PR #450

这次干啥

upio.ai/akke/cases 上 67 个客户案例的 transcript 抓出来,按"客户回复类型"分桶,找 Akke 当前话术的短板,再针对每一类给优化建议。最终落到 chatReply(nurture / decision)的 Langfuse prompt + 代码 FALLBACK 兜底。

样本:67 个案例 → 18 个客户从未回复(剔除) → 有效 49 个。同一客户可触发多桶。

① 客户回复类型分布

7. 联系方式跳转(要 v / 给电话)
18 (37%)
1. 面积 / 户型
13 (27%)
10. 闲聊 / 确认 / 暧昧
9 (18%)
2. 价格 / 预算
5 (10%)
6. 工期 / 施工 / 售后
5 (10%)
3. 风格 / 款式 / 材质
4 (8%)
4. 位置 / 地区 / 服务范围
2 (4%)
5. 资质 / 品牌 / 工厂 / 真伪
2 (4%)
8. 设计 / 方案 / 出图
2 (4%)
9. 拒绝 / 不需要 / 已定
1 (2%)
最反直觉的发现:最常见的"客户回复"不是问问题,而是直接抛微信 / 电话或答户型。Akke 开场白带"你家几室几厅"的反钩,6 成客户会乖乖答户型或直接抛 v——意向真的高。

② Akke 当前对应回复话术(按命中数)

7. 联系方式跳转(要 v / 给电话)
18 命中 · 37%★★★★☆
客户原话(分两种):
a) 主动给号:ni-min「xgt667 加我V上聊吧」 · b-enen「我的vx是:qierqualia」 · a-qu-diaoyu「199****6955」 · kongjian-xiangliang「+我老公v / was19817800」
b) 问怎么加:chaocai「我加你」 · daxin「怎么加」 · camille「我加你吧」
Akke 现状:
"来啦,备注抖音名添加即可 v→Homedz3791🦆"(通用版,不分场景
"大欣,加我v:Homedz3791(设计师武海艳),备注「抖音」"
开场即钩 v 套路工业化,6 成客户直接给联系方式——但 Akke 对"主动给号"和"问怎么加"用同一套话术:"来啦 v→Homedz3791"等客户主动加,30 分钟后客户就忘了。kongjian-xiangliang 那种"老公的 v",没人立刻加直接被认作骚扰。应该拆两种:客户给了号我们立刻去加(拿回节奏);客户问怎么加才主动推号给他
1. 面积 / 户型
13 命中 · 27%★★★★☆
客户原话:
yuaner「200平」 · qingfuxiao「L 型」 · xiaomin「四个房间」
yanghong-ankang-125「三室 + 柏樾城小高 125 户型」
sanshaoye「我是四室一厅的,138 平方」
dayima「阳台朝西,朝阳吗😂」「我感觉落日才晒到」
Akke 现状:
"200平能做的搭配挺多的,按284一平柜体大概5.7w左右~我这边有几套200平左右的实景案例和报价单,方便加个微信吗?"
"137 三室全屋柜体按投影算下来 6-8 万够用…加 v 我把户型方案和案例图发你。"
答户型基本都是"按平方算个粗估价 + 直接跳钩 v",没二次反钩具体痛点(朝向、小孩房、收纳重点)。dayima 那种问朝向的,Akke 答得不错但拖了 3 天,错过即时窗口。
10. 闲聊 / 确认 / 暧昧
9 命中 · 18%★★☆☆☆ 最不稳
客户原话:
huaye-shen「你好」 · nuli-gengxingfu「你好」
dandan「谢谢」 · yiran「好呀」 · xixi-he-xixi「好的,谢谢~」
shenpiao-malou「好」 · camille-zhongshan「😮」(一个表情)
Akke 现状:
nuli「你好」→ Akke 回"你好你好"(然后等了一晚才补 nurture)
camille「😮」→ Akke 直接钩 v:"方便加个微信吗"——这条当场转化
dandan「谢谢」→ Akke 没有任何后续动作,8 天礼貌冷拒等成死信
同样的"嗯/好的",camille 当场转化、dandan 直接凉了,套路完全靠运气。没有"暧昧回复"专用剧本,客户给"嗯/好的/收到"等于在让 Akke 主动推一步,Akke 现在要么沉默要么"你好你好"原地踏步。
2. 价格 / 预算
5 命中 · 10%★★★☆☆
客户原话:
heise-youmo「差这么多嘛」(对 568 vs 899 价差质疑)
shuaige-fannaoduo「地柜多少一米」
lutu-youni「怎么收费啊」
zhifuren-xuqiuren「小面积做不」
chengxin(初始评论)「我家 120 平米,想花不超过 20 万」
Akke 现状:
heise(手工跟进有质感):"差得不算虚哈,主要差在两块:① 莫干山专卖店是经销商层层加价…② 899 是单买板材的价,我们 568 是按投影面积全包"
shuaige:「地柜价格得看一下具体选的板材和台面,方便给个联系方式吗」——直接绕到加 v
价差对比拆得最透的反而是 heise 那条手工跟进,LLM 自动生成的多数是"得看板材,加 v 详聊"。问数字的人最讨厌被绕——遇到具体单价问题几乎都不接招,等于劝退。
6. 工期 / 施工 / 售后
5 命中 · 10%★★★★☆
客户原话:
xingzi「我不想地面上有轨道,不好搞卫生,轨道放在顶上 可以做,怎么安装 你们上门安装吗」
lutu-youni「今天敲墙」(暗示进度,紧迫)
qingling「没开始」
zhengzhou-heikang「我的墙面起碱还没干透」(多轮工艺细节)
Akke 现状:
xingzi 答"地轨/顶轨/工艺条"细节到位,但最后还是收口"方便我们加个v详细聊聊"——客户读不回
zhengzhou-heikang 最像销售:分阶段追问墙面含水率、批灰层数,逐步把客户带向加 v
专业感是有的,但"装到哪一步"这个进度信号没被系统化利用——客户说"今天敲墙"或"没开始"其实是黄金钩子,Akke 现在只机械答工艺,没顺势钉"这周必须定柜体不然来不及"的紧迫感。
3. 风格 / 款式 / 材质
4 命中 · 8%★★★☆☆
客户原话:
zhang-zhilin「什么板材?」
xiaoduo「什么材料」
xingzi(部分)「我加装的割段,想用煤气」
strawberry-shengdai「我没有做嵌入」「放客厅里」
Akke 现状:
xiaoduo:"颗粒板最实惠,多层板防潮好贵一截,实木环保再加钱,你家预算大概多少,我给你配一组合适的。"——三档对比清晰
zhang-zhilin(小星账号):甩了 3 张图 + 一段配置卡——客户已读未回
三档报价答得算顺,但直接甩配置图 + ENF 协议截图容易显官方话术,客户已读不回。缺"反问哪个最在意(环保/防潮/颜值)"的二次钩。
4. 位置 / 地区 / 服务范围
2 命中 · 4%★★★☆☆
客户原话:
budaoweng「你们在哪里做」
youyu-de-ru「你在云南我在江西」
Akke 现状:
"全国都有店铺、贵州也有分店"——答得稳
答得稳,但没主动报本地团队人名 / 案例,说服力打折。用本地小区案例 + 设计师本人名字,把抽象的"全国"具体到"你家小区"才有说服力。
5. 资质 / 品牌 / 工厂 / 真伪
2 命中 · 4%★★☆☆☆ 警惕
客户原话:
youyu-de-ru「兔宝宝听说很多假的」
jimo-hongchen「我怎么感觉这像豆包帮你写的文案」 ← 直接识破 AI
Akke 现状:
youyu:「防伪码、授权书、检测报告」——答到位
jimo:「因为没来得及断行就放你啦」——半承认半遮掩侥幸救回
被识破 AI 时 Akke 纯靠运气救回——下一个客户不一定吃这套。需要专用"被识破"应对剧本,不能每次靠灵机一动。
8. 设计 / 方案 / 出图
2 命中 · 4%★★★★☆ · 保持现状
客户原话:
juebie-shu「除去床垫和冰箱其他全包的 + s010209_微信」
user3824342698628「我想问下柜子高 2860 宽 2090 适合做 4 门还是 5 门」
Akke 现状:
user3824 用专业数据答得不错(柜门数学 / 柜体宽度划分)
juebie 当场给 v,直接转化
这类客户专业问题问到点子上,Akke 答得不错。少数高质量样本——无优化建议,保持现状。重点是有 brand_profile 真实数据(568 配置卡 / 柜门高宽算法)+ 不编造,钩到加 v 在微信出图。
9. 拒绝 / 不需要 / 已定
1 命中 · 2%★☆☆☆☆ 死信
客户原话:
hao「还没考虑好」
Akke 现状:
Akke 没接招,对话直接死
客户表态"不考虑"时 Akke 直接放弃,把好不容易开启的关系一棒打死。完全没有"礼貌冷拒留软钩"机制。

③ 优化建议(按价值高→低)

1联系方式拆 a / b 两种走,别用同一套话术
对应桶 7(18 命中)。问题:18 个抛 v 的客户里 Akke 不分场景都回"来啦 v→Homedz3791"等客户主动加,30 分钟没加客户就忘了。
做法 a — 客户主动给了号(微信/电话/抖音号):立即"好的,我们添加您啦,麻烦通过一下~"我方主动加,拿回节奏。给手机号的接"我让设计师 5 分钟内电话联系你方便吗"。
骨架 a:「好的,我们添加您啦,麻烦通过一下~」
做法 b — 客户问怎么加 / 怎么联系(没给号):主动推我方设计师微信号 + 让客户备注抖音名 + 鼓励客户也留个号备份。
骨架 b:「加我们设计师 v:Homedz3791,备注「抖音+你的昵称」,量尺出图都他对接。也方便留个 v 给我,省得你回头忘记加」
2答户型后必须再钩一次具体痛点,别直接跳 v
对应桶 1(13 命中)。问题:13 个答户型的客户里多数 Akke 直接"加 v 发案例",把好不容易开启的对话浪费了。
做法:答户型 → 反问"主卧要不要做衣帽间 / 小孩多大 / 厨房动线最在意啥",让客户再答一轮,等于又把意向加深一次,再钩 v 命中率高得多。
骨架:「200 平挺舒展的~主卧准备做衣帽间还是常规衣柜?儿童房有几个?我把对应户型的案例先挑两套给你看。」
3"嗯 / 好的 / 谢谢"必须有专用复活剧本
对应桶 10(9 命中)。问题:dandan「谢谢」直接死信、nuli「你好」被回「你好你好」尬住。9 个暧昧回复里只有 camille 当场转化。
做法:客户回单字/表情 → 24h 内必跟"软钩子",给具体小钩(一张实拍图 / 同小区案例 / 一句反问),别问开放式问题。
骨架:「在的~你刷到这条说明对意式轻奢这块还有想法,我顺手发张同户型的实拍你瞅瞅,喜欢咱再细聊👇」
4直接报单价问题别绕,先给真实区间再钩 v
对应桶 2(5 命中)。问题:「地柜多少一米」「怎么收费啊」全被 Akke 回避"得看板材,加 v 详聊"。问数字的人最讨厌被绕。
做法:有大有小真实口径:按平方算(房产证面积)284 一平,全包板材+五金+柜门+安装。配置浮动 10-30%(标配/高配/豪配)。100 平房产柜体 3-3.6 万。再钩 v 出明细。禁"按米/一米多少"——我们不按米算。
骨架:「按平方算 284 一平(房产证面积),全包板材(兔宝宝/莫干山/千年舟 ENF 级)+ 悍高五金 + 柜门 + 安装。配置 10-30% 三档,100 平房产柜体 3-3.6 万区间。你家几室几厅?加 v 我让设计师出明细。」
5系统化利用"装修进度"信号制造紧迫
对应桶 6(5 命中)。问题:客户答"敲墙""美缝完""没开始"等进度词时,Akke 现在只机械答工艺,没顺势制造时间压力。
做法:进度信号 → 对应一句紧迫钩,把"现在不定就晚了"具体化(不是空喊活动)。
骨架:「敲墙了?柜体最晚下周得定下来,不然瓦工进场没办法预留管线和孔位,到时候返工最贵。加 v 我让设计师 24 小时内出方案,赶得上你工期。」
6同城 / 上门问题:先肯定回复,再引导加 v,案例在微信发
对应桶 4(2 命中)。问题:客户问"在哪做""能不能上门"时,Akke 答"全国都有店铺"显空。
做法:① 先肯定回复("能上门 / 这片儿做过几套案例")—— 把"全国都有"具体化到客户那片儿。② 引导加 v —— 案例是图片,DM 发不清楚,引到微信发。③ 在微信发具体小区 / 户型实拍 + 户型方案
骨架:「在的,我们这边能上门量房,[城市/小区] 做过几套案例。加我们设计师 v:Homedz3791,备注「抖音+你的昵称」,他给你发 [你说的地名] 的实拍案例 + 户型方案,比这边一条条说清楚得多」
7被识破 AI 时"不正面承认 + 立刻转出方案"
对应桶 5(2 命中)。问题:jimo「我怎么感觉这像豆包写的文案」已经识破,Akke 答得侥幸救回,下一个客户不一定吃这套。
做法:不正面承认是 AI 也不硬否认,话题立刻转到"出方案"——聚焦专业重点,不自贬。
骨架:「设计方案我让设计师直接给你出,按你户型出图。加我们设计师 v:Homedz3791,备注「抖音+你的昵称」,量尺出图都他对接。」
8礼貌冷拒不要硬推,发真实素材留软钩
对应桶 9(1 命中)。问题:hao「还没考虑好」直接死信,整个对话浪费。
做法:客户表态"不考虑"时不追加 v,发一份免成本资料当礼物,留个"以后想起来再找我"的钩。资料是有大有小已有的真实素材(568 配置卡 + ENF 防伪 5 等级避坑卡),客户问能接住。
骨架:「明白~装修不急。我这有套 568 配置清单 + ENF 级板材防伪 5 等级避坑卡(基材型/贴标型/单面/双面/六面防伪一目了然),要不要发你存着?等你哪天想动了拿出来对照下能少踩坑。」
9板材/材质问题:三档对比之后必须反问"哪个最在意"
对应桶 3(4 命中)。问题:三档报价答得算顺,但 Akke 经常一上来甩 ENF 协议截图 / 配置卡,显官方话术,客户已读不回(zhang-zhilin 案就栽在 3 张图甩完直接凉)。缺一个"二次钩"让客户回答关键维度。
做法:三档对比(颗粒板 ENF 环保最实惠 / 多层板防潮好贵一截 / 实木最环保再加钱)之后,反问"环保 / 防潮 / 颜值 / 价格 你最在意哪个" → 把客户卡在哪个维度暴露出来,下一轮按那个维度针对性答 + 再钩 v。
骨架:「板材分三档:颗粒板最实惠 ENF 环保 / 多层板防潮好贵一截 / 实木最环保再加钱。你最在意哪个—— 环保 / 防潮 / 颜值 / 价格?我按你那块给你拉清单」

④ 落地状态(全部完成 ✅)

代码改完(src/lib/llm.ts 3 处 + r2/r3 迭代 + r3 修复)
wechatClause(decision 阶段拆 a/b:主动给号 → 我方主动加 / 问怎么加 → 主动推 Homedz3791)+ DM_NURTURE_FALLBACK +7 路径(含建议 9 板材二次钩)+ DM_DECISION_FALLBACK +1 路径。tsc / lint 干净。
r3 事故:误把 user opener v43 半截 import 带进 commit → CI tsc 红 → b672a395 revert 修复 ✓
Langfuse 5 个版本已创建(staging-first 安全策略)
dm.nurture.system v5(建议 9 板材二次钩) · dm.decision.system v4(骨架口语化)
中间版本 v3/v4(nurture)/ v3(decision)保留作回滚锚点。
PR #450 CI 全绿
github.com/Akke-AI/Akke/pull/450 — tsc/lint pass(1m0s)+ Claude review pass(5m48s)
PR 合并 → wechatClause 改动 prod 立即生效
squash merge 到 main,Vercel 自动部署 wechatClause(a/b 拆分) 改动
Langfuse production 标签切换 v2 → v5 / v4
updatePromptLabels(dm.nurture.system, version=5, ["production","staging"]) + updatePromptLabels(dm.decision.system, version=4, ["production","staging"])。秒级生效;回滚 = 切回 v2,同样秒级。24h 观察 decision 阶段 DM 送达率有无骤降(怀疑抖音风控对外发我方号变严)+ 客户回"加上了"占比变化。
当下注意:v5/v4 没在 Langfuse Playground 实际跑过样本(决策 7 "立刻落地都" 覆盖了原 staging-first 协议)。要回滚就喊"切回 v2",秒级。decision 阶段主动外发 Homedz3791 撞抖音风控的概率比 opener 低但仍存在,盯 DM 送达率。

⑤ 监控完整数据流(end-to-end)

这次还顺手做了「客户回复 → @ 群」的告警监控(PR #452 + 复用已有 capture 通路)。整条链 8-13 min 端到端延迟。

1
客户在抖音 PC 回复 DM
客户在抖音消息列表里回复了我们之前发的 DM。
2
无影 wuying_poll_agent.py 60s tick · capture 路线
douyin_dm_autoreply.py capture → 内部用 douyin_inbox_uia 读【私信会话列表】UIA 文本 → 判定客户回复(preview 变了 + 非系统通知)→ RPC record_dm_inbound(conv_id, preview)INSERT messages (role='customer', content=preview)
节流:默认 12h 一次,建议运营改成 5 min(AKKE_DM_AUTOREPLY_INTERVAL=300
3
Supabase messages 表新增一行 role='customer'
RPC 内置幂等:同 conv 最后一条已是同内容 customer message 时跳过,重复扫不会重复写。
4
Vercel cron /api/cron/dm-notify-watch 每 3 min 扫近 10 min messages
PR #452 新加。检测三类事件:
· 事件 a:客户首次回复(conv 第一条 role=customer)
· 事件 b:客户给联系方式(正则匹配微信号 / 手机号 / 抖音号 / "+v")
· 事件 c:我方抛 Homedz3791(role=ai 且 content 含 brand_profile.wechat_id)
5
命中事件 a/b → 推【数据监控群】Lark 卡片 + @ owner
复用 resolveDataMonitorWebhookUrl()(提示词更新机器人 webhook)。蓝卡 first_reply / 橙卡 customer_contact。@ accounts.owner_lark_user_id 对应的运营。
事件 c(我方给号)暂不推群,留 PR 2 日报汇总形式给负责人个人。

👥 监控对应关系(已配齐)

messaging accountowner @ 群
饭粒(一筑·全屋定制)饭粒
小文(野荞)/ 小武 / 有大有小 / 文哥野荞(4 账号都归她)
零星夏夏
Gloomberg(cloud_pc 测试号)💤 NULL · 不监控
关键事实:监控完全是 Supabase DB 轮询,不挑通路。客户回复从哪个通路(云电脑 / WDA / ADB)进 messages 表都触发监控。唯一外部依赖是 Lark webhook。

⑥ 运营部署指南(无影上 5 min 配齐)

监控的基础设施已上线(cron + 表 + owner mapping),但数据源还没开——客户回复要进 messages 表才能被监控扫到。运营需要在每台无影上做下面 5 步。

⚠️ 不影响 DM/二触/RC 跑!poll_agent 主循环 4 条路线 (DM / 二触 / RC / capture) 串行跑,同一时刻只有 1 条在操作抖音窗口,互不抢资源。Capture 只读 UIA 5-10s 跑完。
关键前置(不做 step 1 capture 会经常失败):同账号还在跑 DM / 二触 / RC,DM 发送跑完抖音停在最后会话内、二触跑完停在视频页面,capture 来扫时找不到会话列表。解决:先量 2 个坐标,capture 跑前会自己点回私信列表(脚本自带 _goto_dm_inbox())。
1
跑量坐标脚本(一次性 · 5 秒搞定 · 自动写 .env
抖音 PC 前台最大化 + 登录好。然后在 cmd 里跑:
cd worker\scripts\wuying-dm
py measure_dm_coords.py
脚本会两次提示「把光标移到 X 然后按 Enter」(X = ① 私信入口 ② 第一会话条目),自动抓坐标 + 写入 .env(同时自动开 AKKE_DM_AUTOREPLY_CAPTURE=1 + AKKE_DM_AUTOREPLY_INTERVAL=300 两个开关,step 2 也包了)。
✅ 跑完直接跳 step 3。
2
手动改 .env(step 1 脚本跑挂了的 fallback)
正常 step 1 已经自动写完。如果脚本报错(比如 pyautogui 没装),手动打开 worker\scripts\wuying-dm\.env 加 / 改这 4 行:
AKKE_DM_AUTOREPLY_CAPTURE=1
AKKE_DM_AUTOREPLY_INTERVAL=300
AKKE_C_DM_INBOX=X,Y
AKKE_C_DM_FIRST=X,Y
缺 pyautogui 跑:py -m pip install pyautogui 再回 step 1。
3
重启 wuying_poll_agent.py
启动文件夹拉起的:开始菜单搜 shell:startup → 找到 poll_agent.bat 重跑
手工跑的:终端 Ctrl+C 杀掉旧的,重跑 py wuying_poll_agent.py
4
第一次跑前确认抖音 PC 状态
前台最大化 + 抖音已登录。Capture 跑时会自己点【私信入口】+ 第一会话撑开列表(用 step 1 的坐标),所以抖音停在哪儿都行,前提是 step 1 坐标量准。
后续 DM/二触/RC 跑完任何页面都没事 —— capture 自己导航回来。
5
5-10 min 后验证
看 poll_agent 日志有没有 "AUTOREPLY captured N inbound" 之类输出;再等 3 min,Lark 【数据监控群】应该 @ 出第一张客户回复卡片。
收到第一张卡 = 整条链 ✅ 跑通。

⚠️ 24h 后还没卡片的排查

事故复盘:这个 capture 通路其实早就存在(douyin_dm_autoreply.py capture + record_dm_inbound RPC + poll_agent 集成 + Vercel cron dm-auto-reply 都已 ready),只是 ENV 没开。Claude 做 PR #456 加 --write-messages flag 时没搜全代码,重复造了一个轮子(不致命,--write-messages 作为 standalone 工具仍可用)。下次类似工作先 grep -r '关键 RPC 名' 再动手。