乐于分享
好东西不私藏

扒完 Claude Code 源码,我悟了:Vibe Coding 的尽头,是工程师思维

扒完 Claude Code 源码,我悟了:Vibe Coding 的尽头,是工程师思维

扒完 Claude Code 源码,我悟了一件事

最近,Claude Code 的部分源码泄露了。

我连续扒了5小时,越看越后背发凉。

不是因为里面有什么秘密,而是因为:它把我们大多数人用 AI 的姿势,彻底照了个原形。


你以为在”跟 AI 聊天”

它其实在”跑一台精密机器”

先说一个你可能从没意识到的事实。

每次你跟 Claude Code 说话,在它的底层,你的输入会被无情地拆解成四层:

  • 系统提示(你是谁)
  • 用户上下文(当前项目状态)
  • 工具结果(刚才做了什么)
  • 历史记录(这一轮发生了什么)

不是随便聊,是结构化参数

你说”帮我改一下这个”,AI 看到的是一堆缺失字段的请求。

你说”当前问题是 X,期望结果是 Y,约束条件是 Z”,AI 看到的才是一份完整的任务单。

Vibe(氛围感、直觉感)不等于随意。流畅的体验,背后是一副坚硬的骨架。


它不是”问答机”

它是一台状态机

源码里的 Agent 循环,逻辑粗暴到令人发笑:

用户输入 → 调用工具 → 结果回填 → 继续循环。

就这么转,不停地转,每一圈都在逼近目标。

这意味着什么?

意味着不存在”完美的一句话 Prompt”。

很多人卡在这里:花两个小时精心设计一个”终极提示词”,发过去,结果不满意,然后沮丧地觉得”AI 还是不行”。

而真正会用 AI 的人,早就把任务拆成五步、十步,每步跑完验证一次,像调程序一样调模型。

先跑起来 → 再调整 → 再优化。

这不是将就,这是最符合 AI 引擎底层逻辑的工作方式


上下文是这个世界上最贵的资源之一

Claude Code 源码里,有整整一套上下文压缩管线,名字一个比一个硬核:

microcompactautocompactcontext collapse……

为什么要这么大费周章?

因为上下文窗口一旦塞满,AI 就会变蠢。不是比喻,是字面意思。它开始忘事,开始犯错,开始自相矛盾。

我见过太多人一个窗口聊到底,越聊越乱,最后骂 AI 不行。

其实不是 AI 不行,是上下文撑破了。

正确的用法是:

把聊出来的结论,及时固化成 Markdown 文档,每次开新窗口时带着它喂给 AI,而不是全靠 AI 自己记。

AI 没有长期记忆,但你有,你就是它最好的外挂。


90% 的翻车,不是 AI 的问题

是你给的”权限”太模糊

源码 Tool.ts 里,每个工具都有死磕的细节:权限检查、中断机制、结果体积上限。

为什么要这样设计?

因为不加边界,就会失控。

这个道理放到实际使用里,几乎是铁律:

你对 AI 说”帮我重构这个项目”——它可能动了你不该动的十个文件。

你对 AI 说”只改这个文件的这个函数,不要动其他地方”——它就只改那一处。

Vibe Coding 翻车的根本原因,九成九是因为我们给的权限太模糊,AI 改了不该改的东西。

边界越清晰,结果越可控。这不是在限制 AI,这是在解放自己。


最后一条,也是最反人性的一条

源码里有一条铁律,贯穿始终:

哪怕中途出错,也要保住消息链不断裂,让会话能继续。

优雅降级,比直接崩溃更重要。

我们写代码的时候懂这个道理,但用 AI 的时候全忘了。

项目跑不通,第一反应是”推倒重来”,让 AI 全部重写。

然后新的问题冒出来,再推倒,再重写,一个下午过去了,什么都没留下。

专业工程师的做法是:定位最小的断点,修那一处,保住已经跑通的盘子。

局部修复,不是全部重写。

这两个思路之间的差距,不是技术水平的差距,是思维方式的差距。


说到底

Claude Code 的源码,本质上是一面镜子。

它照出来的不是 AI 有多强,而是:

一个工具,设计得再精密,也需要使用它的人提供结构、边界和上下文。

Vibe Coding 的天花板,不取决于模型有多聪明。

它取决于你给 AI 画的那个”框”,有多清晰。

框越清晰,AI 越强大。

框越模糊,再好的模型也是一团浆糊。


你现在用 AI 最大的问题,是框不够清晰,还是上下文没管好?

欢迎留言拍砖,我们来聊聊。