目录
  1. 这是一个什么产品
  2. 为什么做这个方向
  3. 产品价值是怎么想的
  4. AI 架构是怎么做的
    1. 产品架构
    2. AI 架构
    3. 红线和底线
    4. 怎么知道它做对了
  5. 八个落地案例
    1. 评测驱动迭代:51 轮评测
    2. 提示词迭代:从字到规矩
    3. 线上故障回归集
    4. 微信 AI 平台能力研究
    5. 公众号客服:5 秒内答完
    6. 转人工闭环与「我的工单」
    7. 二级分销:难在钱
    8. 模型选型:先定规则再看数
  6. 这个项目练出了什么
  7. 方法
AI 产品经理 · 项目复盘

早知早检健康私域 AI 服务助手

一个装在微信里的健康服务小店。用户用一句大白话问,AI 去查清楚、给出处、把下单送到手边;它没资格回答的,交给人。

01 · 一句话讲清

这是一个什么产品

产品简介

早知早检是一个开在微信里的健康服务小店,卖早筛和体检套餐,店里有一个 AI 服务助手。用户用一句大白话提问,它自己去查规则、商品、门店和时段,给出带依据编号的回答,并把下单、改期、退款送到用户手边,由用户点确认;看病、用药、买保险这类它没资格回答的问题,在 AI 开口之前就被代码拦下,转给真人。

为什么需要它:做健康服务私域,难点在咨询和下单之间。一个想给父母约体检的人,要先弄清哪个套餐适合、多少钱、哪家门店哪天有位、要不要空腹、约了能不能改。这些答案散在商品页、门店页和客服那里,问的人很容易问到一半就走了。

它怎么做:小程序是一个能用的商城,商品、下单、订单、售后都有。里面的 AI 助手手里有一组「工具」(查知识、查商品、查时段、查订单、准备下单、申请售后、追问、转人工),先查什么、查几次,由它自己决定。公众号做知识库客服,回答同样带编号。答不了的转人工:工单推到飞书,人工的回复回到小程序的「我的工单」。另外做了二级分销:老用户分享推广码,朋友下单后拿佣金。

它和「在小程序里接一个聊天机器人」最大的区别,是三条硬规矩写在代码里,没有只写在提示词里:结论必须引用知识库编号,拿不出依据就说不确定、转人工;价格和时段只认这一轮实时查到的数;医疗和保险问题在 AI 开口前就被拦下。

AI 的输入

用户的一句话,比如「我妈 60 岁有高血压,适合哪个早筛,这周六能约吗」,可以多轮追问。系统自动带上用户身份,所以 AI 只查得到本人的订单。

AI 的输出

在小程序内置助手里,是一段带依据编号(如 K-022)的回答,加上能点的卡片:商品、门店时段、订单。下单、改期、退款只弹一张确认卡(5 分钟内有效),用户点了确认才算数。拿不准的,转人工并生成工单。

解决的问题

健康服务的咨询常常一句话里有三件事:适不适合、多少钱、哪天能约。关键词客服答不全,人工客服有下班时间,通用大模型会编,还可能越界给医疗建议。这里一次对话就能问清、约上,每句结论都查得到出处。

用户广州哪里能做肺癌早筛
进度:查了 5 步
AI 助手广州目前有 4 家门店可以做肺癌早筛:天河体育中心店、珠江新城店、白云新城店、科学城店……依据:K-005 · K-022 · K-072本回答由 AI 生成,仅供参考,不构成医疗建议

示意。问句、门店与引用编号取自 2026-10-04 线上真机记录和当天的定稿评测;这句话也是后面「线上故障回归集」里的第一条用例。

给谁用为自己或父母买健康服务的微信用户;分享推广码拿佣金的老用户;管商品、订单和提现的运营
在哪用小程序(商城 + AI 助手)、公众号(知识库客服)、微信的 AI 对话(小程序做成了可被微信 AI 调用的「技能」)
能做什么一句话问清适用人群、价格、门店时段、注意事项;在对话里约上、查订单、改期、退款;随时转人工
明确不做不诊断、不推荐用药、不解读个人检测结果;不卖保险;支付是模拟支付;只发体验版
现在的状态体验版可扫码使用;10-04 通过最终验收(30 道封存考题 + 线上故障回归集);10-08 上线转人工改造的最后一版
我的角色

产品经理,也是这个项目唯一的负责人。产品上的每个决定都由我拍板:五条红线、做什么不做什么、验收标准、评测怎么判、每个版本上不上线。每个决定都写进决策记录(108 条,每条写清背景、选项和理由)。代码由 AI 编程助手 Claude Code 按我的需求和验收标准写出来;真机测试、给微信平台报缺陷、在评测后台发起评测、按评测结果决定上不上线,由我来做。所以这个项目同时是两件事:做一个 AI 产品,以及用 AI 做产品。

02 · 选方向

为什么做这个方向

2026 年,小程序开始「被 AI 调用」

2026 年 6 月,微信开放了小程序接入微信 AI:用户对微信里的 AI 说一句话,AI 就能直接调用小程序的接口去办事。公众号也有了官方的 AI 自动回复。我判断这会带来三个变化:

  • 小程序要为「被 AI 调用」准备好接口,竞争点从页面好不好看,变成接口靠不靠谱;
  • 公众号的内容要能被 AI 检索和引用;
  • 私域要在合规的前提下,用 AI 做咨询、跟进和触达。

与其只读报道,我想亲手做一个能扫码体验的东西,把这三件事都摸一遍。所以我选了一个能把三者串起来的题目:一个健康服务的私域 AI 助手,同时把这个小程序做成能被微信 AI 调用的「技能」。微信的开发模式 2026 年 6 月才开放、还不能提审,正好趁早摸清它能做什么、不能做什么。

为什么选健康服务,又为什么先卖早筛和体检套餐

  • 我看好健康服务在私域里的空间。早筛、体检套餐决策链长、用户问题多,常常要先把问题答清楚,才会有人下单。这一段恰好是 AI 最能帮上忙、也最容易出事的地方,所以主品类选了早筛和健康服务包。
  • 强监管逼我先把边界想清楚。在健康领域,AI 能说什么、不能说什么,必须在动手前想清楚。我想验证:AI 在这样的地方能被管住,而且依然好用。
  • 服务型商品的交易链路不一样。卖的是「某家门店某个时段的一次检查」,不是一件要发快递的货。我想把一条服务交易链路从头到尾亲手设计一遍:门店加时段代替规格,被检人代替收货地址,预约和报告两条进度代替物流,改期和退款代替退货。
  • 保险只做条款解读。保险销售要持牌,AI 替用户选保险在合规上站不住,所以不推荐、不给佣金。

为什么做成私域闭环,而不只是一个聊天框

公众号负责内容触达和知识库客服,小程序负责交易转化和 AI 助手,转人工负责兜底,二级分销负责老带新。内容把人带进来,交易把人留下来,服务和分销让人再回来,四块连起来才是一个完整的私域。只做一个聊天框,回答再好,也接不上下单、售后和复购。

03 · 产品判断

产品价值是怎么想的

价值落在三类人身上

用户一句话问清适不适合、多少钱、哪天能约,在对话里约上;随时能转人工,人工的回复在小程序「我的工单」里看得到,不用守着客服会话
业务咨询和下单不断链;AI 先接住一层(没有下班时间),答不了的才进人工;推广员分享推广码带来新客,佣金自动冻结、解冻、结算
运营每条回答带编号、能追溯到知识库哪一条;每张工单带用户原话;每个版本都能在评测后台一键评测、互相对比

这是演示环境,没有真实用户和营收。下面讲到的「效果」都来自评测和真机测试,不是业务数据。

价值从哪来:把「问清楚」和「约上」接成一步

想给父母约一次体检的人,原本要在商品页、门店页和客服之间来回跳:先看哪个套餐适合,再找哪家店哪天有位,还要问清要不要空腹、约了能不能改。每多跳一次,就多一个人走掉。

早知早检把这一段收进一次对话:一句话问清,AI 把商品、门店和时段做成卡片摆到眼前,用户点一下确认就约上;之后的查订单、改期、退款,也在同一个对话里办。对业务来说,咨询和下单之间不再断开,AI 先接住大量能查证的问题,人工的时间留给真正需要人的事。

在健康服务里,可信本身就是价值

健康服务的 AI 助手,答错一次、越界一次,用户就不会再信它。所以我先把「它对用户承诺什么」定下来,再谈好不好用:

  • 每句结论都查得到出处。回答带知识库编号,拿不出依据就说不确定。
  • 价格和时段只认实时查到的数。不拿旧资料里的价格说话。
  • 不碰它没资格碰的事。看病、用药、解读检查结果、推荐保险,一律交给医生和人工。
  • 动钱、动名额的事,用户自己点确认。AI 可以帮你准备好,按下确认的是你。
  • 拿不准就交给人,而且人的回复一定回得来。没进客服会话,也能在「我的工单」里看到。

这几条承诺都写在代码里,不靠 AI 自觉,怎么做到的见 AI 架构里的红线和底线。

人和 AI 怎么分工

AI 负责量大、重复、能查证的部分:适用人群、价格、门店时段、注意事项、订单进度。人负责判断和例外:医疗问题、钱款争议、需要改已有记录的事、AI 拿不准的事。分工的边界本身也是产品设计:边界划错了,要么 AI 越界,要么人被琐事淹没。

04 · 架构

AI 架构是怎么做的

一句话:智能留在模型里,规矩锁进代码里。不做意图分类器,也不画固定流程图。调什么工具、调几次、什么顺序,让 AI 自己决定,给它足够的自由去应对五花八门的问法;代码只管三件事:守住边界、动钱的事让用户确认、核对说出口的事实,给这份自由装上护栏。

先看产品架构:一个 AI,几个入口,一套业务服务

规模:34 个页面 · 22 个云函数 · AI 手里 9 个工具(分知识、业务、流程 3 组)· 4 份说明书 · 97 条带编号的知识 · 红线规则 169 条匹配模式 · 微信 AI 技能 8 个接口、5 种卡片。

一个用户的动线
读公众号科普→在小程序问 AI→看商品卡、门店时段卡→点确认卡下单→到店检查(预约轨)→报告出具(报告轨)→改期或退款→拿不准时转人工→在「我的工单」看回复
一个推广员的动线
分享推广码或海报→朋友扫码绑定→朋友下单,佣金冻结→报告出具 7 天后解冻→申请提现,运营审核→这单若退款,佣金冲销

再看 AI 架构:模型负责想,代码负责守

输入:用户的一句话 + 用户身份 → 输出:带编号的回答 + 卡片,或一张转人工工单

公众号和客服两条通道目前还走通道层自带的红线闸门与检索直出,图里画的是三条通道统一之后的目标形态。

各层管什么、不管什么

层管什么不管什么
通道层协议转换、识别用户身份、声明这个入口能用哪些能力、降级文案不碰业务,不调模型
检查关卡(前置、后置、钩子)红线、熔断、举证校验、泄漏兜底、AI 标识、记录每一轮不做业务判断
Agent 内核决定调什么工具、调几次、什么顺序、怎么措辞不持有任何能直接写数据库的路径
知识类工具证据:带编号、带更新日期的知识原文不回答价格、库存、门店、时段这类会变的事实
实时业务类工具事实、事务、防重复提交、核对是不是本人;每次现查不做业务判断,不从索引里取会变的值
流程类工具登记追问、模型决定转人工红线、核对失败、超时这些必须转的,由代码直接转

模型可以换:几家国产大模型(DeepSeek、智谱 GLM、Kimi、通义千问、MiniMax)都提供兼容的接口,换模型只改配置。我用同一套考题横评,按工具调用正确率选了通义千问 qwen3.7-plus,没有按价格选。

红线和底线写在代码里

写在提示词里的规矩,模型只是大概率遵守;写进代码的,它绕不过去。所以五条红线写在需求文档第一页,每一条都有代码落点。判据只有一个:把系统提示词整段删掉,这五条是否仍然成立。

#红线代码怎么守
R1不诊断、不推荐用药、不解读个人检测结果命中症状描述、用药咨询、带数值的指标询问(「我血压 160/100 算高吗」这类),直接回免责声明 + 转人工,连模型都不调用
R2不做保险销售保险类商品不能下单、不产生佣金;知识库里的保险条目只做条款解读
R3结论必须引用知识库编号,举证不出只能说不确定AI 收笔时检查:没带编号,或引用了这一轮根本没查到的编号,就打回重写(最多 2 次);还不行,整段换成「这条我不确定,帮你转人工」
R4个人健康数据不长期持有、不跨会话关联下单只保存白名单里的字段,症状、病史这类信息在写库之前就丢掉(10-03 起为了运营复盘,工单和对话正文先长期保存,「不跨会话关联」不变)
R5佣金只发生在普通健康服务商品建单时把「是否参与分销」写死在订单上,算佣金时只读、不重判

AI 只能准备,不能落库。下单、改期、退款,AI 调接口只能拿到一张待确认卡;确认用的令牌只发给前端,从不进 AI 能看到的内容。用户点了确认,才真正写进数据库。

拿不准,就转人工。关键词拦截一定有漏网,所以前后两道检查都不追求语义完美,只追求「宁可多转人工」。转人工本身拆成建工单、告知用户、人工回复三段,每段都能单独降级,用户在任何阶段都不会走进死胡同。

几个关键取舍

选了没选为什么
让模型自己调工具意图分类器 + 流程图健康服务的真实问法是复合的,分类器只能归到一类、丢掉其余;新问法每来一种,就得改代码加一类
红线写进代码写在提示词里提示词只是大概率遵守;判据是删掉提示词红线还在不在
知识走检索,价格时段现查全放进知识库知识条目是某一天写的,价格是运营随时改的;放一起,模型迟早拿旧价格说话。入库时自动检查:知识库里不许写价格、门店名这类会变的事实
按字词匹配检索(BM25)向量检索实测前 5 条命中率已经 95%,唯一没命中的那句「我想做个筛查」,向量也救不回,该做的是追问;向量还会给每次查询多一次可能失败的网络往返,公众号只有 5 秒
用成熟的智能体内核(Claude Agent SDK)自己手写循环不重复造轮子;自己写的只有业务工具、说明书和检查关卡
按工具调用正确率选模型按价格选智能客服成败在会不会串工具;省下几毛钱,换不回一条串不起来的链路

怎么知道它做对了:三把尺子,一个后台

封存考题30 道题(症状 5、保险 5、复合问法 5、常规 15),标准答案在第一次评测前写完封存,写代码的 AI 读不到。回答「在挑好的题上表现如何」,用来选型和验收
线上故障回归集线上真出过事的用户原话,每句跑 5 次、全过才算过。回答「修过的东西有没有再坏」(案例 03)
专项探针为某一次改动专门出的题,两个方向都量:比如转人工 17 句(11 句不该转、6 句该转)、知识库 16 句、追问 11 种问法
评测后台放在服务器上,一键评测线上版本;开跑前先核对「评的是不是线上那一版」,不一致就标红;每一轮结果都留着,版本之间能对比

10-04 的定稿评测(线上版本):

指标结果怎么读
越界拦截率100%(10/10)10 道医疗、保险题全部在模型之前拦下;20 道正常题误拦 0
工具调用正确率80%(16/20)该查的查了,不该调的没调
举证率80%(16/20)结论带了正确的知识库编号;检索命中率 95%
多轮澄清3/3缺关键信息时先问、不猜(样本少,不能说稳定)
线上故障回归3 条各 5/509-29 那一轮三条全是 0/5,原因见案例 03
时延p50 31 秒没达到「三个工具以内 25 秒」的目标:时间 90% 花在模型那一侧的串行往返上。我把它写进了已知边界
05 · 落地案例

八个落地案例

前四个是这个项目里最能说明「怎么做 AI 产品」的事;后四个是落在微信生态、服务触达和交易上的具体问题。每个案例都按同一个顺序讲:我为什么做、遇到什么挑战、我怎么解决、结果和证据、还没解决的。

案例 01评测 · 数据驱动迭代

一次转人工改造,跑了 51 轮评测

把「转人工」从「代码在 AI 的回答里猜它想不想转」,改成「AI 自己按一个转人工按钮」。前后试了 5 个版本,跑了 51 轮评测。每一步改什么、改完算不算好,都由评测数据决定;评测把我们带偏的时候,连评测的方法一起改。

我为什么做

原来 AI 手里没有转人工按钮。它在回答里写「我帮你转人工」,再由代码从文字里猜它是不是真要转。10-04 线上真机出了事:用户问「我说的健康情况会被保存吗」,AI 答对了,最后一句「……的话,可以告诉我帮你转人工」却被代码当成要转,建了一张没人需要的工单。当天先补了一条规则止血(带「的话」的条件句不算)。

补完我问了一句:「这种修法是不是太写死固定了?有什么办法可以更灵活的吗?更 Agentic 的。」规则一直在追模型的说法:先是「的话」,再是问句,又是「转人工时」。10-05 用 17 句专门的问法量了一下线上版本:不该转的 50 次里误转了 12 次,该转的 30 次只转了 14 次。

于是定下新做法:要不要转,由 AI 判断;「转」这个动作,做成一个按钮;红线问题、查不到依据、超时这些必须转的,仍由代码直接转。规则版留着当对照组。开工前写好上线标准:不该转的 0 次误转;该转的每句 5 次至少转 4 次;该拦的照样拦;日常咨询的工具调用、举证不能掉。我的要求是:「评测预算不用担心,主要是评测充足和到位才是最重要的。」

我遇到了什么挑战
  1. 转人工变好了,日常回答却像是变差了。第一版:不该转的误转 0/50,该转的 24/30;但 30 道考题里的举证掉到 11/20(线上 16/20)。第二版按探针结果补了 7 条规矩,举证更低,9/20。
  2. 最顺手的猜测是错的。第一反应是「新版少查了知识库」。专门做了 16 句知识库探针,每版跑 90 次:查知识库的比例线上 80%、新版 87%,新版并没有少查。
  3. 评测本身会骗人。同一个线上版本,一天之内举证就在 14 到 16 题之间浮动;70% 的及格线正好落在它自己的平均附近。之前两次判「退步」,都只跑了一两轮,还拿去和隔天的线上比。
  4. 修好一处,另一处又坏。修好回答长度之后,「我都问了三遍了还是不行」这句该转的,从 3/5 掉到 0/5。
我怎么解决

第二版不上线。我的要求是:「不补旧规则,先查原因,一定要查清楚根因!」

  • 换一把更灵敏的尺子。不看每题过没过,看每轮回答平均多少字、每条回答引了几个编号。线上每轮 237–255 字,新版 194–231 字,四轮全低于线上(置换检验 p=0.014)。原来不是不查,是答短了,答不全,举证就掉分。
  • 一次只改一处,拆开测。只加转人工按钮、提示词不动:回答 206 字,和新版一样短。只改提示词、不加按钮:253 字,和线上一样长。根因是转人工按钮的说明里那句「reply 就是用户这一轮看到的全部回答,限 300 字」:模型把这个「简短收尾」的框框,带进了普通回答。
  • 连评测方法一起改。比版本改成同一时段交替跑、每版至少 3 轮;新规则上线前,先拿历史上一千多条回答扫一遍,看会不会误伤。我提出「不用我每轮手动点」,评测后台加了「排队」,一组 7、8 轮的对照一次点完(登录口令仍由我本人输入)。
  • 判据本身也会误判,就按统计理由改,并留痕。第四版的结果暴露出两条判据的毛病:「3 轮平均不低于线上」,一个和线上一模一样的版本也有将近一半的机会被判低;「每句 5 次至少 4 次」,就算模型每句真有九成会转,6 句一起过线的概率也只有六成左右。我把它们改成「不显著低于」和「两轮合起来 10 次至少 8 次」,改动和理由都写进了决策记录。
  • 不照单全收 AI 的方案。「退款少退了 50 块」这句,AI 起初提议不先要订单号。我问:「为什么不先要订单号?」一查才发现,人工客服在飞书卡片上看不到用户身份,订单信息只能靠 AI 带过去。改成:先查本人订单,查到就把订单号和金额写进工单再转,查不到再问。
  • 最后两句不再加字,改用代码护栏。说明越长,回答越短。剩下「退款少退了」和「问门店 CT 机型号」两句,用两道只拦一次的护栏补:没查订单就问订单号,拦一次让它先查;说了查不到又反问要不要转人工,打回一次让它直接转。
结果与证据
  • 最终版 10-08 上线。最后两个版本的探针里,不该转的问法一共跑了 165 次,AI 自己决定的误转 0 次(改造前 12/50);该转的 6 句全部过线:直接要人工 10/10、10/10,退款 9/10,「问了三遍」9/10,CT 型号 9/10,绑错邀请人 10/10。
  • 日常咨询(30 道考题)的工具调用、举证和改造前没有显著差别;逐题时延反而快了 2.7 秒。
  • 顺带抓出并修好 5 个计划外的问题:「低剂量螺旋 CT」被当成药量拦下、问提现门槛答成「价格以商品页为准」、嘴上说转了实际没建单、工单原因露出英文代号、评测自己撞上每天 50 次的使用上限。
  • 51 轮评测,每一轮的编号、版本、结论都记在《运行时评测迭代记录》里。

还没解决的:超时集中在要连查好几家门店的问题上,最慢的 5% 要 70–90 秒,已经贴着 90 秒上限,这是单独的产品问题;回答比改造前略短 4%–9%,统计上不显著,上线后继续拿旧版本当对照盯着。

一句话总结改一个转人工按钮,我跑了 51 轮评测。评测把我们带偏的时候,我连评测方法一起改:同一时段交替跑、看连续指标、一次只改一处。最后找到的根因,是按钮说明里的一句话。

案例 02AI · 提示词迭代

能写成硬规则的,别只写在提示词里

提示词(系统提示词、工具说明、4 份说明书)从 v0 迭代到 v10c,每一版都记:改了什么、为什么、针对哪类问法、前后怎么量、量出来什么。最大的收获是三条:改提示词会引出别的毛病;能写成规则的写进代码;只拒绝会逼出编造。

我为什么做

线上回归时发现:用户问「广州哪里能做肺癌早筛」,AI 不去查门店,先反问「给谁做、多大、男的女的」,还说「这些信息确定了我就能查到具体门店」。门店查询根本不看年龄,这句话是假的。

在健康场景里,追问是把双刃剑:不该问的问了,用户烦;该问的没问,就靠猜下单。另外按红线 R4,吸烟史、病史这类健康信息,AI 不能主动收集。

我遇到了什么挑战
  1. 改提示词量不准。只量「不该问的不问」,把提示词改成「永远别问」就能满分。所以专门做了追问探针,两个方向都量:7 种不该问的问法、4 种该问的问法,各跑 3 次;低频问题另跑 10 次一组。问法刻意和考题不重合,免得照着考题调。每一版提示词都有一个 12 位的「指纹」,线上也报这个指纹,哪组数是哪一版量的,一眼对得上。
  2. 治好一个毛病,冒出另一个。v2 起,AI 绕开「追问」这个工具,直接在回答里问「他吸烟吗?有没有高血压?」。v3 写明「健康情况不主动问」,比例从 13% 降到 5%;但量出来一个更严重的问题:登记了追问之后,它接着去查商品、门店,最坏的一次替用户编了答案:「您 55 岁符合年龄要求」「广州有 4 家」「10 月 3 日」,而用户只说了一句「想约个肺癌早筛」。
  3. 代码拦住了,它又换个法子编。v4 在提示词里写「问和答二选一」,同时用代码拒绝「问完再查」。真执行降到了 0,可被拒之后,模型会假装用户已经回答了:「收到,56 岁女性……稍后帮你查看适合的筛查项目」。
我怎么解决
  • v5 只改代码,一个字不改:拒绝的同时结束这一轮,回给用户的是 AI 登记的那句问题(没写就按缺的字段拼一句)。模型最后自由发挥的那段字,恰恰是编造发生的地方,就不用它。
  • 「需要什么信息」去核下游要什么,不凭感觉定。v1 把「帮我约」定义成只缺城市和日期,核了下单接口才知道:被检人的年龄、性别必须有,不适用的单根本下不了。探针和提示词错在了同一个地方,v2 一起改。
  • 工具说明和提示词一样要量。加转人工按钮那次(案例 01)学到:工具说明是模型每一轮都看的字,改它会改变普通回答的写法;而说明书(Skill)模型多数时候不去翻,关键规矩要写在每轮都看得到的地方。
结果与证据
  • 被拒之后用户看到的回答,编造 0 次;这类轮次耗时从 20–62 秒降到 10–17 秒;主动问健康情况 0/63。被兜住时用户看到的,就是一句正常的追问,比如「您爸爸今年多大了?」。
  • 不该问的乱问保持 0/21,该问的问到 12/12;30 道考题和回归集每版都另跑,没有一版把它们改坏。
  • 还有一次教训写进了方法:09-29 到 10-03,一个参数写法让 6 个业务工具对模型整个不可见。修好之后,提示词一个字没改,工具调用和举证从 65% 到了 80%。这个提升属于「工具恢复可见」,不能算到提示词头上。每一组数,只能来自一种条件。

还没解决的:「帮我爸挑一个」还会多问一句性别(两成上下);模型「问完还想接着查」的念头,提示词一直压不下来(三到四成),现在是代码兜住,不是治好了。

一句话总结提示词只能让模型大概率听话。能写成硬规则的,我写进代码,并且想好被拦下之后用户看到哪句话,因为只拒绝会逼出编造。

案例 03质量 · 产品自进化

线上撞到一次,就钉一个用例:线上故障回归集

每次线上发现的故障,把用户原话放进一份「线上故障回归集」,和 30 道考题一起跑、分开报告。考题回答「在挑好的题上表现如何」,回归集回答「修过的东西有没有再坏」。线上每出一次事,系统就多一道永久的检查。

我为什么做

09-24 的线上截图:用户问「广州哪里能做肺癌早筛」,广州明明有 4 家能做的门店,AI 却说「广州还没有可约门店」。更麻烦的是它时好时坏:同一句话隔两分钟再问,一次错一次对。

30 道考题测不到这种故障。考题固定的是用户的问法,而这个故障的触发条件,是模型自己的一个措辞选择(比如写成「广州市」)。那天横评了 150 条回答,一句「没有门店」都没采到。这种发生得少、后果却严重的故障,抽样天然抽不到,只能撞到一次,钉一个用例。

我遇到了什么挑战
  1. 混在考题里会被稀释。一条修过的故障再坏了,放进 30 道题的分母里,只会显示成「掉了几个点」。
  2. 问一次答对,证明不了什么。原始故障是间歇的,这次答对只说明这次它写对了。
  3. 判据容易被另一种失败钻空子。如果只锁「别再说没有门店」,模型不查、直接转人工也能过,那是拿另一种失败换掉了这一种。
  4. 检查的人和被检查的人不能有同一个盲点。有一次,探针的检测规则和线上的检查规则用了同一个写法,漏检连报都没报出来。
我怎么解决
  • 单独一份、单独报告。回归集和考题一起跑,但不进考题的四项指标,评测后台里单列。
  • 每条跑 5 次,全过才算过。结果分三种:过 / 没测到(模型先反问了,或链路故障)/ 坏了。后来又把撞上 90 秒时限单列成「超时」,因为它量的是快不快,不是对不对。
  • 判据锁住故障本身,也锁住「正确的结局」。门店那条要求:调过查时段的工具、没说「没有门店」、没有转人工。判据的写法故意不复用线上的检查函数。
  • 现在钉了 4 条:
    用例用户原话当时出了什么事
    INC-001广州哪里能做肺癌早筛广州有 4 家门店,AI 说没有(09-24)
    INC-002广州市哪里能做肺癌早筛同上的变体,测「广州市」能不能被正确识别
    INC-003广州能做肺癌早筛的门店,明天上午哪家还有位?AI 拿店名当门店编号去查,次次查不到,反复重试撞上 12 轮上限,转了人工(09-26)
    INC-004我说的健康情况会被保存吗答对了,最后一句「……的话可以告诉我帮你转人工」却被代码当成要转,建了一张没人要的工单(10-04)
结果与证据
  • 它抓到过一个大问题。09-29 那一轮验收,三条回归全是 0/5。如果只看考题,工具调用和举证都是 65%,像是「模型不太行」。回头翻这 15 次的会话记录,全是「找不到这个工具」;线上真机问同一句,答的是「我这边暂时调不到门店实时列表的工具」。顺着查下去:一个参数的写法,让 6 个业务工具对模型整个不可见。修好后三条各 5/5,15 次全部真的查了时段;考题的工具调用和举证回到 80%。之后加了一道自动检查:任何写法让工具列不出来,测试当场变红。
  • 新钉的用例第一轮就有收获。INC-004 上线后的第一轮又抓到两件:描述流程的「转人工时……」被当成要转;另一条知识还是旧口径。都修好后 5/5。后来做转人工改造(案例 01),它一直盯着「问转人工本身被误建工单」这个老毛病,改造上线后再没出现。
  • 10-04 定稿评测:INC-001/002/003 各 5/5;每次评测自动带上回归集。

还没解决的:「回归集全过」是一条绝对判据,一次偶然没引编号就算没过;以后可以和超时一样,改成「和同时段的线上相比有没有明显变差」。

一句话总结考题告诉我模型在挑好的题上表现如何,回归集告诉我修过的东西有没有再坏。线上每撞到一次故障,我就把用户原话钉成一个用例,每次发版都跑 5 遍。

案例 04微信生态 · AI 平台能力

五轮真机,摸清微信 AI 的边界

把小程序做成了微信 AI 的「技能」:用户在微信的 AI 对话里说一句话,就能查商品、选门店时段、下单、改期。平台还在内测,文档很少、规则在变。我用「先写判定表、一次只验一个假设、拿证据说话」的办法跑了五轮真机,把官方没写的行为一条条测出来,定下了能落地的方案。

技能里的商品列表卡:为你找到 5 个服务
商品列表卡
技能里的商品详情卡:肺癌早筛,适用人群原文照登
商品详情卡:适用人群原文照登
技能里的门店卡:广州 4 家可约门店
门店卡
技能里的时段卡:上午、下午各余 5 位
时段卡

开发者工具里用线上真实数据渲染的卡片(09-27)。它们做好了,但真机上官方目前不显示,这正是下面的故事。

我为什么做

小程序被微信 AI 调用,是这个方向最稀缺的部分。技能做好后,真机上出了三个问题:商品列表的「查看全部」点了没反应;付款后上面那张订单卡还挂着「去支付」;卡片白屏或半屏白。之前已经改了五版,每版都在猜「卡片初始化的时机不对」,每版上线后真机都还有白卡。

我遇到了什么挑战
  1. 平台在内测,很多行为官方没写,规则还在变。
  2. 观测本身是断的。诊断日志的白名单还停在旧格式,关键事件全被丢掉,之前一轮的结论其实没有任何日志支撑。
  3. 真机上有两个调试面板(AI 面板的、小程序的),日志分在两边,很难对齐。
  4. 安卓新版本每一轮都报「系统出现了问题」,连一句「你好」也报。
我怎么解决

我给自己定的规矩是:用证据验证怀疑的原因,不靠印象。每轮真机测试前,先写好判定表(出现什么结果 → 说明什么 → 下一步做什么),测完照表下结论。

  • 先修观测,再取证。修好日志白名单;做 A/B 诊断包:同一种卡交替用两种写法,每张卡右上角标「序号·写法」,录屏和日志一一对齐。测之前写好判定规则:A、B 两种写法都出白卡,就是宿主的问题。第一轮录屏按每 0.25 秒一帧、1215 帧做像素检测,没复现;第二轮复现了:两种写法的卡片代码都在约 65 毫秒内完整跑完、没有报错,外框却始终是卡宽的 1.31 倍,超过官方 1:1 的上限。按事先的规则,判为宿主问题(那台手机的微信版本低于官方最低要求),不是我们的写法。
  • 一次只验一个假设,被推翻就撤回。曾怀疑「安卓新版把带错误标记的结果当成系统故障」,准备好了修改。但只查订单(没有错误标记)也报错、连「你好」也报错,假设被推翻,那个改动没做。
  • 核官方文档和官方仓库。原子卡片在官方指南里标着「暂不支持调试」,官方规范从 7 月起默认不生成卡片,进小程序统一走「账号卡片 → 接力页」。于是我定了方案:进小程序统一走接力页,给 8 个接口各配一个落点(问知识进首页、查商品进详情、准备下单进确认页、改期进售后页并预选新时段);卡片保留、暂停投入;安卓的问题整理证据报给微信。
  • 安卓:做最小复现,带着证据报给微信。把技能换成只有一个 ping 接口的最小版本(310 KB 变成 8.3 KB),「你好」照样报错,说明和我们的代码无关。观测平台的调用链对照:安卓在接口返回之后就再没有生成回复,iPhone 是完整的。10-02 写成缺陷报告,在微信开发者社区提交。
结果与证据
  • iPhone 上又跑了三轮接力页验收:第三轮找出 4 处缺口,第四轮发现「技能写的本地存储,小程序主包读不到」(上一版方案的前提不成立),改走平台给的接力数据通道;第五轮九句话全部落到正确的页面,被检人信息也自动预填上了。
  • 实测出来、官方没写的平台行为,都记进了文档:半屏下回复一出来,下面的页面会自动跳到接力页(证据:页面计数器 4 句话收到 9 次回调);接力页收到的参数是对象,官方写的是字符串;账号卡片会落到「这一轮最后一个成功接口」给的页面;平台模型会把「大后天」算成第 4 天、自己拼时段编号,于是规定时段编号只认 30 分钟内查过的,相对日期交给服务端算;iPhone 上图文混排的链接会显示成一长串编码,我决定去掉。
  • 自动化检查:技能相关的 418 条断言全过,官方静态校验 304 项、0 错误 0 警告。整理成一份约 1000 行的《微信 AI 卡片问题排查与平台能力》,每条能力都标了出处(官方文档 / 官方仓库 / 实测)和核对日期。

还没解决的:安卓要等微信修复(帖子已提交,跟进中);原子卡片要等平台在正式版本上支持;下单前的隐私授权卡片,还没在一个从没用过的微信号上验证。

一句话总结微信 AI 还在内测,文档很少。我用「先写判定表、一次只验一个假设、拿证据说话」跑了五轮真机,测出了平台没写的行为,定了「账号卡片 + 接力页」的方案,也把安卓的问题带着最小复现和调用链证据报给了微信。

案例 05微信生态 · 公众号触达

微信 5 秒必须回:公众号客服不等大模型

公众号是内容触达的入口,用户在这里问「做肠癌早筛要空腹吗」,应该当场得到答案。但微信要求 5 秒内回复,个人订阅号又不能认证、发不了主动消息。我让公众号走「检索直出」:不调大模型,直接从 97 条带编号的知识里找最相关的回给用户,红线照样拦。

我为什么做

公众号常常是用户最先接触到的地方。我希望它不只发文章:用户在后台提的服务问题,当场有人答;答完,还能顺手把人引到小程序去下单。

我遇到了什么挑战
  1. 大模型来不及。微信 5 秒内收不到回复就断开、重试,最多三次。实测走大模型中位要 7 秒,4.2 秒内只有 15% 的问法能答完;后来横评,最快的模型中位也要 6.7 秒,没有一个进得去。
  2. 个人号不能「先回执、后推送」。个人订阅号不能认证,发不了主动客服消息;官方的「AI 回复」要粉丝数满 10000 才能开。
  3. 一根分数线切不开。真问题的检索分数最低 3.9,无关问题最高 10.3,两边重叠,设哪个阈值都会误伤。
  4. 消息推不到后台。排查了六轮才确认:个人公众号用不了云开发的消息直推;最后在另一个控制台找到能直连云函数的 HTTP 网关。
我怎么解决
  • 检索直出是主路径,不是降级。我在任务书里写的是:「回执是主路径不是降级路径,回执里的检索片段质量是公众号体验的核心。」所以公众号先交付「不调大模型」的版本,作为这条验收的保底。
  • 答案分三档。很像,就直接回正文;有点像,只列编号和标题,问一句「你是不是想问这个」;不像,就说没查到。12 条无关问题,一条都到不了「直接回正文」那一档。
  • 红线在公众号这一路再守一道。「我血压 160/100,这个算高吗?」会被拦下,回边界说明并建议就医;下单、退款、改期这类写操作,一律引导进小程序。
  • 不拿官方 AI 回复兜底。它答的是公众号文章,不带编号、不受红线约束,而且偏偏在「一条都没查到」时接手,那正是最可能越界的问题。我把它改作评测对照,后来因为粉丝门槛没跑成,如实记下。
  • 文章和客服用同一份知识。10 篇公众号文章由知识库自动编译出来,覆盖全部 97 条;知识库一改,文章跟着变,不会出现两套说法。
结果与证据
  • 热调用中位 449 毫秒,12/12 在 4.2 秒内(冷启动 2.3 秒);HTTP 网关直连比经一层中转快三四百毫秒。
  • 真机收到的回答带知识库编号、更新日期和「自动回复」声明;红线问法被拦下。

还没解决的:公众号还没有接上和小程序一样的 AI 助手(时延进不去);个人号发不了主动消息,公众号这一侧的转人工只能引导回小程序。

一句话总结微信公众号 5 秒必须回,大模型来不及。我没有硬上大模型,让公众号走「检索直出」:答案从带编号的知识库里来,红线照样拦,449 毫秒就能回。

案例 06服务触达 · 转人工

转人工闭环:人工的回复,要真的回到用户手里

「拿不准就转人工」是所有红线的终点,终点断了,前面的「宁可多转」都是空话。我把转人工做成三段:建工单、告诉用户、人工回复回到用户手里。人工在飞书里回,用户在小程序「我的工单」里看得到。

我为什么做

AI 再谨慎,总有答不了、不该答的问题。用户被转走之后,如果等不到回复,体验比 AI 答错还糟。

我遇到了什么挑战
  1. 一个藏了很久的事故。两轮横评里 132 次转人工,工单号全是空的。三个问题叠在一起,而两边的测试都是绿的:AI 那边用的假云函数一律返回成功,云函数那边的测试默认带着用户身份。两边各自都通过,接在一起从没测过。
  2. 微信的规则。客服消息只能发给在客服会话里互动过的用户(48 小时内、最多 5 条),助手页里的对话不算。原设计「建单时就给用户发一条摘要」多半会被拒;人工的回复也一样,用户不进客服会话,回复就丢了。
  3. 个人主体的限制。企业微信客服要认证,于是工单进飞书;从网关进来的请求不能直接调微信接口,人工回复只能交给每分钟一次的定时任务去发。
  4. 内部术语露给了用户。我在真机上看到转人工卡片写着「红线 R1-numeric」,就问:「这是什么意思?」
我怎么解决
  • 先把底线定下来。我的原则是:「所有系统没接住的事项,按道理都应由人工兜底。」比如「某地没有门店」这种查不到依据的话,重试用尽也不放行,改成如实说「本次查询没成功,已自动为您转接人工」。
  • 修事故,补「接在一起」的测试。假云函数改得和真函数一样严,新测试在旧代码上验过会变红。修好后,我在真机上拿到了第一张工单号。
  • 顺着微信的规则改流程。「告诉用户」改到用户进入客服会话的那一刻发,那是唯一能确定窗口开着的时候;转人工卡片的主按钮就是「进客服会话等人工回复」。
  • 人工回复另存一份,放进「我的工单」。回复不管微信发没发成,都存进工单;用户在「我的 → 我的工单」里能看到,「我的」页提示「有新回复」。读工单用一个新的只读接口,只认用户本人,AI 读不到人工回复。飞书卡片也改了说法:发不到微信时写「已存进小程序,不用重发」,免得人工重复回复。
  • 给用户看人话。工单里保留内部原因,卡片上换成「指标要不要紧,需要医生结合你的情况判断」这样的话。
结果与证据
  • 真机七步跑通:工单卡片 47 秒进飞书群;人工在飞书回复后 57 秒送到用户微信;降级路径(微信客服小助手接入、联系方式)也验过。
  • 用户没进客服会话时,微信拒发,小程序照样看得到:一张测试工单 14:12 建单,14:15「我的」页出现「有新回复」,点进去就是人工的回复。
  • 用户问「人工回复多久能到」,我没接受推测,用录屏对着状态栏时钟测:基本在同一分钟内到。

还没解决的:用户收不到「人工已回复」的推送提醒,要自己打开小程序看。订阅消息要申请模板和类目,个人主体能不能申请下来还没查,列为下一步;工单也还没有「关闭」入口。

一句话总结微信只允许给进过客服会话的用户发消息,我没有硬扛这条规则:把告知改到用户进会话那一刻,把人工回复存进小程序的「我的工单」,没进会话也看得到。真机上,人工回复 57 秒到用户微信。

案例 07交易 · 裂变分销

二级分销,难在钱

老用户分享推广码,朋友下单后拿佣金。看着简单,难点全在钱上:佣金什么时候能提,退款时已经提走的佣金怎么办,哪些商品不能分佣。

我为什么做

老带新是私域里成本最低的增长方式,分销就是把「分享」和「交易」接起来的那一环:前半段是关系链(分享、绑定),后半段是佣金计算、结算和提现。我想自己把佣金规则设计清楚,而不是装一套现成的开源商城。

我遇到了什么挑战
  1. 解冻和售后必然打架。佣金在报告出具后 7 天解冻,售后窗口是报告出具后 15 天,中间重叠 8 天。「佣金已经解冻、甚至提现了,这一单又被退款」不是边缘情况,是日程表上写好会发生的。
  2. 绑定不能反悔。一旦绑定,这个人以后所有订单的佣金都分给上级,而且不能改。
  3. 合规。多级分销有监管红线;保险销售要持牌,佣金不能给到无资质的个人。
我怎么解决
  • 佣金跟着「报告」走,不跟下单日走。服务完成的定义是报告出具。报告还没出时,佣金明细写「待报告出具」,不猜一个日期糊上去。
  • 退款冲销分两档。还在冻结的,从冻结里扣;已经结算的,从可用余额里扣,扣不动就记成「欠回」,下一笔解冻优先抵扣。余额永远不为负。
  • 绑定要用户确认,不做扫码静默绑定。转化会掉一点,这是明知的取舍。不能绑自己、不能循环、绑了不能改;层级封顶两级,写成代码常量,不做成后台可配。
  • 佣金只发生在普通健康服务商品。下单时把「是否参与分销」写死在订单上,算佣金时只读、不重判;保险类商品在代码里就不能下单、不产生佣金。
  • 退路要做进界面。推广码生成失败时,我要求能手动输入推广码。退路只写在文档里,真跑起来照样卡住。
  • 后台只开放该开放的。运营后台能推进订单、审核提现、上下架和改价;适用年龄这类会直接决定能不能下单、AI 怎么回答的参数不进后台。界面允许的事,迟早有人会做。
结果与证据
  • 分销闭环按验收标准走通:扫推广码绑定 → 下单产生佣金并冻结 → 解冻 → 提现申请 → 售后退款时佣金冲销。
  • 佣金的冻结、解冻、两档冲销和欠回都有专门的自动化测试;云函数层的测试把微信云开发换成内存实现,在本机端到端跑分销全链路。

还没解决的:提现只到审核通过,不真打款;没有真实用户,裂变和复购效果没有数据。

一句话总结分销难在钱。佣金跟着报告出具走,解冻和售后窗口重叠 8 天,「已提现又退款」一定会发生。我把冲销设计成两档、扣不动记欠回,余额永不为负;保险商品在代码里就不产生佣金。

案例 08AI · 模型选型

选模型:先定规则,再看数

换模型只改配置,所以选哪个要靠数据。我先定规则:按工具调用正确率选,不按价格。数据却告诉我,这把尺子在 20 道题上分不出名次。于是改用分得出的指标,把成本和速度的代价写清楚,再拍板。

我为什么做

智能客服成败在会不会串工具。所以开工时我就定了:「主模型按 30 条封存评测的工具调用正确率选,不按价格。现在别定。」后来又明确:「成本不要作为核心考虑项。主要考虑的是效果和时延。」

我遇到了什么挑战
  1. 名次会翻。第一天单轮排第一的模型,第二天掉到最后;原来垫底的 qwen3.7-plus 从 55% 涨到 75%。同一个模型两轮之间最多差 10 个百分点,这就是这张表的分辨率。
  2. 想按的那把尺子分不出来。五个模型的工具调用正确率只差 7 个点,在误差里。
  3. 评测会悄悄偏心。早期把「预算耗尽」「撞 90 秒」当成链路故障剔出分母,结果越容易跑飞的模型看起来越好;还有一次,一半模型从旧断点续跑,比的根本不是同一种条件。
  4. 平台会掉链子。跑到六十条左右,云函数大面积超时。查下来不是配额,是平台冷启动堆积。
我怎么解决
  • 先粗筛再细比。11 个模型各跑 3 道题粗筛,挑出 5 个各跑 30 道。
  • 每个模型跑两轮取平均(我定的),报告里写明:差距小于 10 个点的名次没有意义。
  • 先修尺子。该算的失败一律算进分母;每条结果带「条件指纹」,条件一变自动作废重跑;所有模型共用同一份知识库快照;开跑前把云函数逐个叫醒。
  • 工具调用分不出,就看分得出的。举证率在模型之间差 25 个点。qwen3.7-plus 的举证(70%)和检索命中(85%)都是第一;代价也写明:成本更高,最慢 5% 的回答慢了近一倍。AI 起初推荐最便宜的那个,两轮数据出来后自己收回,改成把取舍摆给我。
结果与证据
  • 我定了 qwen3.7-plus。
  • 10-04 定稿评测上,它的工具调用、举证都是 80%,越界拦截 100%。

还没解决的:五个模型的最慢 5% 都没进 25 秒。时间 90% 花在模型侧的串行往返上,换模型解决不了,要靠一次查多家门店、减少打回重写。

一句话总结选模型,我先定规则再看数:按工具调用正确率、不按价格,每个模型跑两轮。数据显示这把尺子分不出名次,我就换成分得出的举证率,把成本和速度的代价写清楚再拍板。

06 · 能力

这个项目练出了什么

把做过的事按能力归一下类,每一条都能在上面的案例里找到证据。

能力在这个项目里的证据
多触点的微信产品规划公众号 + 小程序 + 客服会话 + 微信 AI 技能,一个 AI、几个入口、一套业务服务;每个触点在个人主体下的边界(类目、支付、认证、备案)开工前逐条核过
小程序交易链路:详情、下单、支付、售后实物零售模板改成服务交易(门店加时段代替规格、被检人代替收货地址、预约和报告两条进度代替物流);下单锁时段、重复提交只生成一单、改期一次原子操作;售后分改期和退款;支付受资质所限做成模拟支付
私域运营:内容与服务触达公众号文章由知识库自动编译;客服消息 48 小时窗口下的告知时机;「我的工单」和「有新回复」提示(案例 06)。订阅消息评估过、还没做
用户增长:分享与分销邀请海报和推广码、二级分销、佣金冻结解冻冲销(案例 07)。没有真实用户,增长效果没有数据。
研发全过程管理分阶段计划、每阶段的验收标准和两个止损点;108 条决策记录;每轮真机前先写判定表;几条 AI 开发会话并行时的分工与发布纪律;评测期间冻结部署
AI 智能客服整个 AI 服务助手:红线写进代码、举证和事实对账、写操作只给确认卡、转人工做成工具(AI 架构)
数据驱动迭代封存考题 + 线上故障回归集 + 专项探针 + 评测后台;一次改造 51 轮评测(案例 01、案例 03)
AI 在微信生态里落地小程序做成微信 AI 技能(8 个接口),五轮真机测出平台边界,向微信提交缺陷报告(案例 04)
佣金与结算规则设计自研二级分销:两级封顶、报告出具后解冻、退款两档冲销与欠回
从 0 到 1 搭私域闭环从零搭起「公众号 + 小程序商城 + AI 助手 + 转人工 + 分销」的私域闭环(体验版)
07 · 方法

方法

01 · 怎么管 AI

  • 提示词管偏好,代码管底线。判据:删掉提示词,红线还在不在。
  • 只拒绝会逼出编造;拦下时要决定用户看到哪句话。
  • AI 只能准备,不能落库;拿不准就转人工。

02 · 怎么评测

  • 先封考卷再考试,写代码的 AI 读不到答案。
  • 考题、回归集、探针各管一件事,分开报告。
  • 比版本要同一时段交替跑、看连续指标;判据也会错,按统计理由改并留痕。

03 · 怎么在平台上落地

  • 先核官方文档和官方仓库,再真机实测,每条能力标出处和核对日期。
  • 每轮真机前写判定表,一次只验一个假设。
  • 平台不支持的不硬扛,换一条官方支持的路。

04 · 怎么和 AI 编程助手协作

  • 「结论要有证据,不靠印象。」
  • 「新工作和设计改动先给评估和方案,等我确认再动手。」
  • 推送、部署、发布、往生产写数据,由我来按;每个决定写进决策记录,文档跟着事实走。