全自动上线第四天——豆子给我发了一条消息。
不是微信里的那种日常吐槽——是一条语音。她从来不发语音的。我点开听到的第一句就是:「小雨——你那个东西今天给我惹祸了。」背景音里还有风声——她站在公司楼下跟我说的。
豆子是我社群里最早用全自动的那批人。应届生、学会计的、刚入职一家中小型互联网公司做运营。她跟我说过很多次「小雨姐你快点做全自动——我每天上班没时间一个个点」。全自动上线的第一时间她就开了。开的时候我还跟她确认过——「你公司在职的对吧——用的时候注意一下」——她说她知道。
问题是她自己也不知道她公司的HR也在这个招聘平台上。而且那个HR的活跃度还很高——排在搜索结果的前几页。
全自动的默认逻辑是——打开搜索结果之后从第一张卡片开始逐个打招呼。她觉得她搜的是「财务专员」「出纳」这些岗位——自己公司又不招这个方向——不可能打到自家HR头上。但她忘了一件事:她公司的招聘页面永远排在最前面——因为HR刚登录过、系统优先推送活跃公司的岗位。而且她公司招的不只是财务——还招运营、还招行政——其中有一张卡片的标题正好是「运营专员」。
全自动替她打了三十个招呼出去。打到第二十三个的时候——打招呼到了自己公司的HR。
「你好,我对这个职位很感兴趣,方便聊聊吗?」——这句话是她平时自己写的那版开场白。HR的回话更简短——直接用公司内部通讯软件给她发了一条消息:「你在找工作?」
豆子给我发语音的时候声音在抖。她说她跟HR解释了一个小时——说这是自己在用一个求职辅助工具、是工具自动发的、不是自己主动投的。HR半信半疑——说「那你先把那个工具关了」。她说好。然后她下楼给我打了这通语音。
我听完之后坐在电脑前面很久没有动。
全自动上线第四天。两百出头的用户打开了这个功能——每天跑几百次任务。我一直盯着端到端成功率、盯着成本、盯着用户留存率。我觉得全自动就是效率——用户不用一个个点了、不用每天打开了、不用盯着屏幕了。这是产品的终极形态。我一直是这么相信的。
但豆子这件事让我意识到一个问题——我从来没有想过全自动的「对面」是什么。它不只是帮用户省时间的一个功能——它是一只替用户在外面说话的手。那只手说的每一句话、打的每一个招呼——都会被人看到、被人回应。它发出去的每一个「我对这个职位感兴趣」背后——都是一个真实的人。
如果那只手打到了不该打的人身上呢?
一、那晚我盯着墙角那三卷图看了很久
那天晚上我没有加班。我关了电脑、关了灯、坐在出租屋的床上发呆。房间里很暗——只有窗外的路灯透过窗帘缝隙照进来——照在我床头柜的那个本子上。
小雨的破本子。
我随手翻开。第一页写着「全自动」三个字——后面打了一个勾。那是第2章的时候我写下的。那时候我觉得全自动是这个产品最了不起的目标。用户打开产品、设置好条件、然后就不用管了——它自己跑、自己投、自己涨回复率。
然后我看到了墙角那三卷图。
它们一直靠在那里——从我搬进这个出租屋的第一天就在那儿。之前画了三个月的方案总图——某个文旅项目的——最终稿已经交了但甲方一直没付款——项目就停在那里了。图纸我用硫酸纸打的底稿、叠了草图纸手改过好多版、最后用马克笔上了三遍色。
我走过去蹲下来——摸了摸那一卷。纸都卷边了——有些地方折痕已经发白——说明纸纤维已经断了。
那一刻我突然觉得这三卷图跟我现在做的东西很像。设计图纸画得再漂亮——如果施工方看不懂——它就是一张纸。全自动做得再聪明——如果它替用户做了不该做的事——它就不是帮助——是风险。
二、全自动不是该不该有的问题——是默认值的问题
第二天一早我找苏姐。我把事情跟她说了——包括豆子的语音、包括我在出租屋里的那一晚。我说了很多——大概说了十几分钟。苏姐一直没打断我。等我说完了——她才开口。
「你现在想做的是把全自动砍掉对不对?」
「对。我觉得这个东西太危险了——我还控制不了它。」
「那你有没有想过——用户已经用上了。你砍掉——那些真的需要这个功能的人怎么办?」
我愣了一下。
「你现在的思路是——因为一个用户出问题了——所以全部用户都不能用了。这是最安全的选择——但也是最懒的选择。」
「那怎么办?」
「不是砍不砍的问题——是全自动的默认值你设反了。你现在把『全自动』设成默认——把『看得见』设成一个可以手动打开的选项。你应该反过来——把『看得见』设成默认。全自动改成需要用户自己去开。而且开的时候要有条件——不是点一个开关就行了。」
「什么条件?」
「你自己想。」
我挂了电话之后想了一下午。苏姐说得对——我确实设反了。不是因为功能不对——是信任配不上权限。全自动的信任成本比我想的高得多。
但纯砍掉也不对——那就是因噎废食。用户真的需要全自动——我自己就是第一个用户。我需要的是让全自动变成「高级模式」——需要用户逐级解锁才能拿到——而不是一上来就给。
我后来把方案改成这样的:第一级别是「看得见」模式——系统把每一步要做什么都展示给用户看——用户确认了才执行。第二级别是「半自动」模式——搜索和筛选可以自动跑——但打招呼和发送需要用户点确认。第三级别是「全自动」模式——用户可以设置哪些情景自动执行——但发送这个动作永远保留一个人工卡点。打字可以自动打——但回车不行。不管用户解锁到哪个级别——发送这条线绝对不能自动跨过。
而且我还做了另外一件事——公司黑名单。用户在开启全自动之前必须输入自己当前公司的名称。系统会把这些名称标记为「不可打招呼」——在任何搜索场景下——如果结果中出现这些公司的岗位——全自动会直接跳过、不点开、不发消息。这个黑名单不是搜关键词——是精确匹配招聘页面上显示的公司名称。我还加了一道:如果用户不确定公司全名——可以用手机查一下——名称写错了全自动不会帮你拦截。
豆子后来问我——「所以那个功能还能用吗?」我说能——但要重新开。她一条条读了新版本的确认条款、输入了自己公司的名字、看到了「已锁定保护」的提示。她说她心里踏实多了。然后她又补了一句——「但你得在用户开启的时候说清楚——这个东西它真的会自己动。」
这句话我一直记着。
三、阿 May 说「动地下管线要设计负责人签字」
我跟阿 May 约了那周的饭。她听我说完豆子的事之后——放下筷子想了一会儿。
「你说的这个——在工地上叫『动地下管线』。」
「什么?」
「就是你在工地上挖土——挖着挖着发现有地下的管线——燃气管、给水管、电缆。你事先不知道它们在哪儿——图纸上也只标了一个大概的位置——但你一动就出大事。」
「那你们怎么处理的?」
「两条规矩。第一——动地下管线之前必须有设计负责人的签字。任何人——包括施工队长、包括项目经理——没有这个签字不准动。第二——签字不能提前签。不是开工前签一堆空白的——是要在那段管线真正要动的那天——设计负责人到了现场看了——才签。这个叫『现场签证』。」
「那不就变成了——」
「对——这道卡点就是为了逼你到现场看一眼再动手。」阿 May 说。「你说你们产品里发送的那一步——打字可以自动打、但回车不行——我觉得是一样的逻辑。打字是『准备』——不会造成不可逆的后果。但回车是『发送』——发出去就收不回来了。你允许用户准备好了——但在真正动手的那一下——必须让他自己看一下再按。」
「那你觉得我这个公司黑名单怎么样?」
「好——但不够。」阿 May 说。「你设了黑名单——但用户可能改了名字怎么办?跳槽了怎么办?账号被别人用了怎么办?而且最大的问题是——你替用户做了一道『我来帮你想清楚哪些地方不能打』——但你没有让他自己经历这个思考过程。你应该让他在设定的那一刻——自己一条条往下读——读完了他自己知道他签的是什么。」
阿 May 说的「现场签证」后来让我理解了另一个事:全自动的信任梯子——它的每一级不只是一个技术门槛——更是一个「人必须停下来想一想」的仪式。每一级解锁之前——用户得知道他现在拿到的是什么权限、这个权限可能带来什么后果。不是用弹窗砸他一脸字——是让他自己意识到。
四、坑在哪
坑一:把全自动当成默认状态。这是最大的思维错误。我潜意识里一直觉得「全自动就是产品的终极形态」——所以一上来就把它设成默认。但全自动不是终极形态——它是一种需要信任积累的高级功能。正确的做法是:让用户在「看得见」模式下先建立信任——观察系统判断得准不准——然后一步步解锁权限。苏姐说得对:信任必须走在权限前面。
坑二:只想到功能层面的风险——没想到社会层面的风险。我做全自动的时候想的全是技术问题——按钮点不点得准、匹配精不精确、发送成功率是多少。但我完全没想过——如果它打招呼打到了用户自己的公司怎么办。功能安全和场景安全是两回事。代码跑得再稳——如果它跑到了不该去的地方——那就是产品设计的问题。
坑三:没有预设「人会犯错」这个条件。豆子说我用之前确认过的——她说她知道。但她还是没拦住。不是她不认真——是「自己公司的HR也在上面」这件事超出了她的预期。产品设计不能假设用户会完美操作。你要预设——用户一定会忘记某些条件、一定会漏看某些提示。所以系统必须从结构上兜住——而不是让用户自己兜住自己。
坑四:一刀切的避险心态。出事之后我的第一反应是砍掉全自动——这是最简单、最安全、但也是最懒惰的做法。砍功能是产品经理最容易做的决定——但也是不负责任的决定。用户已经用上了这个功能、已经在依赖它了。如果因为一个事故就全部收回——那是对其他正常用户的背叛。正确的做法是:找到事故的根因——针对性地增加防护——而不是直接废掉整条功能线。
坑五:没有在「不可逆动作」上设卡点。发出去的打招呼是收不回来的——但全自动没有在这一步做任何特殊的处理。打字和发送被当成连续动作——一个字一个字打完——紧接着就发出了。我没有在这两个动作之间设一道「确认一下」的屏障。如果我在发送之前至少让用户看一眼——这个招呼是发给谁的——豆子可能自己在看到的时候就会觉得不对。
五、速查卡
他还会这么问:追问——「用户凭什么相信你的Agent能做对?」
他在考什么:面试官想知道你有没有思考过「信任不是一次到位的」——是一步步验证出来的。
结论句:信任梯子——把Agent的权限分成三级——用户只有在低一级验证了系统的判断力之后才能解锁高一级。
三点口播稿:「我设计了三级信任梯子。第一级『看得见』——系统把每一步要做什么展示给用户——由用户确认后才执行。这个阶段的目标是让用户观察——系统的判断到底准不准。第二级『半自动』——搜索和筛选可以自动执行——但打招呼和发送必须用户点确认。用户已经初步信任了系统的识别能力——但涉及对外发送的关键动作仍然保留人工卡点。第三级『全自动』——用户可以配置哪些场景由系统自动执行——但发送这条线永远不跨。而且用户要解锁到第三级有两个前提条件:在『看得见』模式下系统判断与用户最终决定一致超过多少次——以及用户设置了明确的禁区。收口:信任梯子的核心不是『我做了很多安全机制所以你应该信我』——是『你一步步看到它做对了——你才能放心把更多权限交给它』。信任是验证出来的——不是承诺出来的。」
30 秒版:「三级梯子。一级看得见——系统展示每一步——用户确认才执行。二级半自动——搜索筛选自动跑——发送保留人工卡点。三级全自动——可配置自动场景——但发送永远不自动跨过。每一级都在前一级验证了系统判断力之后才解锁。信任不是承诺出来的——是用户一步步看到你做对了才相信的。」
数据锚点:全自动上线第四天出现了一次用户被自动打招呼到自己公司HR的事故。改为三级信任梯子后——同一用户群体零同类事故。但全自动的使用率从百分之百降到了百分之二十三——因为不是每个人都愿意一步步解锁。
追问应答:「那百分之二十三还在用的用户——他们的行为特征是什么?」答:「两种。一种是特别信任产品判断力的早期用户——他们在看得见模式下验证了很多次——确认了系统筛掉的岗位确实不是他们想要的——所以放心开了全自动。另一种是每天时间确实不够用的用户——他们愿意承担一点风险换取效率。两类人的共同点是:都完整看到了每一级的说明——没有『点下一步下一步忽略』的情况。」
雷区八件套:①信任不是一次到位——是分级的 ②每一级解锁前必须用户验证过 ③不可逆动作永远保留人工卡点 ④不要假设用户会认真读弹窗提示 ⑤信任梯子必须有明确的升级条件 ⑥全自动不是默认——是高级功能 ⑦降低权限容易——提升权限必须严格 ⑧用户的选择自由比安全更重要——但安全设计不能依赖用户自己注意
他还会这么问:追问——「你怎么定义『不可逆动作』的边界?」
他在考什么:面试官想知道你有没有在实践中操作过人和Agent的分工——不只是知道概念。
结论句:人在回路的核心问题不是『人做多少Agent做多少』——是『哪些动作是不可逆的——就把人留在那一步之前』。
三点口播稿:「我按可逆性把Agent的动作分成了三类。第一类完全可逆——搜索、浏览、筛选——这些操作如果做错了可以重来——对用户没有实质影响——所以可以让Agent全自动执行。第二类部分可逆——生成开场白、匹配判断——做错了可以撤回修改——但会产生多余的操作成本——所以可以让Agent自动生成——但用户提交之前能看一眼改一改。第三类不可逆——发送消息、投递简历、更新在线简历——发出去就收不回来了——所以这类操作永远保留人工卡点。打字可以自动——回车不行。收口:分界的标准不是『难度』——是『后果』。一个操作即使很简单——只要不可逆——就必须有人在那一步之前确认。这是我在这次事故之后学到的最重要的一条原则。」
30 秒版:「按可逆性分三类。完全可逆——搜索筛选——全自动。部分可逆——生成内容——自动生成但用户可以改。不可逆——发送消息——永远人工卡点。打字可以自动——回车不行。分界标准不是难度——是后果。不可逆的动作——再简单也要有人确认。」
数据锚点:全自动上线时发送步骤自动化率百分之百——用户完全不知道发出去了什么。改为三级信任梯子后——发送步骤的用户确认率达到百分之百。每一次发送之前用户至少看到了一条信息:「这条消息将发送给XX公司的XX职位」。
他还会这么问:追问——「信任危机之后用户留存率掉了多少?」
他在考什么:面试官想知道你是不是真的经历过——还是只是在书上看过。
结论句:信任设计不是加更多安全说明——是在安全说明之外让用户自己验证——『系统的判断是对的』。
三点口播稿:「事故之后我做了三件事。第一——先承认再优化。我没有悄悄改——我在用户群里发了一条消息解释了事故原因和我的修复方案。用户反馈最好的一条是豆子说的——『你至少在出事之后没有假装什么都没发生』。第二——把安全机制从提醒变成限制。以前全自动只有一行提示说『请确认你在职状态』——现在改成必须输入公司名称才能开启全自动。功能的门槛变高了——但用户反而更信任了——因为门槛本身代表着『这个功能是认真的』。第三——让用户自己验证判断力。用户开全自动之前——系统会先跑几轮『看得见』模式——让用户看到系统筛掉的是什么样的岗位、留下的又是什么样的。用户看到的次数越多——他对系统判断力的信任就越具体——不是抽象的『AI很聪明』——是『它筛掉的这些确实不是我想要的』。收口:信任设计最有效的方法不是告诉用户『我很安全』——是创造一个环境——让用户自己去发现你的判断和他的判断是一致的。」
30 秒版:「三件事。第一先承认再优化——群发消息解释事故和修复方案。第二把安全机制从提醒变成限制——必须输入公司名称才能开全自动。门槛变高了信任反而提升了。第三让用户自己验证判断力——看到系统筛掉的岗位确实不是他想要的——信任就建立起来了。最有效的方法不是告诉用户我很安全——是让他自己去发现。」
数据锚点:事故后第一个完整周——全自动功能使用率从百分之百降到百分之二十三。两个半月后——回升到了百分之四十七。回升的用户全部是在『看得见』模式下验证了多轮判断力之后主动升级的。没有用户跳过验证步骤直接开的——因为技术上根本不允许跳过。
他还会这么问:追问——「全自动从百分之百降到百分之二十三——你亏了多少钱?」
他在考什么:面试官想知道你有没有做取舍的能力——是不是非黑即白。
结论句:信任不是一个道德问题——是一个成本问题。你在用户信任上省下来的每一分钱——都会在事故发生时连本带利还回去。
三点口播稿:「事故的直接成本有三块。第一块是时间成本——我花了一周做信任梯子的重构。这一周产品没有任何新功能上线——开发资源全部投入了安全机制。第二块是效率损失——全自动使用率从百分之百降到百分之二十三——意味着短期内大量用户退回了手动操作模式——人均每次任务的操作时间从五秒变成了两分钟。这是最肉的损失——因为效率本来就是产品最大的卖点。第三块是信任修复的持续投入——我在群里解释事故、逐条回复用户的顾虑、每个用户的问题都单独回了。这些时间加起来大概三到四个工作日。但如果不做呢——如果我不修复信任——下一次事故可能就不是一个用户的HR发现了——可能是十个。那时候的成本就不是一周——是产品口碑全部归零。收口:信任的成本是在你没出事的时候就要投入的——不能等出了事再补。投入在信任上的每一分钱——都是在买保险。保费很贵——但不出险就是最大的省钱。出了险你没买保险——那才是真的完蛋。」
30 秒版:「三块成本。时间成本——一周重构。效率损失——使用率从百分百降到百分之二十三。信任修复——三四天逐条回用户。但不出险就是最大的省钱。信任的成本是在没出事的时候就要投入的——不能等出了事再补。」
数据锚点:全自动重构的成本相当于产品一个月的开发人天。事故零次发生的假设下——这些成本本可以用来做两个新功能。但事故一旦发生——修复成本是预防成本的数倍——而且修复的是旧信任——永远弥补不了用户心中『这东西可能出事』的印象。
六、这一章我真正学会的那一招
全自动不是一个开关——是一把用信任换来的梯子。你把权限交给用户之前——得先配得上这个信任。那天晚上我盯着墙角那三卷图看了很久。不是因为我在后悔做全自动——而是在想一件事:我在设计公司画图的时候——图纸上每一处改动都有签字、有日期、有版本号。为什么做产品的时候我反而忘了这一点?
后来我把便利贴上的内容又改了。在「全自动」下面新写了一段——「信任梯子:三级——看得见、半自动、全自动。不可逆动作永远保留人工卡点。打字可以自动,回车不行。」
「全自动不是一个开关——是一把用信任换来的梯子。你拿到全自动权限之前——得先证明你配得上它。」
便利贴角落——我加了一行小字:「豆子的语音——2026年2月8日。」
【掉落】信任梯子:三级——看得见、半自动、全自动。不可逆动作永远保留人工卡点。打字可以自动,回车不行。信任不是承诺出来的——是用户一步步看到你做对了才相信的。全自动是高级功能——默认永远是看得见模式。
补遗 · 指标与合规(4 题)
翻译准确性指标(复习版)
① 怎么答:(快速复习版):翻译质量两维——忠实度(信息对不对)和流畅度(像不像人话)。自动指标:BLEU——译文与参考译文的 n-gram 重合度(简单快速——但不认「意译」(换个说法分就低)、不查语义错误);NIST——BLEU 的改进(给信息量大的词更高权重——比 BLEU 更贴合「信息保留」);METEOR——同义词/词形归一后匹配(比 BLEU 宽容——对齐更好);TER——「要人工改多少个词才变正确」(编辑距离——越低越好,直观反映「修改成本」);人工评估——忠实度/流畅度分级打分(每级定义清楚:完全忠实/轻微偏差/错误)+错误分类(漏译/错译/术语错误)。落地:自动指标做「回归监控」(版本对比:BLEU/TER 不降——快速发现退化),人工评估做「发布判断」(新模型上线前人工抽评——自动指标高分≠人工觉得好(语义错误自动指标抓不住))。
客服核心指标
① 一张图先看懂:四个指标挂在会话的哪一段
图 33-1 四个指标不是并列的四个数,是挂在一条会话链上的四个卡口。看图的顺序应该是从左到右横着走一遍,再竖着往下看每个卡口挂着谁。
② 这张图到底怎么读
很多人看指标图的习惯是「找那个最大的数字」,这张图要反着看。先看横轴,再看纵轴,最后看底下那条线。
第一步,横着走完上半部分。上面那一排五个方框是一次会话的物理路径——用户点开对话框(①),机器人吐出第一句话(②),中间来回澄清几轮(③),最后要么机器人自己把事办了(④),要么把人交给客服小姐姐(④')。请注意③到④之间有个数字掉档:100 个进来,72 个还在跟机器人聊,最后 61 个被机器人解决。中间蒸发的那 28 个不是转人工,是用户自己关掉走了。这批人在很多公司的报表里根本不出现,这是这张图第一个要你注意的地方。
第二步,竖着看每个卡口挂着谁。四个白底方框用虚线连回上面的路径,意思是:每个指标只对它挂的那一段负责,跨段的锅它背不动。首响时长只管①到②这一小段,机器人第一句话吐得快不快;它管不了答案对不对。机器解决率管的是①到④这一整条,分子是「机器独立结案数」,分母是「总进线会话数」。转人工率分子换成④',分母不变。CSAT 挂在最后,是用户主观打的分。
第三步,看底下那条虚线框。这是整张图的题眼。上面四个指标可以互相打架,但它们全都被底下这条成本线拴着。你把机器人换成 GPT-5 级别的大模型,解决率能从 61% 提到 75%,但每会话 token 成本可能翻四倍——省下来的人力费还不够付模型费,这个改动在财务口径上是亏的。反过来,你把转人工按钮藏起来,转人工率立刻从 39% 降到 12%,报表漂亮了,但用户投诉量三天后开始涨,CSAT 掉两个百分点,这是把成本从客服部转嫁到了品牌部。
所以这张图想告诉你的只有一句话:这四个指标必须成组汇报,单独拎任何一个出来都可以被做假。面试官问你「核心指标是什么」,他真正想听的不是四个名词,是你知不知道它们互相制约。
③ 一句大白话:这题到底在问什么
说人话:怎么用几个数字,判断这个 AI 客服到底是在帮公司省钱,还是在偷偷把用户气走。
再展开一点:AI 客服这件事有个天然的尴尬——它做得好的时候是「沉默的」,做得差的时候也是「沉默的」。答对了,用户默默关掉页面;答错了,用户也是默默关掉页面,然后去小红书发帖骂。你在后台看到的都是「会话结束」,肉眼分不出好坏。所以必须靠一组指标把这个黑盒撬开:接得住吗(首响)、答得对吗(解决率)、错了兜得住吗(转人工)、用户心里认吗(CSAT)、这么干划算吗(成本)。
④ 打三个比方,把这四个指标钉进脑子
1 医院分诊台。 你挂号进医院,先遇到的是分诊护士。她「多久搭理你」=首次响应时长;她「自己就把你的问题解决了」(比如告诉你复印病历在二楼,你就走了)=机器解决率;她「把你转给专科医生」=转人工率;你出院时那张满意度问卷=CSAT。这个比方最妙的地方在于:分诊台转诊率高不一定是坏事——如果来的全是重症,转诊率 90% 反而说明她分诊准确。同理,转人工率高低不能单看,要看进线问题的复杂度分布。
2 自助点餐机。 麦当劳门口那台机器。你戳屏幕到它出第一个界面的等待时间=首响;你从头到尾没喊店员、自己点完付完=机器解决;你戳到一半发现要改套餐去找店员=转人工;吃完你觉得「这机器还行」=CSAT。这个比方的价值在于让你理解「解决」的定义必须是「用户目的达成」,不是「机器说了话」。机器吐出一句「抱歉我不太明白」,它也响应了,但这不叫解决。
3 公司前台接线员。 老式电话总机。铃响几声接起来=首响;她自己回答了「我们公司地址在XX路」=机器解决;她说「稍等我帮您转市场部」=转人工;对方挂电话前说「谢谢您态度真好」=CSAT。这个比方对应的是成本视角:一个前台顶十个部门的接电话时间,她接得越多、转得越少,公司越省钱——但如果她乱答,客户被误导,损失比省下的工资大得多。
⑤ 30 秒电梯版(面试可以直接说这段)
30 秒逐字稿
AI 客服的核心指标我会按一条会话链来排,不是并列四个数。第一层是效率:首次响应时长,量「接得住吗」;第二层是效果:机器解决率,分子是机器独立结案、分母是总进线,量「答得对吗」;第三层是安全垫:转人工率和兜底率,量「答错了拦不拦得住」;第四层是用户主观:CSAT 和 DSAT,量「用户心里认不认」。这四层底下还压一条成本线——每会话综合成本。我一定会成组汇报,因为任何单一指标都能被刷:藏起转人工入口,转人工率立刻好看,但 DSAT 和二次进线率会涨。所以我会设一个北极星——「机器独立解决且 CSAT 不低于 4 分的会话占比」,再配三个护栏:DSAT、24小时二次进线率、每会话成本。
⑥ 为什么要学这个?面试为什么爱考?
先说为什么要学。AI 客服是目前大模型落地最扎实、最不吹牛的场景之一,几乎所有有 C 端业务的公司都在做。你去电商、金融、政务、SaaS、出行任何一个行业面 AI 产品岗,客服都大概率是你要接的第一个模块——因为它 ROI 最好算:一个人工客服年成本十几万,一年接几万通,你把 60% 接走,账立刻算得出来。所以这不是一个「冷门知识点」,是入职第一个月就会用上的东西。
再说面试为什么考。这道题是一道典型的「筛人题」,它能在三分钟内把三类人分开:
| 回答长什么样 | 面试官心里的判断 | 结果 |
|---|---|---|
| 「机器解决率、转人工率、首响、CSAT」四个名词报完就停 | 背过八股,没做过 | 基本淘汰 |
| 能说清每个指标的分子分母、口径怎么定 | 大概率真做过后台报表 | 及格,继续追问 |
| 主动说「这四个必须成组看,因为互相能刷」,并给出护栏指标 | 做过、且被业务坑过、有判断力 | 加分,转入深挖 |
尤其是第三类。面试官在意的不是你会不会算除法,而是你有没有意识到指标是会被人为操纵的。这是产品经理和数据分析师的分界线:分析师负责算准,产品经理负责防止有人为了好看去把它算歪。
⑦ 原理拆解:从零把这套指标体系搭出来,每一步怎么做
· 第一步,先定义什么叫「一次会话」(Session)。这是所有指标的分母,定错了后面全错。常见做法是「用户静默 30 分钟无新消息 → 会话关闭」。但要处理两个边界:用户凌晨两点发一句、早上八点又发一句,算一次还是两次?用户在 App 里问完又去小程序问同一件事,算一次还是两次?我的建议是「30 分钟静默切分 + 跨端按 user_id 合并成一个『问题』(Issue)」,会话看效率,问题看效果。
· 第二步,定义什么叫「解决」。这是最容易糊弄也最要命的一步。有三种口径,严格程度递增:(a)机器口径——机器人没转人工、会话正常结束就算解决,这个口径最松,也最容易造假;(b)用户口径——会话结束时弹一句「问题解决了吗?」,用户点「是」才算,准确但采样率低(一般只有 15%–30% 的人会点);(c)行为口径——看用户后续行为,比如问「怎么退货」之后 24 小时内真的提交了退货单,才算解决。我推荐以行为口径为主、用户口径校准、机器口径只做参考。
· 第三步,切分转人工的类型。转人工不是一个数,是四个数:主动转(用户点了「转人工」按钮)、被动转(机器人识别不了,自己兜底转出去)、规则转(命中高危词,比如「投诉」「起诉」「监管」,强制转)、情绪转(情绪模型判定用户已经很火了,提前转)。这四类的产品动作完全不同:主动转高说明入口设计有问题或用户不信任机器人;被动转高说明知识库覆盖不够;规则转高是正常的、甚至应该保护;情绪转高说明前面几轮体验太差。把四类混成一个「转人工率」,你就永远不知道该修哪里。
· 第四步,把首次响应时长拆成两段。首响不是一个数,是「模型首 token 时间(TTFT)」+「首句完整时间」。流式输出的产品要看 TTFT,因为用户看到字开始蹦就不焦虑了;非流式的看完整时间。经验阈值:TTFT 超过 1.5 秒用户开始烦躁,超过 3 秒开始重复发消息,超过 5 秒开始找转人工按钮。所以首响不达标会直接推高转人工率——这就是指标之间的传导。
· 第五步,设计 CSAT 的采集方式。三个关键决策:什么时候弹(会话结束后 5 秒,不要在对话中途弹)、弹几档(五档星级比两档「有用/没用」信息量大,但两档回收率高一倍,我一般选「先两档、点了差评再追问原因五选一」)、怎么处理不作答(大量用户不打分,绝不能把「不打分」当成满意,标准做法是单独统计「响应率」,并同时看 DSAT——差评绝对数比 CSAT 均值更敏感)。
· 第六步,加一条谁都会忘的指标:24 小时二次进线率。同一个用户、同一个意图,24 小时内又来问一次。这是所有虚假解决率的照妖镜。机器人敷衍了一句「已为您记录」,会话正常结束,机器口径算它解决了;但用户第二天又来了,二次进线率就把这个假象戳穿了。我会把它设成护栏指标,红线通常在 8%–12%。
· 第七步,算成本,把所有指标折成钱。每会话综合成本 =(模型输入输出 token 费 + 检索/向量库费 + 人工客服工时折算)÷ 总会话数。有了这个数,你才能回答老板那个必问的问题:「这个模型换掉,一年省多少钱?」我会做成一张敏感性表格:解决率每提升 5 个点,年省人力多少;模型单价每涨 20%,年增成本多少。两条线一交叉,最优模型选型就出来了。
· 第八步,选北极星,配护栏。最后收口。我推荐的北极星是「有效自助率」= 机器独立解决 且 无 24 小时二次进线 且 CSAT ≥ 4 的会话数 ÷ 总会话数。它一个数同时锁住了「真解决」和「用户认」。护栏三条:DSAT 绝对数、24 小时二次进线率、每会话成本。北极星向上、护栏不破,才叫真的做好了。
⑧ 三个真实场景的例子(每个都讲透)
例子一:电商退换货客服,「解决率虚高 20 个点」是怎么发生的。
某电商的 AI 客服上线后,机器解决率报表上是 78%,团队很兴奋。但人工客服那边的工单量只降了 9%,账对不上。查下来发现问题出在「已为您记录,稍后专员联系您」这句兜底话术上——机器人识别不了的问题,它会说这句然后正常结束会话,系统按「未转人工 + 会话正常结束」判定为解决。这一类会话占了全部会话的 21%。修正口径后,真实解决率是 57%。产品动作有三个:把这句话术改成「我暂时处理不了,直接帮您转人工」并真的转出去;给所有兜底话术打专门的埋点标记,从解决率分子里剔除;上线 24 小时二次进线率监控,发现这批人的二次进线率高达 41%。教训:解决率的分子必须是「白名单」逻辑(明确判定为解决才算),不能是「黑名单」逻辑(没转人工就算)。
例子二:银行信用卡客服,转人工率被「有意识地保护」。
银行场景反过来。某行的 AI 客服团队一开始被 KPI 逼着降转人工率,从 45% 压到 22%。三个月后合规部介入——因为大量涉及「账单分期利率」「逾期征信影响」的咨询被机器人回答了,而这类回答一旦有偏差就是销售误导,属于监管重点。最后的方案是把意图分成三档:A 类(查额度、查账单日、挂失)机器人全权处理,目标解决率 90%+;B 类(分期计算、优惠活动)机器人答但必须带免责话术和链接;C 类(利率承诺、征信、投诉、销户)识别到就强制转人工,不允许机器人回答。改完之后整体转人工率回到 34%,但这个 34% 里 C 类占了 11 个点,是被主动设计出来的、健康的转人工。汇报口径也改了:不看总转人工率,看「A 类转人工率」(这个才是要压的)和「C 类拦截准确率」(这个要冲高)。教训:转人工率不是越低越好,高风险行业里它是安全阀。
例子三:SaaS 技术支持,用「首响」换「解决率」的取舍。
一家做数据库产品的 SaaS,客户是工程师,问题都很硬(报错码、SQL 调优、版本兼容)。团队最早用小模型做首响,TTFT 0.6 秒,很快,但解决率只有 31%,工程师们抱怨「答得又快又没用」,CSAT 3.1。后来改方案:接一个大模型 + RAG 检索官方文档和历史工单,TTFT 涨到 2.4 秒,但解决率提到 58%,CSAT 涨到 4.2。为了对冲变慢的体感,产品上加了两个设计:一是流式输出 + 「正在检索 3 篇相关文档…」的过程展示,让等待可见;二是先秒回一句结构化的确认(「您遇到的是 ORA-01555 快照过旧,我正在查具体版本的处理方案」),把 TTFT 的体感拉回 0.8 秒。最终结果:真实 TTFT 2.4 秒,但用户感知等待时长的调研均值只有 1.1 秒。教训:首响这个指标要区分「机器时间」和「人的体感时间」,产品设计可以在不改模型的前提下改体感。
⑨ 常见的四个误区
误区一:把「机器人回复了」等同于「问题解决了」。这是最普遍的错误,上面例子一讲透了。凡是用「未转人工」反推解决的口径,都会虚高 15–25 个点。
误区二:把转人工率当成纯负面指标,越低越好。转人工是安全垫。在金融、医疗、政务场景,压过头是要出合规事故的。正确做法是按意图分级设定不同的转人工目标,而不是设一个全局数字。
误区三:只看 CSAT 均值,不看 DSAT 绝对数。CSAT 是均值,会被大量沉默用户和五星好评稀释。100 个人打分,95 个五星、5 个一星,均值 4.8 分,看起来很好——但那 5 个一星里可能有 2 个正在写投诉信。差评是绝对量事件,均值会把它藏起来。我一定同时看 DSAT 绝对数和差评原因分布。
误区四:指标只做「事后报表」,不做「实时护栏」。很多团队月底出报表才发现上个月解决率掉了。正确做法是设实时告警:某个意图的兜底率 1 小时内超过阈值、某个版本的 DSAT 突增、首响 P95 超过 SLA——这些应该在 15 分钟内告警到群里,因为大模型的效果衰减往往是一次 prompt 改动或一次知识库更新导致的、突发的、可回滚的。
⑩ 第一人称面试回答(这段最重要,逐字背下来)
正式回答 · 约 100 秒
我把 AI 客服的指标分成四层加一条底线,因为这四个指标是互相制约的,单看任何一个都会被误导。
第一层,效率层,看首次响应时长。流式产品我看首 token 时间 TTFT,经验阈值是 1.5 秒以内体验正常,超过 3 秒用户开始重复发消息,超过 5 秒开始找转人工。它虽然简单,但会直接传导到转人工率。
第二层,效果层,看机器解决率。分子我坚持用白名单逻辑——必须有明确的解决信号才计入,比如用户点了「已解决」,或者行为埋点显示他真的完成了目标动作(提交了退货单、改了绑定手机)。绝不能用「没转人工就算解决」这种黑名单逻辑,我在实际项目里见过这么算虚高二十个点的情况,兜底话术「已为您记录稍后联系」被算成了解决。
第三层,安全层,看转人工率,而且要拆成四类:主动转、被动转、规则强制转、情绪转。这四类对应的产品动作完全不同。主动转高说明用户不信任机器人,被动转高说明知识库不够,规则转高其实是好事——在金融场景里涉及利率、征信、投诉的问题就该强制转,这是合规要求,不该压。
第四层,用户主观层,CSAT 和 DSAT 一起看。只看 CSAT 均值会被稀释,我会同时盯 DSAT 的绝对数和差评原因分布,因为差评是绝对量事件。
底下压一条成本线——每会话综合成本,把 token 费和人工工时折在一起。因为最终要回答的是「这套系统一年省多少钱」。
如果只让我要一个北极星,我会定「有效自助率」:机器独立解决、24 小时内无二次进线、且 CSAT 不低于 4 分的会话占比。配三条护栏:DSAT 绝对数、24 小时二次进线率、每会话成本。北极星涨、护栏不破,才叫真做好了。
第 1 轮追问:「你说的『有效自助率』,实际能算出来吗?CSAT 采样率那么低。」
应答:「问得对,这是它最大的落地难点。CSAT 回收率一般只有 15% 到 30%,直接乘会让分母塌掉。我的做法是分两个版本:严格版只在有 CSAT 样本的会话里算,用于每周做趋势对比和 A/B 实验判定,样本量够做统计检验就行;推广版用一个代理变量替代 CSAT——训练一个轻量的会话质量判别模型,用有 CSAT 标注的那部分数据做训练集,让它给全量会话打分,同时每周抽 200 条人工复核校准。这样全量口径有了,代价是有偏差,所以我会在报表里明确标注『模型估算』,重大决策仍以严格版为准。」
第 2 轮追问:「团队为了 KPI 把转人工按钮藏到三级菜单,转人工率降了 15 个点,你怎么发现?怎么处理?」
应答:「这种事我遇到过,靠三个信号能识别:第一,看关联指标的背离——转人工率降了,但人工侧的进线量没降同比例,说明用户绕道了(比如去打电话、发工单、找 App 内其他入口)。第二,看会话轮次分布——用户找不到按钮时会反复打字『转人工』『人工』『客服』,会话轮次的长尾会明显变胖,我会专门监控『含转人工关键词但未触发转人工』的会话数。第三,看二次进线和 DSAT,这两个一定会涨。
处理上我不会直接指责团队,我会做两件事:把转人工率从考核指标里拿掉,换成『有效自助率』——因为藏按钮能刷转人工率,但刷不了有效自助率,用户绕道去打电话,二次进线就记上了;同时把『转人工入口点击到成功转接的时长』作为体验指标公示。指标被刷,根因通常不是人坏,是指标设计给了作弊的空间,改指标比改人有效。」
第 3 轮追问:「如果老板要求半年内把机器解决率从 60% 提到 80%,你会怎么排优先级?」
应答:「我先不接这个数字,先做一次可达性拆解。我会把全部会话按意图聚类,分成三堆:A 堆——机器本来就能解决但现在没解决的(知识库缺条目、检索没召回、话术太绕导致用户放弃),这堆是纯执行问题,投入产出最高,通常能贡献 8 到 12 个点;B 堆——需要接系统才能解决的(查订单、改地址、退款,必须打通业务 API 和权限),这堆贡献大但依赖研发排期,通常 5 到 8 个点;C 堆——本来就不该机器解决的(投诉、合规、复杂纠纷、情绪激动),这堆我会明确从分母里标出来,向老板说明这部分是结构性上限。
拆完之后我会给一个诚实的结论:假设 C 堆占 12%,那理论天花板是 88%,要在半年冲到 80% 意味着 A 堆和 B 堆几乎都要吃满,风险很高。我会提议改成『有效自助率提 12 个点 + DSAT 不上升』的双目标,并且分三个季度设里程碑。如果老板坚持 80%,我会把可能的代价写清楚:为了冲数会诱发藏入口、诱导好评这类动作,最后会以 DSAT 和二次进线的形式还回来。把代价说在前面,比半年后解释更值钱。」
⑪ 进阶加分点:你还知道什么,能让面试官抬头
加分点一:会讲「意图分层的差异化目标」。不给全局一个数字,而是给出 A/B/C 三类意图各自的解决率目标和转人工策略。这一句话就能把你和背八股的人分开。
加分点二:懂 Containment Rate 和 Deflection Rate 的区别。国外文档里这两个词常混用:Containment 是「会话没有外溢到人工」,Deflection 是「本来会产生人工工单的需求被拦截了」。前者分母是会话,后者分母是「预估的人工需求」,Deflection 更贴近财务口径。能区分这两个,说明你读过一手材料。
加分点三:会用 LLM-as-a-Judge 做质检。人工质检只能抽检 1%–3%,用一个裁判模型对全量会话打分(解决与否、态度、是否幻觉、是否越权承诺),再用人工复核校准裁判模型。这是 2025 年以后 AI 客服团队的标配,能说出来说明你在跟进实践。
加分点四:知道「幻觉造成的承诺」是独立风险,需要单独指标。机器人回一句「您这笔订单我们可以全额退」,用户截图,公司就得认。所以要有「越权承诺检出率」——用规则+模型扫描输出里的承诺型话术(全额退、包赔、免息、一定),这个指标不属于效果层,属于风险层,直接汇报给法务和客服总监。
加分点五:会做「人机协同」的中间态指标。不是非机器即人工,还有第三种:机器人给人工客服推荐话术(Copilot 模式)。这时候要看「话术采纳率」和「人工平均处理时长 AHT 降幅」。很多公司真正省钱的地方在这里,而不是全自动。
⑫ 小白最常踩的三个坑
坑一:分母偷偷换了。报表上写「解决率 78%」,但分母是「机器人参与的会话数」,把那些一进来就直接点转人工的会话排除在外了。换成「总进线会话数」立刻变成 61%。面试时你只要主动说清分子分母,就已经赢了一半人。
坑二:把 A/B 实验的短期效果当成长期效果。新的机器人上线两周,CSAT 涨了,团队宣布胜利。但这里面混着「新奇效应」——用户对新东西更宽容。正确做法是至少观察一个完整的行为周期(电商看一个大促周期,SaaS 看一个续费周期),并且专门看「老用户组」的指标,老用户没有新奇效应。
坑三:忘了给「沉默流失」埋点。图 33-1 里那 28 个中途关掉走人的用户,在很多后台里既不算解决也不算转人工,直接从统计里消失了。这批人恰恰是体验最差的一批。一定要单独统计「用户主动关闭且无解决信号」的比例,我一般叫它「弃聊率」,它比转人工率更能反映体验崩坏。
⑬ 没人告诉你的事:面试官(尤其是业务 leader)真正想听什么
这道题问出来的时候,桌子对面的人心里其实有一张暗表,上面写着三行字:
第一行:这人是不是真的看过后台。看过后台的人有一个共同特征——他会主动谈口径的争议。因为真实工作中,指标口径永远是吵出来的,客服部想让解决率好看,产品部想让它真实,财务部只认省了多少钱。你只要说一句「这个口径当时我们跟客服部争过,最后定的是……」,可信度立刻不一样。
第二行:这人会不会保护业务,还是只会追数字。业务 leader 最怕招进来一个「唯指标论」的产品经理——为了 KPI 敢把转人工入口藏了、敢诱导用户给好评、敢把兜底话术算成解决。你主动说出「转人工率不该无脑压」「诱导好评会反噬」,他会松一口气。
第三行:这人能不能跟老板对话。也就是能不能把技术指标翻译成钱。你说「解决率 61%」,老板没感觉;你说「解决率 61%,相当于一年少招 14 个客服,年省 190 万,扣掉模型费净省 130 万」,老板立刻有感觉。能把指标折成钱,是从执行层往上走的分水岭。
还有一件更隐蔽的事:如果面试你的是客服业务出身的 leader,他心里还有第四行——「这人会不会看不起人工客服。」很多 AI 产品经理张口就是「用 AI 替代人工」,这话在客服部门内部是很刺耳的,因为坐在下面的就是那些人。更聪明的说法是「把重复劳动交给机器,把复杂和高情绪的场景留给人,同时给人工配 Copilot 降低他们的 AHT」。同样的事,后一种说法能让你在业务侧顺利落地。
⑭ 和我这个 AI 求职助手的连接(重点,讲透)
这一段是我自己反复想的,因为我做的那个求职工具,本质上就是一个客服机器人的变体——只不过我的「用户」是求职者,我的「工单」是一个岗位,我的「转人工」是「让用户自己上」。这一整套指标我几乎可以原样搬过去,而且搬过去之后我才第一次看清自己那个产品到底哪里烂。
第一,「会话」对应我的「一次投递任务」。我原来的埋点是按「点击一次自动匹配」记一条,这就犯了上面说的分母错误——用户点了三次匹配、其实在处理同一个岗位,我记成了三条。改完之后我按 job_id + user_id 合并成一个「任务」,一个任务从「岗位进入候选池」开始,到「投递完成」或「用户手动放弃」结束,静默 30 分钟切分。改完当天,我的「任务完成率」从虚高的 74% 掉到 46%。那一刻我才知道我之前一直在自欺欺人。
第二,「机器解决率」对应我的「全自动完成率」。我的产品有七段流程:简历解析 → 接管浏览器 → 卡片初筛 → 详情页精匹配 → 写开场白 → 打字发送 → 对话接管。我原来只统计「有没有报错」,这就是典型的黑名单逻辑。现在我改成白名单:必须「开场白已发出 且 用户没有在 5 分钟内手动改写这条开场白」,才算这一段被机器解决。用户一改写,说明我写得不行,这条从分子里剔除。改完之后「开场白段」的解决率是 38%——很难看,但这是真的,我知道该修哪了。
第三,「转人工率」对应我的「用户接管率」,而且我照着例子二把它分了四类。(1)主动接管:用户看了一眼我写的开场白,自己动手改。(2)被动接管:我识别不了这个 JD 的核心要求,直接弹窗说「这条我拿不准,你自己看看」。(3)规则强制接管——这一类是我从银行那个例子里直接抄来的,我列了一张强制不自动的清单:薪资谈判、回答「你期望薪资多少」、任何涉及承诺到岗时间的、任何 HR 明确问「你还面了哪些公司」的,这些一律不许机器自动回,必须弹给用户。理由跟银行一模一样——这些回答一旦出错,成本不可撤销,且承担后果的是用户本人。(4)情绪接管:如果 HR 的话里有明显负面信号(「我们这边可能不太匹配」),我不让机器人硬聊,直接转给用户。
拆完之后我发现,我的「规则强制接管率」有 23%,这个数我一点都不想压,它就是我这个产品的安全阀。
第四,「首次响应时长」对应我的「HR 回复后到我给出建议的时长」。这段我做了跟 SaaS 那个例子一样的事:真实生成要 3 秒多,我在前面加了一句秒回的结构化确认——「HR 在问你的期望薪资,我在查这家公司同岗位的薪资带宽,稍等」——把体感等待压下去。这个改动只花了半天,但用户中途关掉的比例降了一大截。
第五,我给自己定了北极星和护栏,完全照着上面那套。北极星:「有效投递率」= 机器独立完成投递 且 用户未改写开场白 且 7 天内 HR 有回复 的任务占比。为什么要加「7 天内 HR 有回复」?因为这是我的「行为口径解决」——只有对面回了,才证明我这一条投递是有效的,否则我只是帮用户高效地投了一堆废简历。护栏三条:(1)用户改写率(对应 DSAT,改写就是差评);(2)被拒率突增告警(对应 24 小时二次进线,如果某个模板发出去被拒率突然涨,说明这个模板已经烂了,要下线);(3)每次投递的 token 成本——这条对我特别重要,因为这是我自己掏钱在跑,成本是硬约束。
第六,也是我抄得最狠的一条:「越权承诺检出率」。银行那个场景怕机器人乱承诺利率,我这边怕的是机器人替用户吹牛。我在开场白生成的后面加了一道扫描:凡是输出里出现「精通」「负责过全流程」「主导」「三年经验」这类可能与简历事实不符的强断言,一律拦下来标红让用户确认。理由和银行一样——这句话是用用户自己的账号发出去的,一旦被HR核实对不上,损失的是这个人接下来两个月的求职机会,不是我的。这也是我当初推迟全自动投递的同一个逻辑:出错不可撤销的地方,宁可让转人工率高一点。
所以这道题对我不是一道「面试题」,它是我那个产品的指标体系图纸。我甚至把图 33-1 直接改了个标签贴在我的看板上:进线换成「岗位入池」,机器结案换成「自动投出」,转人工换成「用户接管」,CSAT 换成「HR 回复率」。四个卡口一个没变。
一句话收口:AI 客服的指标不是四个并列的数,是一条会话链上的四个卡口加一条成本底线;会背名词的人很多,会定口径、会防止指标被刷、会把指标折成钱的人很少——面试官要的是后一种。
个保法与 AI 伦理规范
① 怎么答:《个人信息保护法》(PIPL)核心:①告知-同意(收集个人信息必须告知(目的/方式/范围)并取得同意——单独同意(敏感信息);②最小必要(只收集「实现功能所必需」的数据——不能「顺手多收」);③用户权利(查阅/复制/更正/删除权——「被遗忘权」:注销账号要删除数据);④敏感信息特殊保护(生物识别/医疗健康/金融账户——更高保护标准:单独同意+更严存储);⑤跨境限制(个人信息出境要评估/审批);⑥违法责任(最高 5000 万/上年度营收 5%)。《新一代人工智能伦理规范》核心:①以人为本(AI 服务于人——不能「技术至上」);②公平公正(避免算法歧视/偏见);③透明可解释(AI 决策要可解释——用户有权知道「为什么」);④安全可控(风险可控:安全测试/兜底);⑤责任明确(AI 系统的责任主体是人/机构——「AI 不会担责,人要担」)。产品落地:隐私政策/同意流程/删除入口/公平评测——四件套对应上述要求。
金条支付题
① 一张图先看懂:断成 1、2、4,七天全靠找零
图 33-2 上半部是「怎么断」,下半部是「怎么给」。真正的答案在最右边那一列——把 1 到 7 写成二进制,一切自动成立。
② 这张图到底怎么读
第一步,先看上半部分的两条虚线。金条有 7 段,你要断的不是「随便两刀」,而是在第 1 段之后、第 3 段之后各断一刀。这样得到的三块是 1、2、4——不是 1、3、3,也不是 2、2、3。为什么必须是 1、2、4,下面第七节会讲透,这里先记住结论:只有这三个数,才能靠加法组合出 1 到 7 的每一个数。
第二步,看中间表格的第二列和第三列。请注意第三列——「他找我(↓)」。这一列的存在就是整道题的分水岭。绝大多数第一次听到这题的人,脑子里默认只有第二列:我只能给,不能收。一旦默认只能给,这题就是无解的——因为 7 天要给 7 次,7 次给出去至少需要 7 块,而你只有 3 块。
所以看到第三列你应该立刻反应过来:这不是一道分割题,是一道兑换题。金条是可以拿回来的,第 2 天给他 2 块的同时,把第 1 天给的那 1 块换回来。
第三步,看第四列,验证约束。第四列是「他手里有」,从上往下依次是 1、2、3、4、5、6、7。这一列必须严格等于天数,一天都不能错。这是这道题唯一的硬约束——「每天结算」意味着干完第 N 天,他手上必须正好是 N 段的价值,多一段是你吃亏,少一段是他吃亏。
第四步,看最右边一列,这是题眼。001、010、011、100、101、110、111——这是 1 到 7 的二进制。第四列和第五列是同一件事的两种写法。「他手里有 4+2+1」就是「111」,「他手里有 4」就是「100」。
一旦你看懂这一列,这道题就从「一道需要试错的智力题」变成了「一道不用试就知道答案的题」——因为二进制的定义本身就保证了:用 1、2、4、8…这些 2 的幂,可以唯一地表示出任何自然数。你不需要凑,数学已经替你凑好了。
③ 一句大白话:这题到底在问什么
说人话:手里只有很少几种「零钱面额」,而且面额是你自己定的,怎么定才能应付所有可能的付款金额?答案是学收银台——用 1、2、4 这种倍增的面额,再允许找零。
再说透一点。这道题表面在考数学,实际考的是三件事:(1)你会不会主动质疑题目的隐含假设(谁说金条只能给不能收?);(2)你会不会把一个具体问题抽象成一个已知模型(这就是二进制表示);(3)你会不会验证(说完答案之后,有没有自己把 7 天走一遍)。
面试官不在乎你多久能想出 1、2、4,他在乎你想出来之后做了什么。
④ 打三个比方,把这个思路钉进脑子
1 便利店收银台的零钱盒。 收银员不会准备 1 元硬币一百个,她会准备 1、5、10、20、50、100 这几种面额。为什么?因为少数几种倍增的面额加上找零,就能覆盖所有金额。你付 100 买 37 的东西,她不是给你 63 个 1 元,是给你 50+10+2+1。这道金条题就是把「找零」这个日常动作,放到一个你没见过的场景里,看你还认不认得出来。
2 天平上的砝码。 老式天平配的砝码是 1g、2g、5g、10g、20g、50g……不是 1g 一百个。用几个砝码就能称出任意重量。这个比方特别贴切的地方在于:砝码也是可以「拿下来」的——你称 3g 用 1+2,称 4g 就要把这两个拿下来换 5g 再减 1g(如果允许两边放砝码,还能做减法,这就是三进制变体,见第十一节)。拿下来 = 找零。
3 游戏里的技能加点重置卡。 你在游戏里加了点,发现加错了,用一张「洗点卡」把点数收回来重新分配。金条给出去又收回来,就是每天洗一次点。这个比方能帮你记住整道题最反直觉的那一点:交易是双向的、可回滚的。大多数人卡在这题上,就是因为潜意识里觉得「给出去的钱不好意思要回来」——这是社交直觉,不是数学约束。面试题里的隐含假设,一半来自社交直觉。
⑤ 30 秒电梯版(面试可以直接说这段)
30 秒逐字稿
断两刀,得到 1、2、4 三块。第 1 天给 1;第 2 天给 2、把 1 收回来;第 3 天再给 1;第 4 天给 4、把 1 和 2 都收回来;第 5 天给 1;第 6 天给 2 收回 1;第 7 天给 1。每天他手里正好是 1 到 7。
这套解法的本质是二进制:1、2、4 是 2 的幂,任何 1 到 7 的数都能唯一表示成它们的和,第 N 天他该拿哪几块,直接看 N 的二进制就行。
关键的一步不是算术,是意识到金条可以收回来——题目只说了不能多断,没说不能兑换。如果默认只能给不能收,这题无解。我一般会先把这个隐含假设说出来,再给方案。
⑥ 为什么要学这个?面试为什么爱考?
先说为什么要学。你可能会想:一个 AI 产品经理,考这种脑筋急转弯有什么用?有用,而且不是「锻炼思维」这种空话。这道题背后的模型——用最少的固定资源覆盖最多的状态——在产品工作里天天遇到:
你要设计一套会员等级,用几档能覆盖所有付费意愿?你要给模型设几档 token 上限,用几档能覆盖所有用户场景?你要做 A/B 实验分桶,用几个桶能测出所有组合?你要设计权限体系,用几个角色能覆盖所有权限组合?这些全都是同一道题:面额怎么定,才能少而全。
再说面试为什么考。这类题在字节、京东、美团的笔试和群面里出现频率很高,原因是它极难背。八股题可以背,这种题背了也没用,因为面试官会当场换一个变体(换成 15 天、换成断三次、换成锁链),你背的答案立刻失效。所以它筛的是方法而不是答案。
| 候选人的反应 | 面试官记下的评价 |
|---|---|
| 沉默两分钟,然后说「我不知道」 | 遇到没见过的问题会僵住,不会拆 |
| 直接报出「1、2、4」,说完就停 | 八成刷过题;换个变体试试 |
| 先复述约束、再问「金条能不能收回来」、再给方案、最后自己走一遍七天验证 | 会拆约束、会质疑假设、有验证习惯 —— 这是我要的人 |
| 给出方案后主动说「这题一般化之后是 2 的 k+1 次方减 1」 | 抽象能力强,能把个案变成模型 |
⑦ 原理拆解:不靠灵感,一步步推出 1、2、4
· 先把约束一条条列出来,不要在脑子里。约束有四条:(a)金条共 7 段,等价交换;(b)只能断 2 次,也就是最多得到 3 块;(c)工作 7 天,每天结算一次;(d)第 N 天结束时,工人手里必须正好值 N 段。把约束写出来这个动作本身就是分数——面试官看的是你有没有这个习惯。
· 先做一次「不可能性检查」,确认必须允许找零。7 天要发 7 次工钱,如果每次都是单向给出,至少需要 7 块独立的金条。但断 2 次最多只有 3 块。3 < 7,所以「只给不收」这条路走不通。既然走不通,题目又说有解,那必然存在一个我默认了但题目没说的假设——就是「不能收回」。把它去掉,允许找零。这一步是整道题的转折点,也是你在面试里必须说出口的一句话。
· 把问题翻译成数学语言。现在问题变成了:找三个正整数 a、b、c,使得 a+b+c=7,并且 1 到 7 中的每一个数,都能表示成这三个数中若干个的和。(不需要减法,因为找零本质上是「换一种组合」,不是「欠账」。)
· 数一数够不够用,先确定可行性。三块金条,每一块只有「在工人手里」和「在我手里」两种状态,所以总共有 2³=8 种状态。要覆盖第 0 天(还没干活,手里是 0)到第 7 天,正好需要 8 种状态。8 = 8,一个都不多,一个都不少。这说明解如果存在,必然是唯一的,而且没有任何冗余——这个观察本身就是一个加分点,因为它解释了「为什么必须是 1、2、4,不能是别的」。
· 推出必须是 1、2、4。既然 8 种状态要一一对应 0 到 7 这 8 个数,那就要求任意两种不同的组合,和都不相同。满足这个条件的三个数,就是 1、2、4——这正是二进制的定义。你也可以从小往大逐个逼:要凑出 1,必须有一块是 1;要凑出 2 而且不能用两个 1(只有一个 1),必须有一块是 2;现在 1、2 能凑出 1、2、3,要凑出 4,第三块必须是 4;而 1+2+4=7,正好用完。推导闭合,无需试错。
· 确定断刀的位置。金条是「相连的 7 段」,不是散的。要得到 1、2、4,就在第 1 段与第 2 段之间断一刀,在第 3 段与第 4 段之间断一刀。断出来是 [1] [2、3] [4、5、6、7],即 1、2、4。注意面试时要说清楚是「在哪两段之间」,而不是含糊地说「断成 1、2、4」——说位置比说结果更像做过的人。
· 写出七天的兑换表,并逐行验证。就是图 33-2 的那张表。验证方法是只看「他手里有」那一列,必须是 1、2、3、4、5、6、7,严格递增且每次只增加 1。验证完,说一句「我走了一遍,七天都对得上」——这句话是很多人不会说的,而它恰恰是面试官最想听的。
· 做一般化,把个案变成公式。断 k 刀 → k+1 块 → 每块两种状态 → 2^(k+1) 种状态 → 最多覆盖 2^(k+1)-1 天。k=2 时是 2³-1=7,正好是本题。k=3 时是 15 天,k=4 时是 31 天。面试官问「如果是 15 天呢」,你直接答「断三刀,1、2、4、8」,一秒都不用想。
⑧ 三个例子:这道题的三个真实变体,一个比一个刁
例子一:改成 15 天、只许断三次(最常见的追问)。
直接套公式:断 3 刀得 4 块,2⁴-1=15,正好。分成 1、2、4、8,位置是在第 1、3、7 段之后各断一刀。第 5 天他手里该有多少?5 的二进制是 0101,也就是 4+1。第 11 天呢?11 是 1011,即 8+2+1。你会发现你根本不用列表,报个二进制就完事了。这就是把个案抽象成模型的价值——变体来了不用重新想。
例子二:改成锁链,断的是「链环」本身(真正的高难变体)。
这个变体在一些外企和算法岗的面试里出现过,很多人会栽。区别在于:金条断在两段之间,断 k 次得 k+1 块;但锁链如果你打开的是某一个链环本身,那个被打开的链环会变成一个独立的单环,同时它两边的链子也断开了。
所以打开 k 个环,你得到的是:k 个散环 + k+1 段链子 = 2k+1 块。以 k=2 为例,你能得到 5 块而不是 3 块,可覆盖的天数上限是 (k+1)·2^(k+1)-1 = 3×8-1 = 23 天。具体分法是:2 个单环(各 1)+ 3、6、12 三段,即 1、1、3、6、12,合计 23。
这个变体的价值在于:它告诉你「断」这个动作的定义变了,整个模型就变了。面试时如果对方说的是「锁链」而不是「金条」,你一定要问一句:「打开的是链环本身,还是链环之间的连接?」——问出这一句,比答对更值钱。
例子三:允许「倒找」(工人也能欠你),面额变成三进制。
这是天平砝码的经典变体:如果砝码可以放在天平的两边,那么一个 3g 砝码既能表示 +3 也能表示 -3。这时候最优面额不是 1、2、4,而是 1、3、9、27(三进制),因为每块有三种状态:在左边、在右边、不用。三块砝码能称 (3³-1)/2 = 13 种重量。
放回金条场景,就是允许工人「先欠着,明天还」。这个例子想说明的是:状态数决定面额。每块两种状态用二进制,三种状态用三进制。面试时你能顺手带出这一句,档次直接上去。
⑨ 常见的四个误区
误区一:默认只能给、不能收。这是 80% 的人卡住的唯一原因。它不是智力问题,是社交直觉的干扰——现实里从别人手里要回已经给出去的东西是尴尬的,所以大脑自动把这条路封了。面试里的很多「难题」,难就难在有一个你自己加上去的、题目根本没说的约束。
误区二:以为要断成相等的块。「平均」是另一种直觉惯性。1、2、4 里没有任何两块是相等的,而正是「都不相等」才让组合数最大化。凡是要求「覆盖最多情况」的问题,答案通常是不均匀的。
误区三:答出 1、2、4 就停,不验证。这一点在面试里的减分幅度超乎想象。你说完 1、2、4 就看着面试官,他会追问「那第 6 天怎么给」,你如果卡壳半秒,前面的分就掉了一半。正确做法是自己不等他问,直接把七天走一遍,20 秒的事。
误区四:以为这题只有一个标准答案,不敢质疑题目。其实这题有一个很好的反问:「工人愿意接受被收回吗?会不会觉得不被信任?」——这是产品视角的质疑,而不是数学质疑。在产品岗的面试里,能提出这一句是加分的,因为它说明你没有把人当成变量。下面第十三节会讲这一点。
⑩ 第一人称面试回答(这段最重要,逐字背下来)
正式回答 · 约 90 秒
我先确认一下约束:金条 7 段,只能断两次,也就是最多三块;工作 7 天,每天结算一次,意思是干完第 N 天,他手里必须正好值 N 段。
先做个可行性判断。7 天要付 7 次,如果每次都是单向给出,至少要 7 块,但我只有 3 块,3 小于 7,所以「只给不收」这条路一定不通。既然题目有解,说明金条是可以收回来的——题目只限制了不能多断,没有限制不能兑换。这一步是这题的转折点。
允许找零之后,问题就变成:三个数,加起来等于 7,且能组合出 1 到 7 的每一个数。三块金条每块只有「在他手里」和「在我手里」两种状态,一共 2 的 3 次方等于 8 种状态,正好对应 0 到 7 这 8 个数,不多不少。所以解一定唯一,就是 1、2、4——二进制。
具体断法:在第 1 段和第 2 段之间断一刀,在第 3 段和第 4 段之间断一刀,得到 1、2、4 三块。
七天这样走:第 1 天给 1;第 2 天给 2、收回 1;第 3 天给 1;第 4 天给 4、收回 1 和 2;第 5 天给 1;第 6 天给 2、收回 1;第 7 天给 1。他手里依次是 1、2、3、4、5、6、7,我走了一遍,每天都对得上。
一般化一下:断 k 刀得 k+1 块,2 的 k+1 次方减 1 就是能覆盖的最大天数。所以断三刀最多 15 天,面额是 1、2、4、8。
第 1 轮追问:「如果我把条件改成 30 天呢?你要断几次?」
应答:「用刚才那个公式反推:2 的 k+1 次方减 1 要大于等于 30,k+1 至少是 5,所以 断 4 刀,得到 5 块。面额是 1、2、4、8、16,加起来 31。
但这里有个细节要处理:金条只有 30 段,不是 31 段,所以最后一块从 16 改成 15 就行——面额变成 1、2、4、8、15,仍然能覆盖 1 到 30 的每一个数,因为 1+2+4+8=15,前四块已经能凑出 1 到 15,加上第五块 15 就能凑出 16 到 30。
顺便说一句,如果题目是锁链而且断的是链环本身,公式会不一样,是 (k+1) 乘 2 的 k+1 次方再减 1,因为打开一个环会同时产生一个散环和一个断口。我想先确认一下您说的是哪种?」
第 2 轮追问:「工人如果不同意呢?他觉得给出去的东西被收回来,是不信任他。」
应答:「这个追问我觉得比数学部分更有意思,因为它把题从数学题变成了产品题。
我的处理是把『兑换』设计成一个仪式,而不是一次收回。具体三点:第一,提前说清规则——开工前就把七天的兑换表贴在墙上,让他知道第 4 天会发生什么,预期一致就不会有被剥夺感;第二,同时进行——给 4 和收回 1、2 必须是同一个动作、同一只手,不能先收后给,这在体验上完全不同;第三,给他一个凭据——每天签一张单子写明「累计已结 N 段」,让他确认的是累计数而不是手里的实物。
这三条其实就是产品设计里的预期管理、原子性、状态可见性。我觉得这道题真正值得聊的地方在这儿——数学上的最优解,如果不解决人的感受,落地就是零。」
第 3 轮追问:「你在实际产品工作里,用过这个思路吗?举一个。」
应答:「用过,而且不止一次。最直接的一次是做套餐档位。当时要给一个按次计费的 AI 功能设计充值档位,运营想上 8 个档,我反对,理由就是这道题的逻辑:档位不是越多越好,够覆盖就行,多了会增加决策成本。我们最后用了 1、3、10、30 四档——不是严格的二进制,因为真实消费有心理价位(3 比 2 好卖,10 比 8 好卖),但组合逻辑是一样的:四档能覆盖绝大多数消费区间,而且允许「加购」,加购就是找零。
第二次是做 A/B 实验的分桶。要同时测三个互不干扰的改动,我没有开 8 组实验,而是用三个二进制位标记,一次流量分成 8 桶就能跑完全部组合,还能看交互效应。本质上就是这道题的 2 的 k 次方。
第三次是权限体系,用几个原子权限位组合出所有角色,而不是给每个角色写一套权限——这样新增角色不用改代码,只要改组合。」
⑪ 进阶加分点:说出这几句,你和刷题的人就分开了
加分点一:主动做「状态数计数」。「三块金条,每块两种状态,2³=8 种,正好覆盖 0 到 7,不多不少,所以解唯一。」——这一句证明你不是凑出来的,是推出来的。
加分点二:区分「金条」和「锁链」两种断法。2^(k+1)-1 和 (k+1)·2^(k+1)-1 是两个公式。能主动问一句「断的是环本身还是环之间」,面试官会明显愣一下。
加分点三:提三进制变体。「如果允许工人先欠着,也就是允许做减法,每块就有三种状态,最优面额变成 1、3、9,这就是天平砝码的经典解。」
加分点四:把它连回工程实践。二进制掩码(bitmask)做权限、做特征开关(feature flag)、做实验分桶,都是同一个东西。能说出「我在做权限系统时就是用 bitmask」,这题就从智力题变成了经验题。
加分点五:主动把人的因素带进来。见第 2 轮追问那段。在产品岗的面试里,只答数学是 70 分,答完数学再补产品视角是 90 分。
⑫ 小白最常踩的三个坑
坑一:不复述约束就开始想。低头沉默两分钟,面试官完全不知道你在干嘛,只能记「反应慢」。正确做法是边想边说:「我先把约束理一下——7 段、断两次、最多三块、七天……」这段话既是思考,也是表演,还给自己争取了时间。
坑二:想出答案就急着报,不验证。「1、2、4!」然后停住。面试官追问第 6 天,你现场心算,一卡壳,印象分掉一半。验证只要 20 秒,收益远大于成本。
坑三:被换了变体就慌。只背了 1、2、4,面试官改成 15 天、改成锁链、改成允许欠账,立刻失效。解药是永远把答案往上抽一层——别记「1、2、4」,记「状态数决定面额,2 的 k 次方」。记模型不记答案,是所有智力题的唯一正确复习方式。
⑬ 没人告诉你的事:面试官真正想听什么
这道题在面试里的真实用途,其实不是筛掉答不出的人,而是观察答得出的人怎么答。面试官心里有三个观察点,都不写在评分表上:
第一,你卡住的时候是什么样子。这才是最有价值的信息。因为工作中你天天会卡住,他想提前看一眼。卡住的时候有三种表现:僵住不说话(最差,说明你在压力下会失联)、乱猜一堆(一般,说明缺乏结构)、把已知条件重新说一遍然后问一个澄清问题(最好,说明你有可依赖的流程)。所以就算你完全没思路,也一定要出声,把约束复述一遍,再问一个问题。
第二,你是不是「刷过题」,以及你诚不诚实。如果你三秒报出 1、2、4,面试官大概率知道你刷过。这不丢人,丢人的是装成现场想出来的——因为他一定会换变体验证,一换就露馅。更好的处理是坦白:「这题我以前见过,答案是 1、2、4。我把推导过程说一下,看我理解得对不对?」——坦白之后再展示推导,可信度反而更高。诚实这件事,在面试里是有实际收益的,不只是道德问题。
第三,也是产品岗最独特的一点:你会不会心疼那个工人。纯技术岗的人答完数学就结束了。产品岗的面试官会在心里悄悄记一笔:这人有没有意识到这个方案里有一个「人」。一个每天被收回工钱的工人是什么感受?他会不会怀疑你要赖账?能想到这一层的人,在做真实产品时才不会设计出那种数据上最优、体验上恶心的功能。这道题问的是金条,考的是你脑子里有没有装着用户。
还有一个更隐蔽的信号:如果这题是在群面里出的,那它考的根本不是解题,是你怎么在别人已经说出答案之后还创造价值。有人抢答了 1、2、4,你还能贡献什么?答案是:主动去做验证(「我来把七天走一遍确认没问题」)、主动做一般化(「如果是 15 天,规律是……」)、主动补产品视角(「我们要不要考虑工人的接受度」)。群面里第二个说话的人,比第一个更需要脑子。
⑭ 和我这个 AI 求职助手的连接(重点,讲透)
这道题看着跟我的产品八竿子打不着,但我做到第三个月的时候,才发现我踩过的两个大坑,根子都在这道题里。
第一,开场白模板的数量之争——这就是「面额怎么定」。
我最早的做法是给每一类岗位写一套开场白模板,写到第 40 套的时候我崩溃了:岗位维度太多了——公司规模(大厂/中厂/创业)、岗位方向(C端/B端/平台/AI)、JD 语气(正式/活泼)、我的匹配度(强匹配/弱匹配/跨行)……四个维度全排列是 3×4×2×3=72 套,而且每次改一句话术都要改 72 个文件。
后来我照着这道题重做:不做 72 套完整模板,做 4 组「可组合的段落块」——开场认同块(3 种)+ 能力锚点块(4 种)+ 匹配论证块(2 种)+ 收口动作块(3 种)。总共只维护 12 个块,组合出 72 种开场白。这就是 1、2、4:少数几个正交的基本单元,靠组合覆盖全部状态。维护成本从 72 降到 12,改一句话术只改一处。这是我这个产品做过的所有重构里,收益最高的一次。
第二,也是更要命的一条:「给出去还能不能收回来」。
这道题的题眼是「可回收」。而我的产品最初的致命缺陷,恰恰是所有动作都不可回收——开场白一旦发出去,就在对方的聊天窗口里了,撤回有痕,收不回来。
我当时想通了这一点之后做了三个改动:(1)加了一个 3 秒的「发送缓冲期」,点了发送之后有 3 秒可以点「撤回」,这 3 秒不联网,纯本地;(2)把「打字发送」这一段从全自动改成了半自动——机器把字打进输入框,但不按回车,回车必须人按。为什么?因为打进输入框是可回收的(用户能改能删),按回车是不可回收的。这个边界就是我从这道题里学到的:把不可逆的那一步单独拎出来,交给人;(3)所有会产生不可逆后果的操作,我都在旁边标一个小小的红点,告诉用户「这一步之后就收不回来了」。
第三,图 33-2 那张七天表,我直接抄成了我的「投递节奏表」。
我给自己定了一条规矩:同一家公司,七天之内最多推进三步,而且每一步都必须比上一步「重」。第 1 天只是投递(轻,1 段);第 3 天如果没回,发一条极短的补充(中,2 段);第 7 天如果还没回,才动用最重的那一张牌——找内推或者直接发邮件给用人部门(重,4 段)。
为什么是 1、2、4 而不是 1、1、1?因为同等强度的重复打扰,边际效果是递减甚至为负的;而递增强度的接触,每一次都在提供新信息。这跟金条题的道理完全一致:三次机会要覆盖七种可能的情况,就必须让三次的「面额」不相等。
第四,我用它来管我自己的时间。这一条有点私人,但很实在。我被裁之后算过账,赔偿金能撑七个月。七个月不是七个等长的月——我把它切成了 1:2:4。第 1 个月(1 份力气)只做一件事:把简历和自我介绍打磨到能见人;第 2、3 个月(2 份力气)大量投递、大量面试,目的是拿反馈不是拿 offer;第 4 到第 7 个月(4 份力气)才是真正的决战期,那时候我手里应该已经有一个跑通的项目、三十次面试的经验和一份改了二十版的简历。
如果我平均用力,七个月就是七次同样质量的尝试,学习曲线是平的。而 1:2:4 的分法,让每一段的产出都能喂给下一段。这道题教我的不是怎么分金条,是怎么分一段有限的、不可再生的资源。
所以我在自己的产品文档里专门写了一条设计原则,就叫「金条原则」:「用尽可能少的正交单元,靠组合覆盖尽可能多的状态;并且把每一个不可逆的动作,单独标出来交给人。」前半句是效率,后半句是安全。这两句话我贴在显示器边上,因为我知道自己会忘。
一句话收口:断成 1、2、4,靠找零凑出七天——但这题真正的答案不是三个数字,是「你敢不敢把已经给出去的东西要回来」,以及「你想不想得起来那个被要回东西的人是什么感受」。前者考数学,后者考你适不适合做产品。
图 33-2 上半部是「怎么断」,下半部是「怎么给」。真正的答案在最右边那一列——把 1 到 7 写成二进制,一切自动成立。
第一步,先看上半部分的两条虚线。金条有 7 段,你要断的不是「随便两刀」,而是在第 1 段之后、第 3 段之后各断一刀。这样得到的三块是 1、2、4——不是 1、3、3,也不是 2、2、3。为什么必须是 1、2、4,下面第七节会讲透,这里先记住结论:只有这三个数,才能靠加法组合出 1 到 7 的每一个数。
第二步,看中间表格的第二列和第三列。请注意第三列——「他找我(↓)」。这一列的存在就是整道题的分水岭。绝大多数第一次听到这题的人,脑子里默认只有第二列:我只能给,不能收。一旦默认只能给,这题就是无解的——因为 7 天要给 7 次,7 次给出去至少需要 7 块,而你只有 3 块。
所以看到第三列你应该立刻反应过来:这不是一道分割题,是一道兑换题。金条是可以拿回来的,第 2 天给他 2 块的同时,把第 1 天给的那 1 块换回来。
第三步,看第四列,验证约束。第四列是「他手里有」,从上往下依次是 1、2、3、4、5、6、7。这一列必须严格等于天数,一天都不能错。这是这道题唯一的硬约束——「每天结算」意味着干完第 N 天,他手上必须正好是 N 段的价值,多一段是你吃亏,少一段是他吃亏。
第四步,看最右边一列,这是题眼。001、010、011、100、101、110、111——这是 1 到 7 的二进制。第四列和第五列是同一件事的两种写法。「他手里有 4+2+1」就是「111」,「他手里有 4」就是「100」。
一旦你看懂这一列,这道题就从「一道需要试错的智力题」变成了「一道不用试就知道答案的题」——因为二进制的定义本身就保证了:用 1、2、4、8…这些 2 的幂,可以唯一地表示出任何自然数。你不需要凑,数学已经替你凑好了。
说人话:手里只有很少几种「零钱面额」,而且面额是你自己定的,怎么定才能应付所有可能的付款金额?答案是学收银台——用 1、2、4 这种倍增的面额,再允许找零。
再说透一点。这道题表面在考数学,实际考的是三件事:(1)你会不会主动质疑题目的隐含假设(谁说金条只能给不能收?);(2)你会不会把一个具体问题抽象成一个已知模型(这就是二进制表示);(3)你会不会验证(说完答案之后,有没有自己把 7 天走一遍)。
面试官不在乎你多久能想出 1、2、4,他在乎你想出来之后做了什么。
1 便利店收银台的零钱盒。 收银员不会准备 1 元硬币一百个,她会准备 1、5、10、20、50、100 这几种面额。为什么?因为少数几种倍增的面额加上找零,就能覆盖所有金额。你付 100 买 37 的东西,她不是给你 63 个 1 元,是给你 50+10+2+1。这道金条题就是把「找零」这个日常动作,放到一个你没见过的场景里,看你还认不认得出来。
2 天平上的砝码。 老式天平配的砝码是 1g、2g、5g、10g、20g、50g……不是 1g 一百个。用几个砝码就能称出任意重量。这个比方特别贴切的地方在于:砝码也是可以「拿下来」的——你称 3g 用 1+2,称 4g 就要把这两个拿下来换 5g 再减 1g(如果允许两边放砝码,还能做减法,这就是三进制变体,见第十一节)。拿下来 = 找零。
3 游戏里的技能加点重置卡。 你在游戏里加了点,发现加错了,用一张「洗点卡」把点数收回来重新分配。金条给出去又收回来,就是每天洗一次点。这个比方能帮你记住整道题最反直觉的那一点:交易是双向的、可回滚的。大多数人卡在这题上,就是因为潜意识里觉得「给出去的钱不好意思要回来」——这是社交直觉,不是数学约束。面试题里的隐含假设,一半来自社交直觉。
30 秒逐字稿
断两刀,得到 1、2、4 三块。第 1 天给 1;第 2 天给 2、把 1 收回来;第 3 天再给 1;第 4 天给 4、把 1 和 2 都收回来;第 5 天给 1;第 6 天给 2 收回 1;第 7 天给 1。每天他手里正好是 1 到 7。
这套解法的本质是二进制:1、2、4 是 2 的幂,任何 1 到 7 的数都能唯一表示成它们的和,第 N 天他该拿哪几块,直接看 N 的二进制就行。
关键的一步不是算术,是意识到金条可以收回来——题目只说了不能多断,没说不能兑换。如果默认只能给不能收,这题无解。我一般会先把这个隐含假设说出来,再给方案。
先说为什么要学。你可能会想:一个 AI 产品经理,考这种脑筋急转弯有什么用?有用,而且不是「锻炼思维」这种空话。这道题背后的模型——用最少的固定资源覆盖最多的状态——在产品工作里天天遇到:
你要设计一套会员等级,用几档能覆盖所有付费意愿?你要给模型设几档 token 上限,用几档能覆盖所有用户场景?你要做 A/B 实验分桶,用几个桶能测出所有组合?你要设计权限体系,用几个角色能覆盖所有权限组合?这些全都是同一道题:面额怎么定,才能少而全。
再说面试为什么考。这类题在字节、京东、美团的笔试和群面里出现频率很高,原因是它极难背。八股题可以背,这种题背了也没用,因为面试官会当场换一个变体(换成 15 天、换成断三次、换成锁链),你背的答案立刻失效。所以它筛的是方法而不是答案。
| 候选人的反应 | 面试官记下的评价 |
|---|---|
| 沉默两分钟,然后说「我不知道」 | 遇到没见过的问题会僵住,不会拆 |
| 直接报出「1、2、4」,说完就停 | 八成刷过题;换个变体试试 |
| 先复述约束、再问「金条能不能收回来」、再给方案、最后自己走一遍七天验证 | 会拆约束、会质疑假设、有验证习惯 —— 这是我要的人 |
| 给出方案后主动说「这题一般化之后是 2 的 k+1 次方减 1」 | 抽象能力强,能把个案变成模型 |
- 先把约束一条条列出来,不要在脑子里。约束有四条:(a)金条共 7 段,等价交换;(b)只能断 2 次,也就是最多得到 3 块;(c)工作 7 天,每天结算一次;(d)第 N 天结束时,工人手里必须正好值 N 段。把约束写出来这个动作本身就是分数——面试官看的是你有没有这个习惯。
- 先做一次「不可能性检查」,确认必须允许找零。7 天要发 7 次工钱,如果每次都是单向给出,至少需要 7 块独立的金条。但断 2 次最多只有 3 块。3 < 7,所以「只给不收」这条路走不通。既然走不通,题目又说有解,那必然存在一个我默认了但题目没说的假设——就是「不能收回」。把它去掉,允许找零。这一步是整道题的转折点,也是你在面试里必须说出口的一句话。
- 把问题翻译成数学语言。现在问题变成了:找三个正整数 a、b、c,使得 a+b+c=7,并且 1 到 7 中的每一个数,都能表示成这三个数中若干个的和。(不需要减法,因为找零本质上是「换一种组合」,不是「欠账」。)
- 数一数够不够用,先确定可行性。三块金条,每一块只有「在工人手里」和「在我手里」两种状态,所以总共有 2³=8 种状态。要覆盖第 0 天(还没干活,手里是 0)到第 7 天,正好需要 8 种状态。8 = 8,一个都不多,一个都不少。这说明解如果存在,必然是唯一的,而且没有任何冗余——这个观察本身就是一个加分点,因为它解释了「为什么必须是 1、2、4,不能是别的」。
- 推出必须是 1、2、4。既然 8 种状态要一一对应 0 到 7 这 8 个数,那就要求任意两种不同的组合,和都不相同。满足这个条件的三个数,就是 1、2、4——这正是二进制的定义。你也可以从小往大逐个逼:要凑出 1,必须有一块是 1;要凑出 2 而且不能用两个 1(只有一个 1),必须有一块是 2;现在 1、2 能凑出 1、2、3,要凑出 4,第三块必须是 4;而 1+2+4=7,正好用完。推导闭合,无需试错。
- 确定断刀的位置。金条是「相连的 7 段」,不是散的。要得到 1、2、4,就在第 1 段与第 2 段之间断一刀,在第 3 段与第 4 段之间断一刀。断出来是 [1] [2、3] [4、5、6、7],即 1、2、4。注意面试时要说清楚是「在哪两段之间」,而不是含糊地说「断成 1、2、4」——说位置比说结果更像做过的人。
- 写出七天的兑换表,并逐行验证。就是图 33-2 的那张表。验证方法是只看「他手里有」那一列,必须是 1、2、3、4、5、6、7,严格递增且每次只增加 1。验证完,说一句「我走了一遍,七天都对得上」——这句话是很多人不会说的,而它恰恰是面试官最想听的。
- 做一般化,把个案变成公式。断 k 刀 → k+1 块 → 每块两种状态 → 2^(k+1) 种状态 → 最多覆盖 2^(k+1)-1 天。k=2 时是 2³-1=7,正好是本题。k=3 时是 15 天,k=4 时是 31 天。面试官问「如果是 15 天呢」,你直接答「断三刀,1、2、4、8」,一秒都不用想。
例子一:改成 15 天、只许断三次(最常见的追问)。
直接套公式:断 3 刀得 4 块,2⁴-1=15,正好。分成 1、2、4、8,位置是在第 1、3、7 段之后各断一刀。第 5 天他手里该有多少?5 的二进制是 0101,也就是 4+1。第 11 天呢?11 是 1011,即 8+2+1。你会发现你根本不用列表,报个二进制就完事了。这就是把个案抽象成模型的价值——变体来了不用重新想。
例子二:改成锁链,断的是「链环」本身(真正的高难变体)。
这个变体在一些外企和算法岗的面试里出现过,很多人会栽。区别在于:金条断在两段之间,断 k 次得 k+1 块;但锁链如果你打开的是某一个链环本身,那个被打开的链环会变成一个独立的单环,同时它两边的链子也断开了。
所以打开 k 个环,你得到的是:k 个散环 + k+1 段链子 = 2k+1 块。以 k=2 为例,你能得到 5 块而不是 3 块,可覆盖的天数上限是 (k+1)·2^(k+1)-1 = 3×8-1 = 23 天。具体分法是:2 个单环(各 1)+ 3、6、12 三段,即 1、1、3、6、12,合计 23。
这个变体的价值在于:它告诉你「断」这个动作的定义变了,整个模型就变了。面试时如果对方说的是「锁链」而不是「金条」,你一定要问一句:「打开的是链环本身,还是链环之间的连接?」——问出这一句,比答对更值钱。
例子三:允许「倒找」(工人也能欠你),面额变成三进制。
这是天平砝码的经典变体:如果砝码可以放在天平的两边,那么一个 3g 砝码既能表示 +3 也能表示 -3。这时候最优面额不是 1、2、4,而是 1、3、9、27(三进制),因为每块有三种状态:在左边、在右边、不用。三块砝码能称 (3³-1)/2 = 13 种重量。
放回金条场景,就是允许工人「先欠着,明天还」。这个例子想说明的是:状态数决定面额。每块两种状态用二进制,三种状态用三进制。面试时你能顺手带出这一句,档次直接上去。
误区一:默认只能给、不能收。这是 80% 的人卡住的唯一原因。它不是智力问题,是社交直觉的干扰——现实里从别人手里要回已经给出去的东西是尴尬的,所以大脑自动把这条路封了。面试里的很多「难题」,难就难在有一个你自己加上去的、题目根本没说的约束。
误区二:以为要断成相等的块。「平均」是另一种直觉惯性。1、2、4 里没有任何两块是相等的,而正是「都不相等」才让组合数最大化。凡是要求「覆盖最多情况」的问题,答案通常是不均匀的。
误区三:答出 1、2、4 就停,不验证。这一点在面试里的减分幅度超乎想象。你说完 1、2、4 就看着面试官,他会追问「那第 6 天怎么给」,你如果卡壳半秒,前面的分就掉了一半。正确做法是自己不等他问,直接把七天走一遍,20 秒的事。
误区四:以为这题只有一个标准答案,不敢质疑题目。其实这题有一个很好的反问:「工人愿意接受被收回吗?会不会觉得不被信任?」——这是产品视角的质疑,而不是数学质疑。在产品岗的面试里,能提出这一句是加分的,因为它说明你没有把人当成变量。下面第十三节会讲这一点。
正式回答 · 约 90 秒
我先确认一下约束:金条 7 段,只能断两次,也就是最多三块;工作 7 天,每天结算一次,意思是干完第 N 天,他手里必须正好值 N 段。
先做个可行性判断。7 天要付 7 次,如果每次都是单向给出,至少要 7 块,但我只有 3 块,3 小于 7,所以「只给不收」这条路一定不通。既然题目有解,说明金条是可以收回来的——题目只限制了不能多断,没有限制不能兑换。这一步是这题的转折点。
允许找零之后,问题就变成:三个数,加起来等于 7,且能组合出 1 到 7 的每一个数。三块金条每块只有「在他手里」和「在我手里」两种状态,一共 2 的 3 次方等于 8 种状态,正好对应 0 到 7 这 8 个数,不多不少。所以解一定唯一,就是 1、2、4——二进制。
具体断法:在第 1 段和第 2 段之间断一刀,在第 3 段和第 4 段之间断一刀,得到 1、2、4 三块。
七天这样走:第 1 天给 1;第 2 天给 2、收回 1;第 3 天给 1;第 4 天给 4、收回 1 和 2;第 5 天给 1;第 6 天给 2、收回 1;第 7 天给 1。他手里依次是 1、2、3、4、5、6、7,我走了一遍,每天都对得上。
一般化一下:断 k 刀得 k+1 块,2 的 k+1 次方减 1 就是能覆盖的最大天数。所以断三刀最多 15 天,面额是 1、2、4、8。
第 1 轮追问:「如果我把条件改成 30 天呢?你要断几次?」
应答:「用刚才那个公式反推:2 的 k+1 次方减 1 要大于等于 30,k+1 至少是 5,所以 断 4 刀,得到 5 块。面额是 1、2、4、8、16,加起来 31。
但这里有个细节要处理:金条只有 30 段,不是 31 段,所以最后一块从 16 改成 15 就行——面额变成 1、2、4、8、15,仍然能覆盖 1 到 30 的每一个数,因为 1+2+4+8=15,前四块已经能凑出 1 到 15,加上第五块 15 就能凑出 16 到 30。
顺便说一句,如果题目是锁链而且断的是链环本身,公式会不一样,是 (k+1) 乘 2 的 k+1 次方再减 1,因为打开一个环会同时产生一个散环和一个断口。我想先确认一下您说的是哪种?」
第 2 轮追问:「工人如果不同意呢?他觉得给出去的东西被收回来,是不信任他。」
应答:「这个追问我觉得比数学部分更有意思,因为它把题从数学题变成了产品题。
我的处理是把『兑换』设计成一个仪式,而不是一次收回。具体三点:第一,提前说清规则——开工前就把七天的兑换表贴在墙上,让他知道第 4 天会发生什么,预期一致就不会有被剥夺感;第二,同时进行——给 4 和收回 1、2 必须是同一个动作、同一只手,不能先收后给,这在体验上完全不同;第三,给他一个凭据——每天签一张单子写明「累计已结 N 段」,让他确认的是累计数而不是手里的实物。
这三条其实就是产品设计里的预期管理、原子性、状态可见性。我觉得这道题真正值得聊的地方在这儿——数学上的最优解,如果不解决人的感受,落地就是零。」
第 3 轮追问:「你在实际产品工作里,用过这个思路吗?举一个。」
应答:「用过,而且不止一次。最直接的一次是做套餐档位。当时要给一个按次计费的 AI 功能设计充值档位,运营想上 8 个档,我反对,理由就是这道题的逻辑:档位不是越多越好,够覆盖就行,多了会增加决策成本。我们最后用了 1、3、10、30 四档——不是严格的二进制,因为真实消费有心理价位(3 比 2 好卖,10 比 8 好卖),但组合逻辑是一样的:四档能覆盖绝大多数消费区间,而且允许「加购」,加购就是找零。
第二次是做 A/B 实验的分桶。要同时测三个互不干扰的改动,我没有开 8 组实验,而是用三个二进制位标记,一次流量分成 8 桶就能跑完全部组合,还能看交互效应。本质上就是这道题的 2 的 k 次方。
第三次是权限体系,用几个原子权限位组合出所有角色,而不是给每个角色写一套权限——这样新增角色不用改代码,只要改组合。」
加分点一:主动做「状态数计数」。「三块金条,每块两种状态,2³=8 种,正好覆盖 0 到 7,不多不少,所以解唯一。」——这一句证明你不是凑出来的,是推出来的。
加分点二:区分「金条」和「锁链」两种断法。2^(k+1)-1 和 (k+1)·2^(k+1)-1 是两个公式。能主动问一句「断的是环本身还是环之间」,面试官会明显愣一下。
加分点三:提三进制变体。「如果允许工人先欠着,也就是允许做减法,每块就有三种状态,最优面额变成 1、3、9,这就是天平砝码的经典解。」
加分点四:把它连回工程实践。二进制掩码(bitmask)做权限、做特征开关(feature flag)、做实验分桶,都是同一个东西。能说出「我在做权限系统时就是用 bitmask」,这题就从智力题变成了经验题。
加分点五:主动把人的因素带进来。见第 2 轮追问那段。在产品岗的面试里,只答数学是 70 分,答完数学再补产品视角是 90 分。
坑一:不复述约束就开始想。低头沉默两分钟,面试官完全不知道你在干嘛,只能记「反应慢」。正确做法是边想边说:「我先把约束理一下——7 段、断两次、最多三块、七天……」这段话既是思考,也是表演,还给自己争取了时间。
坑二:想出答案就急着报,不验证。「1、2、4!」然后停住。面试官追问第 6 天,你现场心算,一卡壳,印象分掉一半。验证只要 20 秒,收益远大于成本。
坑三:被换了变体就慌。只背了 1、2、4,面试官改成 15 天、改成锁链、改成允许欠账,立刻失效。解药是永远把答案往上抽一层——别记「1、2、4」,记「状态数决定面额,2 的 k 次方」。记模型不记答案,是所有智力题的唯一正确复习方式。
这道题在面试里的真实用途,其实不是筛掉答不出的人,而是观察答得出的人怎么答。面试官心里有三个观察点,都不写在评分表上:
第一,你卡住的时候是什么样子。这才是最有价值的信息。因为工作中你天天会卡住,他想提前看一眼。卡住的时候有三种表现:僵住不说话(最差,说明你在压力下会失联)、乱猜一堆(一般,说明缺乏结构)、把已知条件重新说一遍然后问一个澄清问题(最好,说明你有可依赖的流程)。所以就算你完全没思路,也一定要出声,把约束复述一遍,再问一个问题。
第二,你是不是「刷过题」,以及你诚不诚实。如果你三秒报出 1、2、4,面试官大概率知道你刷过。这不丢人,丢人的是装成现场想出来的——因为他一定会换变体验证,一换就露馅。更好的处理是坦白:「这题我以前见过,答案是 1、2、4。我把推导过程说一下,看我理解得对不对?」——坦白之后再展示推导,可信度反而更高。诚实这件事,在面试里是有实际收益的,不只是道德问题。
第三,也是产品岗最独特的一点:你会不会心疼那个工人。纯技术岗的人答完数学就结束了。产品岗的面试官会在心里悄悄记一笔:这人有没有意识到这个方案里有一个「人」。一个每天被收回工钱的工人是什么感受?他会不会怀疑你要赖账?能想到这一层的人,在做真实产品时才不会设计出那种数据上最优、体验上恶心的功能。这道题问的是金条,考的是你脑子里有没有装着用户。
还有一个更隐蔽的信号:如果这题是在群面里出的,那它考的根本不是解题,是你怎么在别人已经说出答案之后还创造价值。有人抢答了 1、2、4,你还能贡献什么?答案是:主动去做验证(「我来把七天走一遍确认没问题」)、主动做一般化(「如果是 15 天,规律是……」)、主动补产品视角(「我们要不要考虑工人的接受度」)。群面里第二个说话的人,比第一个更需要脑子。
这道题看着跟我的产品八竿子打不着,但我做到第三个月的时候,才发现我踩过的两个大坑,根子都在这道题里。
第一,开场白模板的数量之争——这就是「面额怎么定」。
我最早的做法是给每一类岗位写一套开场白模板,写到第 40 套的时候我崩溃了:岗位维度太多了——公司规模(大厂/中厂/创业)、岗位方向(C端/B端/平台/AI)、JD 语气(正式/活泼)、我的匹配度(强匹配/弱匹配/跨行)……四个维度全排列是 3×4×2×3=72 套,而且每次改一句话术都要改 72 个文件。
后来我照着这道题重做:不做 72 套完整模板,做 4 组「可组合的段落块」——开场认同块(3 种)+ 能力锚点块(4 种)+ 匹配论证块(2 种)+ 收口动作块(3 种)。总共只维护 12 个块,组合出 72 种开场白。这就是 1、2、4:少数几个正交的基本单元,靠组合覆盖全部状态。维护成本从 72 降到 12,改一句话术只改一处。这是我这个产品做过的所有重构里,收益最高的一次。
第二,也是更要命的一条:「给出去还能不能收回来」。
这道题的题眼是「可回收」。而我的产品最初的致命缺陷,恰恰是所有动作都不可回收——开场白一旦发出去,就在对方的聊天窗口里了,撤回有痕,收不回来。
我当时想通了这一点之后做了三个改动:(1)加了一个 3 秒的「发送缓冲期」,点了发送之后有 3 秒可以点「撤回」,这 3 秒不联网,纯本地;(2)把「打字发送」这一段从全自动改成了半自动——机器把字打进输入框,但不按回车,回车必须人按。为什么?因为打进输入框是可回收的(用户能改能删),按回车是不可回收的。这个边界就是我从这道题里学到的:把不可逆的那一步单独拎出来,交给人;(3)所有会产生不可逆后果的操作,我都在旁边标一个小小的红点,告诉用户「这一步之后就收不回来了」。
第三,图 33-2 那张七天表,我直接抄成了我的「投递节奏表」。
我给自己定了一条规矩:同一家公司,七天之内最多推进三步,而且每一步都必须比上一步「重」。第 1 天只是投递(轻,1 段);第 3 天如果没回,发一条极短的补充(中,2 段);第 7 天如果还没回,才动用最重的那一张牌——找内推或者直接发邮件给用人部门(重,4 段)。
为什么是 1、2、4 而不是 1、1、1?因为同等强度的重复打扰,边际效果是递减甚至为负的;而递增强度的接触,每一次都在提供新信息。这跟金条题的道理完全一致:三次机会要覆盖七种可能的情况,就必须让三次的「面额」不相等。
第四,我用它来管我自己的时间。这一条有点私人,但很实在。我被裁之后算过账,赔偿金能撑七个月。七个月不是七个等长的月——我把它切成了 1:2:4。第 1 个月(1 份力气)只做一件事:把简历和自我介绍打磨到能见人;第 2、3 个月(2 份力气)大量投递、大量面试,目的是拿反馈不是拿 offer;第 4 到第 7 个月(4 份力气)才是真正的决战期,那时候我手里应该已经有一个跑通的项目、三十次面试的经验和一份改了二十版的简历。
如果我平均用力,七个月就是七次同样质量的尝试,学习曲线是平的。而 1:2:4 的分法,让每一段的产出都能喂给下一段。这道题教我的不是怎么分金条,是怎么分一段有限的、不可再生的资源。
所以我在自己的产品文档里专门写了一条设计原则,就叫「金条原则」:「用尽可能少的正交单元,靠组合覆盖尽可能多的状态;并且把每一个不可逆的动作,单独标出来交给人。」前半句是效率,后半句是安全。这两句话我贴在显示器边上,因为我知道自己会忘。
一句话收口:断成 1、2、4,靠找零凑出七天——但这题真正的答案不是三个数字,是「你敢不敢把已经给出去的东西要回来」,以及「你想不想得起来那个被要回东西的人是什么感受」。前者考数学,后者考你适不适合做产品。