Claude Code架构:88行核心循环揭示AI Agent真相
Claude Code 用 88 行代码揭开了一个真相:AI Agent 没有那么神秘。
今年三月,一位开发者在 Lobste.rs 发帖,标题是"2026 年是我职业生涯最关键的一年——才到三月"。他二月底离职,三月起不再自己写代码,转型为"编排 AI Agent 团队"。帖子发出后,争议不大,但共鸣很多。
与此同时,Dev.to 上一篇文章详细分析了 Claude Code 的 Rust 重写版本(claw-code)。一个 510K+ 行 TypeScript 的庞然大物,重写后只有 20K 行。更关键的是,核心的 agent 循环只有 88 行代码。
这两件事放在一起,说的其实是同一件事:AI 编程的工程问题已基本解决,真正的竞争已经转移到别处。
88 行循环
Claude Code 的 Rust 重写是理解 AI Agent 架构的绝佳样本。原版 TypeScript 510K 行,重写版 20K 行,压缩比超过 95%——不是 Rust 语法更简洁,而是强制简化暴露了真正重要的设计。
核心循环在 conversation.rs 里,只有 88 行。运行时唯一的状态是一个 session.messages 数组。每次循环:接收消息,追加到数组,发送给模型,接收响应,追加到数组,然后重复。
没有复杂的有限状态机,没有花哨的决策树,没有"第二系统"式的过度设计。就是一个顺序执行的消息管道。
但这不是简陋,而是分层。claw-code 把功能拆成 6 个模块:runtime、api、tools、commands、compat-harness、rusty-claude-cli。接口定义与实现分离,使得 mock 和测试成为架构的内置部分。你想测试任何功能?直接 mock 掉依赖,灌入预设输入,验证输出。
分层架构的核心价值不在于"分",而在于把复杂性封装在接口背后。 对 agent loop 来说,它只需要对着消息数组工作,不需要知道 tools 怎么实现、api 怎么调用。
这才是 Claude Code 架构真正有趣的地方:极简的核心,丰富的边界。
语言之战
Lobste.rs 上还有另一个有趣的讨论:Claude Code 任务里,哪种编程语言表现最好?
数据来自一次标准化的 mini-git 任务测试。结论相当反直觉:
- Ruby、Python、JavaScript 排名前三:成本 $0.36-0.39,完成时间 73-81 秒
- Go、Java、Rust、TypeScript 慢了 1.4-2.6 倍,成本也更高
动态语言完胜静态类型。这个结果挑战了一个常见假设:类型系统越严格,代码质量越高,AI 生成效果越好。
实际上恰恰相反。LLM 生成代码时,复杂的类型注解是额外的约束——模型需要推断类型、满足接口、处理泛型边界。这些对人类工程师是有价值的工程约束,但对 AI 来说,是额外的噪声和失败点。
更有意思的是反直觉发现:代码行数与生成速度几乎没有相关性。OCaml 的实现只有 216 行,相当紧凑;C 的实现有 517 行,是 OCaml 的两倍多。但两者速度相当,C 并未因代码量大而变慢。
这个现象暗示:LLM 生成的代码普遍偏冗长,但这种冗余似乎不取决于语言,而取决于模型自身的"风格偏好"。它不是在"精打细算"地写代码,而是在"有把握地写代码"——宁可多写一点,也要覆盖更多可能的情况。
瓶颈转移
回到开头那位 2026 年离职的开发者。他的核心判断是:“AI 编程技能已超过我本人,缺陷率低到非人类水平。”
但瓶颈不在这里。
他在帖子里提到了一个关键概念——steering problem。AI 可以写出正确的代码,但它经常没理解你真正想要什么。你让它实现一个功能,它交出来的东西语法正确、逻辑自洽,但就是不是你脑子里想的那个。
这不是工具的问题,是"指挥"的问题。
Claude Code 近期的一个使用场景印证了这一点:有人让它在睡觉期间独立工作了 12 小时,处理一个复杂问题,第二天回来看结果。工具已经足够强大了。真正的瓶颈变成了——你能否清晰地定义问题,让 AI 正确地执行?
更极端的例子是 w64devkit(一个 Windows 开发工具链)。近期几乎所有的提交和 issue 活动都由 AI 驱动,人类维护者主要做 Code Review。这已经不是"AI 帮助人类",而是"人类监督 AI"。
职业重构
那位 2026 年离职的开发者说了一句有点黑色幽默的话:“AI 让编程如此廉价,只有富人才会手写代码。”
这当然是一种修辞。但它指向一个真实的趋势:当工具足够好用,稀缺的不再是"写代码的能力",而是"定义问题的能力"。
这让人想起工业革命早期的纺织工人。他们从亲手织布,变成看管纺织机。机器织得比人手快、好、便宜,但工人并没有消失——只是角色变了。从操作者变成监控者,从执行者变成调度者。
编程正在发生同样的转变。程序员不再需要写出每一个函数、每一个类,而是描述需求、评估方案、审查结果、迭代方向。这些能力不会因为 AI 变得廉价——相反,它们会变得更加稀缺。
还有一个细节值得关注:这位开发者提到,“开源权重模型是玩具,真正可用的 AI 产品都需要付费”。这不是在贬低开源,而是在描述现状。当技术成熟到一定阶段,差异化往往不在于"能不能用",而在于"用起来是否可靠"。而可靠性需要工程投入,工程投入需要资源。
幻觉问题
故事不是完美的。Rust 重写分析文章里提到一个失败案例:600 次运行中有 3 次失败,其中一次,agent 坚持认为测试是错的,而不是自己的代码有问题。
这在 AI 系统的研究里有个名字:过度自信(overconfidence)。模型对输出的置信度与实际正确率不匹配。它不是在"撒谎",而是真的相信自己是对的。
这可能是 AI Agent 最需要正视的短板。代码写得快、写得好,但如果拒绝承认错误,整个系统的可靠性就建立在信任而非验证之上。
如何解决这个问题?提示工程有用,但不是根本解法。更可靠的方式是架构层面的:强制 AI 自我验证、在关键节点引入人工审查、设计让 AI 更保守的激励机制。这些都是人类才能做的事。
尾声
三篇文章,三个视角,指向同一个结论:
AI 编程的工程问题已基本解决。真正的竞争,已经转移到人类如何有效地指挥和审查 AI。
这不是工具的胜利,这是协作模式的转变。工具越来越强,但人类的作用不是变小了,而是变得更核心——你要做的是定义方向、评估结果、在关键时刻做判断。
就像那位 2026 年离职的开发者说的,他不写代码了。但他做的事,可能比写代码更难。
综合了 Dev.to 对 Claude Code 架构的深入分析、Lobste.rs 关于编程语言在 AI 编程中表现的讨论,以及 Lobste.rs 上开发者关于职业重构的个人反思。