本文基于近期几场线上、线下 AI 分享后的个人记录整理,插图为 AI 生成。

前言

最近听了几场分享,线上线下都有。听完之后,我越来越觉得:多听别人真实踩过的坑,才会慢慢推翻自己原来那些“自以为是”的判断

说是自以为是,其实也不完全是。AI 这个方向的技术变化和信息变化太快了,很多之前看起来合理的判断,放到新的实践里已经不成立。现在我会刻意记录这种变化:哪些想法被推翻了,哪些判断变得更坚定了,以及这些变化背后的原因。

这篇文章就是一次这样的记录。

RAG 还有做的必要吗?

我之前看到过 Claude Code 相关的讨论:早期版本尝试过 RAG、本地向量库等方式,后来发现由模型驱动的 grepglob、文件读取等 agentic search 方式,在代码场景里效果更好,于是放弃了传统 RAG 路线。

这个说法的出处可以参考 Boris Cherny 在 Latent Space 访谈《Claude Code: Anthropic’s Agent in Your Terminal》中的表述。他提到团队最终采用 agentic search,原因之一是它在 Claude Code 的场景里表现更好,同时也规避了索引过期、安全和隐私等复杂问题。

当时我一度被这个结论“带偏”了。我开始倾向于认为:既然朴素的命令行搜索已经够好,那是不是很多场景也没必要做 RAG、向量化搜索或者复杂检索系统了?

最近听到一些真实经验和测试之后,我意识到:这是我把代码场景的经验,错误外推到了更大的真实世界。

Claude Code 的场景至少有两个特殊性:

  1. 它处理的是代码
  2. 它主要面对英文和稳定的符号体系

代码场景:关键词天然可靠

在代码里,方法名、API 名、变量名、业务字段往往有规律可循。语言关键字是有限的,业务字段也相对稳定。只要扫到关键字段,相关代码就很容易被精确锁定。

简单说,代码场景有两个优势:

  • 命名趋同:同一个概念通常会反复出现在函数名、变量名、文件名里。
  • 召回优先:写代码时宁可多看一点,也不能漏掉一个相关修改点。

所以在代码场景下,grep / rg 这种精确或半模糊搜索,确实非常高效。它没有排序、没有语义相关性,也未必是问题。因为开发者本来就需要逐个确认命中的地方,避免遗漏。

但如果把这个经验搬到生活场景或知识库搜索里,问题就来了。

如果你是 Google,你不能把所有包含关键词的结果不排序地丢给用户;如果你做的是企业知识库,也不能让用户自己在一堆命中结果里逐条验证。真实世界的检索,相关性排序本身就是产品价值的一部分。

中文场景:表达天然发散

英文技术文本里,一个名词往往比较稳定。固定场景通常就用固定单词,变体没有那么多。

但中文真实表达完全不一样。尤其在生活、业务、客服、会议纪要这些场景里,人会使用大量口语化、上下文省略和同义替换。

比如同一件事,可能会被说成:

  • “我去买个菜”
  • “顺路补点吃的”
  • “晚上家里没东西了”
  • “下班去超市一趟”

它们可能指向同一个意图,但精确检索很容易匹配不上。如果分词再不合理,搜索条件还会被拆得更乱。

所以,代码里的关键词命中,不等于中文生活场景里的意图命中

不要把局部成功当成通用规律

回到标题问题:RAG 还有必要做吗?

我的答案是:当然有必要。但更准确地说,我们不应该只讨论 RAG,而应该讨论“检索能力”。

向量化搜索也好,关键词搜索也好,混合搜索也好,甚至 agentic search 也好,本质都是为了让系统更快、更准地找到上下文。Claude Code 不是在否定所有 RAG,它只是证明了:在 Coding 工具这个特殊场景里,传统 RAG 未必是最优解。

真正值得警惕的是我们自己的偷懒:

看到一个成功案例,就把它简化成一句口号,再拿去解释所有问题。

这才是偏见的来源。

如果再往前想一步:是否可以完全交给 AI 自己建立索引、理解意图、拆分查询、选择工具、反复检索?也许可以。未来我们需要的可能不是一个单纯的向量库,而是一个更接近 AI agent 的索引引擎。

向量可能是其中一种靠谱方案,但不会是唯一答案。

agentic-search-vs-rag

风控是人的价值

我之前讨论过一个问题:AI 越来越强之后,人的价值在哪里?

最近的交流里,不止一次有人提到一个词:背锅

是的,当 AI 的工作出现问题时,领导最终还是要找一个人负责。它很难找一个“不存在的 AI”负责,也很难真的让模型公司替你的业务结果负责。最后责任还是会落到人身上。

从表面看,人的价值似乎变成了“背锅”。但我更愿意换一个角度看:

如果背锅是一种价值,那么提前找锅,就是拉开价值差距的机会。

这也是有经验的程序员和没经验的程序员之间最大的区别之一。同样的 AI、同样的模型、同样的环境,有经验的人会主动补充更多场景,也更容易预判可能出问题的地方。

比如代码已经写好了,有经验的人可能会继续问:

  • 并发场景下会不会有问题?
  • 数据量变大后会不会超时?
  • 失败后有没有重试和回滚?
  • 权限、边界值、异常输入有没有覆盖?
  • 这个方案后续维护成本会不会变高?

普通开发者可能看到功能跑通就结束了。但如果你不主动告诉 AI 使用场景,不明确要求它考虑并发、异常和边界,它通常不会自然地把所有防护都补齐。

所以我越来越觉得,未来人的重要价值之一就是:预判和风控

没经历过手写代码的人,可以直接上岗吗?

讨论“背锅”时,有朋友问了一个问题:如果以后很多人没有经历过从错误里摸爬滚打、手动排查 Bug、追底层原理的过程,他们还能直接上岗吗?

我的回答是:迟早要上岗,也一定会有人让他们上岗。

只不过他们接触工作的方式会完全不一样。过去新人主要和代码交互,现在新人可能更多是和 AI 交互。过去要学的是如何设计系统、如何写代码;未来还要学的是如何把目标、约束、风险和验收标准讲清楚。

这当然有问题。没有经历过底层细节的人,风险感会弱,判断力也需要时间培养。但这也是必然发生的过程。我们不能因为路径变化,就假设新人一定不行。

真正应该锻炼的仍然是:学习能力

AI 时代工具越来越多、变化越来越快。谁能在新事物出现后,用最快速度理解它、掌握它,并合理运用到工作中提效,谁就更有机会直接上岗。

当然,这个能力很难通过面试看出来。

human-risk-control

个人上下文的价值

人的脑容量是有限的。越往后越会发现,自己越来越容易忘记东西。新东西出现得越多,旧东西被自然遗忘的速度也越快。

最近听到的分享里,很多同学已经开始构建自己的上下文。最简单的方式是每天写日记,也有人把工作记录、会议纪要、思考过程、消费记录、读书笔记都沉淀下来。

它的价值不只是“方便回忆”,而是让 AI 能帮你重新调用过去的自己。

比如:

  • 总结本周工作
  • 复盘最近的问题
  • 整理最近的开销
  • 汇总过去一年的对外演讲
  • 回看最近十年犯过的错误,找出重复模式
  • 对比过去类似投资或决策,判断这次是否应该延续同样策略

在 AI 出现之前,很多人就在说“第二大脑”。但那时的第二大脑大多只有存储,没有真正好用的读取。因为搜索太麻烦,很少有人会主动翻自己过去的记录。

现在不一样了。

当 AI 拥有了你的一部分长期记忆,它可能更像你。说得极端一点,它甚至可能比某个时刻的你更了解过去的你。

所以现在开始积累个人上下文,我觉得是一个很值得做的选择。未来这些数据也许会成为一种更长期的个人资产。

AI 工具的主观能动性

一个受欢迎的 AI 工具需要具备什么条件?

如果是以前,我的回答会很简单:能帮我解决问题。

但现在不够了。因为 AI 已经足够强,一个成熟智能体能完成的任务越来越多。工具之间继续内卷“质量”当然重要,但还有一个更关键的差异点:主观能动性

领导喜欢什么样的人?积极主动,有 Ownership。

现在 AI 工具某种程度上已经像你的下属。什么样的 AI 工具更容易出彩?我觉得也是主动。

如果一个工具只会听你指挥,你不说它不做,那它仍然只是工具。你说什么,它做什么;问题解决完,它的使命就结束了。

但如果它像员工一样,今天完成任务,明天早上自己检查,发现新问题后主动汇报,那体验就完全不一样。

所以反过来看,AI 工具越能向“可靠同事”靠近,越容易被人长期使用。不是因为它拟人化,而是因为它开始承担了持续推进和主动发现问题的角色。

整体快,才是真的快

最近很多公司都在做 AI 改革,希望把 AI 融入工作流程。最先提速的一定是研发,因为研发离 AI 最近,也最容易把 AI 用起来。

但问题是:研发提速之后,实际整体产出提升了多少?

我听到的一些结论是:确实快了,但没有想象中那么快。

原本大家以为,一个月的代码现在一周写完,效率至少应该提升 3 到 4 倍。但实际落地后,可能只有 1.5 倍。原因很简单:研发快了,不代表流程快了。

以前有人说,写代码只是产品交付里相对简单的一部分。过去很多研发会不服,毕竟代码都是自己辛辛苦苦写出来的。但现在 AI 把编码速度拉起来之后,这件事反而更清楚了:

  • 需求还是要讨论
  • 设计还是要确认
  • 测试不一定能自动化
  • 发布仍然需要审核
  • 跨部门流程仍然很慢
  • 业务决策仍然需要人拍板

除了研发之外的一切如果都没有快,单点提速就很容易变成功能堆砌和 Token 浪费。

所以 AI 时代下,任何部门都可能成为效率短板。只有把 AI 合理融入整个产品生命周期,整体效率才会真正提升。

whole-flow-speed

总结

除了上面这些思考,我最近也调整了自己使用 AI 的方式。

以前常见的做法是:让 AI 出方案,然后人点 yes。最后如果落地有问题,再让它改。久而久之,人反而容易丧失自己的思考能力。

现在我更倾向于先在脑子里构思一个方案,再让 AI 给方案。然后我会故意引入另一个假设:

“小王提出了另一个方案,是这样的……你来对比一下。”

让 AI 做取舍、调研和反驳。

我发现,对比最容易暴露问题

  1. 我自己方案里的漏洞,AI 往往能指出来。
  2. AI 方案里的漏洞,我也能发现,尤其是那些依赖真实上下文的部分。

这种方式让我从 AI 里学到不少,尤其是在全局考虑和扩展性上,往往能得到更好的方案。同时,它也能提醒我:别把思考完全外包给 AI。

AI 会越来越强,但人的判断、上下文、风控和主动学习能力,仍然会决定最后能走多远。