扒完 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 源码里,有整整一套上下文压缩管线,名字一个比一个硬核:
microcompact、autocompact、context 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 最大的问题,是框不够清晰,还是上下文没管好?
欢迎留言拍砖,我们来聊聊。
夜雨聆风