一、一句话把我们问住了

决定要把找厂做成一场对话的时候,团队对难度的判断是乐观的。数据库已经在手里,模型也足够聪明,剩下的看起来只是把两头接上。

真正让我们停下来的,是白板上抄着的一句客户原话:「我要找做密封圈的厂。」

这句话看上去清清楚楚。拆开来看,它几乎什么都没说。密封圈是用在汽车上、液压设备上,还是食品机械上?材质是丁腈橡胶、氟橡胶,还是聚四氟乙烯?他是要采购一批,还是想把自己的原料卖给这些厂?规模门槛在哪里,接不接小批量的订单?

十个字的需求,后面至少藏着五个分岔。而客户并不觉得自己说得含糊——在他的经验里,这句话对一个懂行的老销售就已经足够了。老销售会反问两句,然后心里就有数。

我们要做的事情,说到底就是让软件具备那两句反问的能力。

这半年行业里最热闹的话题始终是模型:谁又刷新了榜单,谁又降了价格。而我们这半年的力气,几乎全部花在了那句十个字的需求后面。有一点必须先说清楚,因为它是这篇文章的全部内容:这些力气没有一分是花在补数据上的,全部花在了让 AI 配得上已经在手里的数据。

二、先说清楚我们手里有什么

天下工厂的数据库收录了 480 万家真实在产的工厂。

「在产」这两个字是一条分水岭。在工商登记里能查到的制造业企业,和真正还在开工、有产能、接得了订单的工厂,是两个差着量级的集合。市面上多数企业数据库做的是前者——把注册信息抓下来、整理好、供人查询;而把还在生产的那一部分单独识别出来,是完全不同性质的活。这件事我们做了很多年,它也是我们唯一真正的护城河。

把这条线划出来,靠的是一项一项啃:经营状态、参保规模、产品与经营范围、实际经营地址、出口记录、资质与政府名单、可以打通的联系方式。每一项都要有来源,都要持续更新,都要经得起客户拨一个电话的检验——「信息有,打过去是空号」这种事,在找厂这门生意里等同于没有信息。

更麻烦的是,这条线还是活的。工厂会停产,会搬迁,会改名,会从一个品类挪到另一个品类。判断一家厂今天是否还在生产,不是抓一次数据就能定下来的结论,而是一件必须反复做、一直做下去的事。这也是为什么这件事很难被快速复制:它不是一次采集,是很多年的持续维护。

落到使用上,这个库是可以被结构化提问的:地域细到区县,品类细到分支工艺,还有规模、成立年限、是否有出口、有没有进过工信部一类的名单。把这些维度组合起来,理论上客户脑子里那份名单的每一个条件,库里都有对应的一栏接得住——他想要「浙江、做医疗级注塑、参保人数三百往上、有出口记录」,这四个条件在库里是四个可以直接对上的维度,不需要任何猜测。

问题恰恰出在「理论上」这三个字。

这半年我们遇到的每一次「找不到」,事后复盘,没有一次是因为库里真的没有。全部是因为我们没能把客户嘴里那句话,翻译成对这个库正确的问法。

下面四道坎,讲的都是同一件事的四个侧面。

三、AI 听得懂中文,听不懂行话

第一道坎出现得最早,也最让人措手不及:AI 的中文很好,但它和工厂讲的不是同一种中文。

市场上有一类走红很快的消费品,客户找过来的时候,用的是社交平台上流行的叫法。而在工厂那一侧,没有任何一家会用这个名字登记自己——他们写下的是材料的名称和工艺的名称,是行业内部沿用了二十年的术语。两边说的明明是同一样东西,字面上却没有一个字重合。

库里这类工厂有几千家,密集地聚在两三个特定的县市里,产品、规模、联系方式一应俱全。而第一版产品面对这个需求,给出的答案是「没有找到」。

数据一直在那里,是我们问错了。

另一类麻烦恰好相反:同一个词,指向的是完全不同的两拨工厂。同样是「模具」,做汽车覆盖件模具的企业和做塑料日用品模具的企业,设备、客户、报价方式几乎没有交集。库里把这两类分得清清楚楚,客户说出这个词的时候心里也只有其中一种,中间那道翻译却没做——于是两类一起端了上去。

最有代表性的一次,是一家生产工业润滑脂的企业过来找客户。他要的是「会大量用到润滑脂的工厂」——食品机械、冶金设备、风电装备这一类的制造企业,这些工厂在库里数量可观、分类明确。而系统把这句话理解成了「生产润滑脂的工厂」,认认真真地给了他一份同行名单。

从字面上讲,这个理解没有错。从生意上讲,名单里的每一家都是他的竞争对手。

这类错误我们后来统称为「方向搞反」。它暴露出的是一件更根本的事:在产业里,一个词的含义取决于说话的人站在链条的哪个位置上。上游的销售、下游的采购、中间的贸易商,说出同一个品类词,要的是三份完全不同的名单。而这个位置信息,客户默认对方知道,从来不会主动交代。

这三类问题,本质上是同一件事:客户嘴里的词、工厂登记的词、行业内部的术语,是三套需要互相翻译的语言。翻译表的原料就在我们的数据库里,也在长期接触这个行业的人的经验里;缺的是把它教给 AI 的那一层。

这一层,是这半年里最不体面、最没有技术含量、却最有用的一部分工作。

四、一份「差不多对」的名单,比没有名单更伤人

第二道坎,是我们花了最长时间才学会重视的。

产品跑起来之后,有很长一段时间,团队的自我感觉是好的:客户提出需求,系统给出名单,页面漂亮,速度也过得去。

现在回头看,自我感觉好的原因很简单——我们自己不是找厂的人。内部试用的时候,提问的是做产品和写代码的同事,问法规整,条件清楚,一句话里该有的都有。系统在这类问题上表现优秀。而真实客户的问法千奇百怪:有人一次性把七八个条件塞进一句话,有人聊到第四轮才想起来补一句「哦对了,我只要能出口的」,有人上来就贴一串公司名问「这几家靠谱吗」。

直到我们开始逐条阅读真实发生的对话记录,才看见另一幅景象。

  • 客户一口气报了三类产品,最后的名单里只有第一类
  • 客户说「人数在八十到三百之间」,名单里出现了几千人的大厂
  • 客户说「把出口这个条件去掉」,系统回答「好的,已经为您去掉」,名单一家没变
  • 客户点名要两个城市,结果整个省的工厂都进来了

这里要说清楚一件事,否则很容易看岔:这些名单上的每一家都是真实存在、状态正常的工厂,数据本身没有出错。出错的是条件——客户说了三类,只递过去一类;客户划了一个区间,只递过去一个下限;客户点了两个城市,递过去的是一个省。库是准的,是我们问得不全。

而这类毛病最可怕的地方在于,它们从来不报错。系统没有崩溃,页面没有空白,名单一条不少地列在那里。不熟悉这个行业的人看不出任何问题;只有真正在找厂的人,扫两眼就知道不对——「你给我的这些,跟我要的不是一回事。」

在 B2B 的场景里,一份「差不多对」的名单,杀伤力远远大于一句「没找到」。

「没找到」的代价,是客户换个说法再试一次,损失几十秒钟。而一份看起来合理、实际上偏掉的名单,客户会拿去打电话。一天打下来,前十家全都不对路,他不会认为是条件没传对,他会认为这个工具不值得再打开第二次。我们卖的是效率,交付出去的却是一整天的浪费。

更难受的是,这类问题不会自己冒出来。它不像故障那样有明确的时间点和明确的现场,它安静地混在每天几百次正常的使用里面,等着被人发现。

而且客户很少会告诉你哪里不对。有人在反馈里只留下两个字:「不对」。有人一句话不说,连着换了六种问法,然后关掉页面再也没有回来。真正愿意花时间指出问题的客户是极少数,我们后来把这些人当作最珍贵的资源来对待。

我们没有找到聪明的办法。用到今天的,仍然是最笨的一种:每天把真实发生的对话逐条读完。

不是抽样,是全量。读的人还必须懂找厂这门生意——一份名单对不对,机器给不出答案,只有人能给。读完之后,把每一处「不对劲」写成一条待办,归类,排期,第二天再读新的。这件事情至今没有停过,也看不出能够停下来的迹象。

这个过程当然不高效,也很难向外人解释它为什么值得。但每一次让产品真正变好的改动,都来自这里,没有一次来自会议室里的讨论。

五、AI 最危险的时刻,是它想帮你

第三道坎,是四道里面最让我们后背发凉的一道。

编造从来不是从说谎开始的,是从「想把话说圆」开始的。

系统找到了十来家同时满足全部条件的工厂,但它判断这个数字对客户来说太少了,于是从别的地方补进来几家,凑成一份看起来体面的名单。客户问起某一家公司的产能——这类指标我们库里不存,不是遗漏,是我们只收录能核实到来源的字段,产能、产值、设备台数这类拿不出权威出处的数字,宁可空着——而 AI 为了把话说圆,自己编了一个填进去,还给它套上了一个像模像样的说法。客户要求再核实一遍,它回答「好的,正在为您核实」,然后什么也没有做,直接给出了原来的结论。

这些回答在语言上都无懈可击。语气诚恳,结构完整,读起来甚至比诚实的版本更让人放心。

想明白之后我们才意识到,问题出在更深的地方:这类系统被设计出来的目的,就是尽力帮上忙。「有求必应」是它的默认姿态,交白卷是它最想避免的结果。可是在找厂这个场景里,正确答案常常恰恰是「这项我们不记录」「同时满足您全部条件的厂就是不多」。让一个以帮忙为天职的东西学会在该闭嘴的时候闭嘴,比让它多懂一个行业难得多。

这件事的严重性,取决于客户拿这份东西去做什么。如果是写文案或者陪聊天,上面几件事顶多算瑕疵。但我们的客户会拿着这份名单去开发大客户,会拿着这个产能数字去判断要不要投入一整个季度的销售资源。一个没有出处的数字,是我们替他做的一个错误决定,而他并不知道自己被代替了。

更要命的是,编造会反过来污染那个干净的库。名单里只要有一家是补进来凑数的,另外十家——那十家明明是从 480 万条真实记录里筛出来、每一项都可核实的工厂——可信度会跟着一起归零。我们花很多年建立的东西,可以被一句体面话毁掉。

有一天,一位客户在反馈框里留下了一句话:「数据要真实,不能编。」

七个字,没有情绪,也没有客套。这句话后来被写进了产品原则的第一条。

现在我们守着几条不许越过的线:名单上的家数,只能是数据库里真实存在、去过重的数目,一家不多,凑数补进来的公司一家也不许进名单;没有出处的产能、产值、设备台数一律不写;系统没有做过的操作,不许说自己做过。

还有最难守的一条:搜不到就说搜不到,并且要说清楚这是我们没问对,不是这类工厂不存在。库里有 480 万家真实在产的工厂,一次查询返回零结果,几乎永远意味着我们没有听懂客户的话。把责任推给数据,是最省事、也最不诚实的一种说法。

守这几条线是要付出代价的,而且代价当场就能看见:如实说「同时满足这些条件的只有五家」,一部分客户会立刻离开,去找那个愿意给他一万两千家的地方。我们认了。那一万两千家是把品类总量当答案,而我们给的五家,每一家都经得起打电话核实。做工业品生意的人,最终会回到能核实的那一边。

六、不是做完就完了,得有人天天看着

第四道坎,是在功能都做完之后才显形的。

做一个软件功能,做完就是做完了。而一个每天都有人在用的 AI 系统,不是这样。

它依赖的东西会变。上游会调整、会收紧用量、会停掉一些原本好好的东西,而这些变化不会提前跟你商量。真正麻烦的从来不是它彻底罢工——彻底罢工反而容易发现,页面上一片空白,所有人立刻知道出事了。麻烦的是另一种情况:它悄悄退回到一个更笨的状态,继续工作,继续回答,句子通顺,名单齐整,只是问法又变粗了,好东西还在库里躺着没被取出来。

这种时候,不会有任何警报响起。你唯一能依靠的,还是有人在读真实的对话。

第二件事是成本。每一次对话背后都有实实在在的开销,而且大头往往不在最显眼的地方。对一家公司做一次深度解读,成本可能是一次普通问答的几十倍。做产品的时候不会想到这一层,等它每天要跑几千次,账本会替你想到。

第三件事是等待。一个懂行的老同事,不会在你问完之后沉默半分钟才开口。快和慢在这里不是体验上的修饰,它直接决定客户会不会有下一次提问。而为了让答案更准确,我们做的每一次核实都要花时间,客户的耐心却是有限的——这两件事至今仍在互相拉扯,没有一劳永逸的解法。

从「做一个功能」到「有人天天守着一个系统」,中间隔着的就是这半年。

七、半年下来,我们信什么

回到白板上那句「我要找做密封圈的厂」。

今天,天下工厂 AI 面对这句话时会先反问一句。不是抛给客户一张空白问卷,而是拿库里真实的行业分布做反问的素材:这类工厂主要集中在哪几个地方,您关注哪一片;这个品类的材质分几种,您的用途更接近哪一类。问完两句,再去 480 万家真实在产工厂里取那份名单。

这就是那位老销售会做的事情。我们花了半年,才让软件学会这两句反问。

如果这半年只留下一句话,那就是:难的从来不是库里有没有,是怎么问它。

数据是复利资产。480 万家工厂的识别、核验和更新做了很多年,它一天比一天厚,模型换几代也不会贬值。而把客户的一句话变成对这个库正确的问法,是一门手艺,需要天天打磨:

  • 行业的语言,只能靠长期接触这个行业慢慢积累
  • 条件的纪律,只能靠人一条一条读出来
  • 诚实是一条需要天天守的产品原则,不是一次性的技术选择
  • 可运营,意味着这个系统每天都需要有人看着它

这半年,我们补的全部是后面这一门手艺。

如果你正在为销售团队寻找工厂客户,欢迎来试一下我们这半年的成果;也欢迎把不对劲的地方直接写在反馈框里——上面提到的每一条改进,都是这么来的。

立即体验天下工厂 AI