项目技术栈都挑好了,代码也写了一半,结果视频平台开始给我推一个看起来更适合的东西。
这不是我没问 AI,也不是我没调研。我确实问了,还问了不止一次。结果 AI 给我的候选不是冷门,就是像在念某些项目的 README。直到推荐算法把东西怼到我脸上,我才发现:哦,原来这个领域还有另一条路线。
感觉就像你都把地基挖好了,旁边路过一个人说:你怎么不用旁边那条路,大家都从那边进。
具体发生了什么
一个例子是 C++ 跨平台。
我一开始想当然就是 Qt。跨平台、C++、桌面应用,这几个词放一起,谁都会先想到 Qt。于是我顺着 Qt、QML 这俩看了一圈,十分满意。
结果过了一段时间,视频平台开始疯狂给我推 Dear ImGui。
这玩意儿压根不是传统桌面 GUI 那条路。它是 immediate mode GUI,更适合工具 UI、编辑器 UI、调试 UI、渲染管线 UI。Dear ImGui 自己也说得很清楚:它是 C++ 的轻量 GUI,强调 fast、portable、renderer agnostic、self-contained,而且主要是给程序员快速做工具和可视化调试界面的。
这就导致一个很抽象的问题:如果你问的是”C++ 跨平台 GUI 框架”,AI 很容易把搜索空间锁死在 Qt-like 框架里。它不是不知道 ImGui,而是它没有意识到你真正需要的可能不是”传统桌面 GUI”,而是”给项目做工具型 UI”。
另一个例子是 React UI。
如果拿 Vuetify、Element Plus 举例,AI 很容易去找 MUI、Ant Design、Chakra、Mantine、PrimeReact 这类传统组件库。这个方向不能说错,但它可能漏掉 shadcn/ui。
而 shadcn/ui 最要命的地方就在于它不是传统意义上的 component library。它官方文档里直接说:这不是组件库,而是你构建自己组件库的方式。组件代码会进你的项目,你可以直接改。
所以如果 AI 的脑子里是”找 Vuetify 的 React 平替”,它就会往传统组件库走;但如果它先展开”React UI 生态有哪些流派”,shadcn/ui 这种 copy-paste/open code 路线就应该出现。
问题就在这里:AI 很会回答,但不一定会先扩搜索空间。
B站推荐为什么反而能补刀
B站当然不比 AI 更懂技术。但推荐系统擅长的是另一件事:发现相邻圈层正在看什么。
你看 Qt、C++、桌面开发,它不需要理解你到底要做什么产品,只要发现一群相似用户还在看 ImGui、Slint、Tauri、Avalonia、raylib GUI,它就能把这些推给你。
AI 默认不是这么工作的。
AI 更像:
你给需求,我在已有概念里匹配答案。
推荐系统更像:
你看了这些东西,我看看相似的人还看什么。
前者适合评估,后者适合发现。
这就是为什么有时候你问 AI 半天,不如刷到一个视频标题有用——不是视频质量多高,而是它给了你一个你根本不知道该搜的关键词。
更深层的问题:LLM 的概率天性
这其实不只是”AI 搜索策略”的问题,而是 LLM 本身的架构限制。
LLM 生成回答的方式,本质上是从概率分布里采样:给定你的问题”C++ 跨平台 GUI”,模型会给”Qt”分配很高的概率,给”wxWidgets”中等的概率,给”Dear ImGui”一个虽非零但极低的概率——因为在训练数据里,ImGui 和”跨平台 GUI 框架”这个 query 的共现频率太低了。它更常和”immediate mode”、”调试工具”、”渲染管线”这些词出现在一起。
问题出在这个概率分布是生成式的,不是检索式的。
搜索引擎可以把所有网页都索引起来,你搜”GUI framework”它把含这个词的都列出来,有没有漏取决于倒排索引。但 LLM 不是——它在生成 token 时,每一步都是在当前上下文里选概率最高的路径。如果上下文里没有”工具 UI”、”immediate mode”这些词,那模型分配给那条路的概率质量就接近零。它不会绕一步想:”等一下,是不是还有一类东西我不太确定?我先去查查。”
这不是它能做到的。它不是一个在”检索 vs 不检索”之间做选择的系统,它只是一个在不断猜下一个词是什么的系统。哪怕加了联网搜索,搜索词也是由它自己生成的,这仍然经过同一个概率瓶颈。如果你不知道某个领域的存在,你就不会去搜它;你不知道该搜它,LLM 就不会帮你生成那个搜索词。
所以这个盲区不是”搜得不够努力”,而是架构层面的。模型训练完之后,它的先验分布就固定了。一个领域如果在训练数据里和你的提问方式关联不强,模型就不会自发达出通往那个领域的 token 序列。
这也是为什么 Deep Research 这类多步搜索工具能缓解但不能根除这个问题——它可以展开多组搜索词,但如果展开的方向还是落在概率高的那几条路里,冷门方向依然不会出现。
真正的问题不是搜索,而是搜索前
ChatGPT Search 会根据问题改写查询、发出多组更具体的搜索词。Deep Research 也已经是多步骤互联网研究了。但这些都没解决一个问题:
“它有没有联网”从来不是核心问题。问题是它在联网之前,知不知道:
- 用户其实是外行进入陌生领域。
- 用户给出的例子只是启发,不是边界。
- 任务目标不是快速推荐几个工具,而是先发现可能有哪些路线。
- 文档写得好不等于东西适合。
- 社区正在热的东西,可能不在传统关键词里。
这一步如果错了,后面搜得再努力,也可能只是把错误方向查得更完整。
另一个常见案例是 Traefik。AI 很容易被”现代、Docker-native、自动发现”这套叙事打动,好几个模型一起推荐,推荐得像吃了软文。但真迁移的时候,文档、边界、配置复杂度,那又是另一回事。
所以 AI 搜索不该只做 answer retrieval,它应该先做 search space expansion。不是先找答案,而是先找”可能有哪些答案空间”。
用户不应该先学会怎么问
有人可能会说,那你 prompt 写得不够专业。这话只说对了一半。
如果我一开始就知道要说”请先做技术路线地图、关键词扩展、相邻生态发现、社区热度扫描、反证检索”,那当然结果会好很多。但问题是,我都不了解这个领域了,我怎么会知道这些词?
尤其是技术选型这种场景,用户最大的问题不是”比较 A 和 B”,而是”我根本不知道还有 C、D、E”。一个好工具不应该默认用户已经知道怎么问。
所以这不是 prompt 水平问题,是产品模式问题。
AI 太喜欢给一个完整答案了。它默认会给你五个候选项、一个表格、一个结论,看着很舒服。但技术选型最怕的不是表格不整齐,而是漏掉关键类别。一个漂亮但召回不足的答案,其实比没有答案更危险——它让你以为自己调研过了。
我现在想要的工具模式
我希望 AI 搜索工具有一个很明确的模式,类似”技术选型发现模式”。
进入这个模式后,不要急着推荐,先展开地图。
比如我问 C++ 跨平台 UI,它应该先把路线拆开:
- 传统桌面 GUI:Qt Widgets、wxWidgets、GTKmm。
- 声明式 UI:Qt Quick/QML、Slint。
- immediate mode GUI:Dear ImGui、egui 这类思路。
- WebView 壳:Tauri、Electron、Wails。
- 游戏/编辑器工具链 UI:ImGui、raylib 生态。
- 平台原生 UI:WinUI、GTK、ArkUI 这种。
然后再问我:你做的是给普通用户的桌面软件,还是给开发者/创作者用的工具?你更怕 UI 丑,还是更怕工程复杂?你愿不愿意接受新范式?
React UI 也一样。别一上来就给 MUI、Ant Design、Chakra。先问清楚我到底要哪种东西:
- 传统组件库。
- Headless primitives。
- copy-paste/open code。
- Tailwind-first 模板。
- 后台管理系统。
- 动效/视觉组件。
- 自己沉淀 design system。
这样 shadcn/ui 才不会莫名其妙漏掉。
一个代码工具用的 prompt
后来我干脆把这个整理成了一个扩展 prompt,核心就是强制 AI 从”推荐模式”切到”发现模式”。
技术选型发现模式 prompt
1 | 我现在要做一个不熟悉领域的技术选型。不要直接推荐工具。 |
它不算神奇,但能防一个很常见的问题:AI 一看到你举例,就把例子当边界。
你说 Vuetify、Element Plus,它就找传统组件库。你说 Qt,它就找 Qt-like。你说 Nginx 替代,它就开始背 Traefik 的产品卖点。
它需要被强行提醒:例子只是线索,不是围栏。
又绕回 Agent 了
这件事最后还是绕回我之前那篇”推荐你使用 Agent”的想法。
现在 AI 工具对程序员和专业用户已经很好用了。你知道怎么拆问题、怎么写约束、怎么要求反证、知道什么时候该去 GitHub issue、npm trends、State of React、Reddit、B站和 YouTube 交叉验证,那 AI 会非常强。
但普通人——甚至只是”进入陌生技术领域的程序员”——不一定知道这些步骤。
所以真正缺的不是更聪明的模型,而是一个够好的产品经理,把这些流程藏进工具里。用户不应该先知道”搜索空间扩展”这个词,才能得到搜索空间扩展。不应该先知道”反证检索”这个词,工具才会帮他查坑。不应该先知道 shadcn/ui、Dear ImGui 这种关键词,AI 才能告诉他这些路线存在。
一个好的 AI 搜索工具应该能识别:你现在不是在问答案,你是在摸一个陌生领域的边。然后它应该先帮你把边界照亮,而不是在你手电筒照到的那一小块地方认真画地图。
总结一下
AI 搜索最大的问题,不是不会搜,而是太急着答。
技术选型里,答案质量不只取决于”推荐项对不对”,更取决于”有没有漏掉关键路线”。B站和 YouTube 推荐有时候能补上这个缺口,是因为它们擅长发现相邻圈层的热词——它们不管答案质量,先让你知道”还有这东西”。
而 LLM 的概率天性决定了它很难自发走到低概率的路径上去。这个盲区不是加个联网搜索就能解决的,它写在模型最基本的生成逻辑里。
所以最后就变成两件事同时做:
- 用 AI 做已有路线的评估和比较。
- 用推荐系统、社区、同行去发现你不知道你不知道的东西。
AI 不该替代发现入口,它应该升级成发现入口。
但在那之前,还是得靠我们自己多问一句:
你是不是漏掉了另一类答案?