为什么Claude的代码能力会这么强?
先说一个数据,感受一下这个问题的分量:截至 2026 年 5 月,Anthropic 合并进代码库的代码中超过 80% 是 Claude 写的。 不是辅助补全,不是生成模板,是从需求到测试到部署,Claude 自己写完、自己验证、通过代码审查后合入主分支。而在 Claude Code 发布前,这个数字是个位数。
Anthropic 工程师人均每天合入的代码量是 2024 年的 8 倍。有一个工程师让 Claude 修了 800 多个 bug,把一个 API 错误类别降低了 1000 倍——他自己估算,这个活儿如果是人类干,需要四年。
这不是「AI 辅助编程」,这是「AI 主力编程,人类监督」。
那 Claude 到底凭什么?
一、模型层面:三层「不可见」的训练壁垒
- RLAIF:把「什么是好代码」内化成了本能
绝大多数大模型的代码能力训练路径是 RLHF——人类标注员给模型的输出打分,然后强化学习往高分方向优化。问题在于:人类标注员写的代码水平参差不齐,标注的质量天花板就是标注员自己的水平。 优秀工程师不会去干标注员的活儿,所以 RLHF 训练出来的代码能力,上限其实是「中等偏上程序员」。
Anthropic 走了一条不同的路:RLAIF(AI 反馈强化学习)。
流程是这样的:模型生成代码 → 另一个 Claude 实例(而不是人类)依据一套明确的「宪法」原则来评判这段代码哪里好、哪里不好 → 再生成改进版本 → 用这对「差版本 vs 好版本」作为训练数据,强化学习优化模型。
这套做法的威力在于三个「碾压级」优势:
规模碾压:AI 每天能生成百万级偏好对比,人类标注一周几千条就到头了
一致性碾压:同一个模型用同一套原则评判所有输出,不存在标注员之间的分歧、文化差异、疲劳波动
可审计性碾压:你可以回溯为什么某段代码被判定为好代码——因为宪法里写了,比如「代码应该处理错误边界」「函数应该单一职责」
更关键的是,Constitutional AI 的训练数据不是「人类觉得好的代码」,而是「AI 根据工程原则判定为好的代码」。这套原则在 2026 年 1 月从 2700 字的规则列表升级到了 23000 字的推理型宪法——不是「不要做 X」,而是「为什么 X 是不好的,在什么情况下这个原则适用,什么情况下可以例外」。模型学会的不只是遵守规则,而是理解规则背后的工程逻辑。
- 跨领域技能迁移:物理 + 法律 + 金融 → 代码
Anthropic 技术长 Rahul Patil 在 2026 年 4 月的一次播客中首次公开解释了 Claude 在 2025 年底出现的那次「所有人都感觉到的」能力跃升。
核心机制是跨领域技能迁移:Anthropic 让 Claude 分别在物理第一性原理、计算机科学问题解决、法律推理、金融分析等多个截然不同的专业领域上深度训练。单独看,每个领域的训练只是在教模型那个领域的知识。但当这些训练累积到某个临界点时,不同领域的思考方法会互相渗透:
物理训练 → 教会模型从第一性原理拆解问题(「这个 bug 的根因是什么?不要修症状」)
法律训练 → 教会模型在不完整信息下做推理(「这段代码只给了部分上下文,我该怎么推断完整意图?」)
金融训练 → 强化了处理不确定性和风险评估的能力(「这个重构有多大风险?要不要先跑回归测试?」)
CS 训练 → 提供代码实现的「肌肉记忆」
当 Claude 面对一个代码问题时,它不是用单一领域的方法论去硬解,而是用物理思维拆结构、用法律思维审边界、用金融思维估风险、用 CS 思维写实现。这种复合能力,纯代码训练的模型是拿不到的。
- 从「生成代码」到「审查代码」的能力拉伸
绝大多数模型被训练成「尽量生成能通过测试的代码」。Claude 被额外训练成了「能审查别人代码的代码审查员」。Opus 4.6 在代码审查和 bug 定位上做了专门的强化训练,Sonnet 4.6 被形容为「擅长在大代码库中搜索和修复复杂 bug」。GitHub、Cursor、Cognition、Bolt 等合作伙伴都公开发声说新版 Claude 在代码审查任务上明显更强。
这个能力闭环的意义在于:Claude 能审查自己生成的代码。 它写完后不靠人类来检查,自己跑一遍审查逻辑,发现风格不一致、性能隐患、安全漏洞,然后自己改。这比「生成→测试→修改」多了一个「审查」层,大幅提升了一次交付的质量。
二、工程层面:被严重低估的 Harness Engineering
2026 年 3 月 31 日发生了一件轰动 AI 社区的事:Anthropic 在 npm 打包 Claude Code 时手抖把 .map 文件一起上传了,51 万行核心源码全网裸奔。一周 17.5 万 star。
所有人抢着啃源码,想搞明白一个问题:为什么 Anthropic 的编程 Agent 就是比别家的好用?之前大家都猜是「模型更强」。但啃完 51 万行代码后,结论反过来了——
不是模型更强,是驾驭模型的「缰绳系统」更强。
源码里有一句注释直击本质:「We don’t need a smarter model. We need a better harness.」 ——我们不需要更聪明的模型,我们需要更好的缰绳。
这套 Harness Engineering 有几个关键设计:
- Tool-Use Loop:比 ReAct 更高效的执行范式
业界主流的 Agent 执行范式是 ReAct:Thought(思考)→ Action(动作)→ Observation(观察)→ 循环。这套范式有两个先天缺陷:每轮都要输出 Thought 文本占用大量 token;需要解析模型输出区分 Thought 和 Action,容易格式出错。
Claude Code 做了一个大胆的简化:直接把 Thought 砍掉。 因为 Claude Opus 支持 Extended Thinking——模型可以在内部完成深度推理,这段推理过程不占用应用层上下文,也不需要应用层解析。模型直接返回两种结果:tool_use(调用工具,执行后继续循环)或 end_turn(完成)。
对比一下:ReAct 模式下模型每次行动都要公开写出「我想我应该先看看这个文件,因为…」——这些字占 token、占上下文空间、而且对执行没有实质帮助。Tool-Use Loop 把这部分推理放在模型内部,应用层只关心「下一步做什么」。
- 双层循环 + 10 种终止条件 + 7 种恢复路径
Claude Code 的 Agent Loop 不是简单的 while(true),而是一个精心设计的两层状态机:
外层 QueryEngine:管会话级——多轮状态持久化、SDK 协议适配、用量统计、会话恢复
内层 queryLoop:管单轮执行——API 调用、工具执行、错误恢复
两层之间通过 AsyncGenerator 连接。这个设计带来了三个好处:背压控制(调用方按需消费,不会被消息洪水淹没)、中断传播(取消操作自然传播到所有子模块)、流式组合(子 Agent 的流可以直接嵌套在父 Agent 中)。
更重要的是,它内置了 10 种终止条件和 7 种恢复路径——不是简单的「跑完就停,出错就报」。上下文满了自动压缩重试、 token 预算没用完自动注入 nudge 消息让模型继续、连续失败 3 次自动熔断(代码注释里记录了一个真实案例:曾经有 1279 个会话出现了 50+ 次连续失败,每天浪费 25 万次 API 调用——所以才加了断路器)。
- 五级上下文压缩:从轻到重的梯度策略
每次 API 调用前,消息要经过五级压缩管线,遵循「能轻则轻,逐步加码」的原则:
applyToolResultBudget:截断过长输出(零信息损失)
snipCompact:片段级轻量裁剪(零信息损失)
microCompact:核心优化——优先清理旧的 Read/Bash/Grep 等高频工具输出,同时通过缓存编辑的方式保住前缀缓存命中率
contextCollapse:合并重复对话(少量信息损失)
autoCompact:最后手段,调用 LLM 全量摘要(信息损失最大、成本最高)
大部分场景前三层就够,极端情况才触发昂贵的全量摘要。这套设计在上下文长度、缓存复用、信息保留三者之间找到了工程上的最优解。
- Plan Mode:先探索再执行的两阶段工作流
Claude Code 允许模型自主判断任务复杂度,对复杂任务自动进入 Plan Mode。进入后权限降为只读(只能读文件、搜索代码库,不能修改代码或执行命令),探索完成后生成计划文件,需要人类审批后才能切回执行模式。
这个设计解决了一个核心问题:模型一上来就写代码,往往写错了方向。 先只读探索、生成计划、人类确认、再执行——出错率大幅下降。
三、生态层面:七层可编程接口
Claude Code 不是一个聊天窗口,而是一个七层可编程系统:
CLAUDE.md:项目级持久记忆,告诉 Claude 你的架构决策、编码规范、禁止模式
SKILL.md:任务级指令,写测试用哪种断言库、代码审查查哪些安全项
Hooks:确定性自动化(提交前 lint、写入后格式化)
MCP 服务器:连接数据库、API、监控面板
Agent Teams:子 Agent 并行处理独立子任务
Slash Commands:高频操作一键触发
Plan Mode:复杂任务先规划后执行
这套体系的意义在于:你不需要 fork Claude Code 或者写 wrapper 脚本来定制它的行为。 你写一个 CLAUDE.md,它就按你团队的规范干活;写一个 SKILL.md,它就按你的测试标准写测试。每多一层定制,多一层质量提升——这个复利效应非常恐怖。
四、达到这个水平,难度到底在哪?
难度一:模型训练的数据飞轮
RLAIF 强的前提是你得先有一个足够好的评判模型。如果评判模型本身代码能力不行,它评出来的「好代码」就是垃圾,垃圾进垃圾出。Anthropic 是用 Claude 来训练 Claude——用上一代 Claude 评判新一代的输出,形成自我强化的数据飞轮。但如果你没有第一代强模型的起步势能,这个飞轮根本转不起来。
难度二:跨领域训练的隐性成本
让模型同时在物理、法律、金融、CS 上深度训练,不是「多买点数据就行」。跨领域技能迁移需要一个临界训练量——训练量不够时各领域相互干扰,训练量够了才产生正迁移。这意味着前期大量投入看起来「跟代码无关」的训练资源,ROI 曲线是先平后陡。没有长期主义的公司扛不住这个前期投入。
难度三:51 万行工程代码的搭建
Claude Code 那 51 万行代码不是大模型生成的——是 Anthropic 的工程师一行一行写出来的,专门为了把 LLM 这匹「野马」驯化成「耕牛」。双层循环的状态机、五级压缩策略、Plan Mode 的权限降级、Token Budget 的递减收益检测……每一个设计背后都是踩过坑后填上的。这不是把模型接上一个 while True 循环就能复制的。
难度四:自我迭代的文化
Anthropic 文化中的一个核心原则是用 Claude 来改进 Claude。产品负责人 Alex Albert 在访谈中说:「我们自己是 Claude 最苛刻的用户。」Anthropic 工程师用 Claude Code 开发 Claude Code,用 Claude 审查 Claude 的训练数据,用 Claude 分析 Claude 的失败案例。这是一个「自己吃自己狗粮吃到极致」的闭环,外部竞争者很难在「理解模型弱点」这个维度上追上。
总结
Claude 代码能力强的本质不是某个魔法算法,而是三层壁垒的叠加:
训练层:RLAIF + Constitutional AI + 跨领域迁移 → 模型学会的不是「模仿人类代码」,而是「理解工程原则」
工程层:51 万行 Harness Engineering → 把模型的不稳定性装进了工业级容错框架
生态层:七层可编程接口 → 每个项目都能让 Claude 的能力再叠加一层定制
这三层,任何一层单独拿出来别人都能做。但同时做好三层,且在每一层都做到顶尖的工程深度——这就是 Claude 的护城河。
而最可怕的是:这个护城河还在自我加深。Anthropic 的工程师自己已经五个多月没亲手写代码了,但代码质量反而在上升。
更多推荐


所有评论(0)