Agent 是怎么一步步学会写代码,又把 Vibe Coding 推上风口的

一个被词典收录的词,背后藏着一整条进化链

2025 年初,Andrej Karpathy 在社交媒体上随手抛出一个词——vibe coding。他的大意是:以后写程序,你可以完全顺着"感觉"来,把想要的功能用自然语言描述出来,剩下的交给 AI 去生成代码,你甚至不需要逐行读懂它写了什么。这个词后来被 Collins 词典评为 2025 年度词汇,相关市场被估算到数十亿美元规模,非程序员也能靠它搭出可用的应用。

很多人把 vibe coding 当成一个突然爆发的现象,但如果你把时间轴拉长,会发现它其实是一条进化链的终点。这条链的起点,是一个连"调用计算器"都不会的语言模型;它的中段,是一群在论文里反复试错的研究范式;它的末端,才是今天能在你 IDE 里自动改 bug、跑测试、提 PR 的 coding agent。真正值得讲的不是"vibe coding 火了",而是"agent 是怎么一步步把开发正确率从个位数拉到九成以上的"。这篇文章就沿着这条链,从 agent 的出生讲起。

Agent 的诞生:当语言模型学会"想一想再动手"

要讲 agent 的诞生,得先回到 2022 年。那一年,Chain-of-Thought 这篇论文把一件朴素的事情讲清楚了:让大模型在给出答案前,先写出一串中间推理步骤,它的表现会显著提升。这听起来像废话,但它解决了一个根本问题——在此之前,模型是"一步到位"地吐答案,错了也不知道错在哪。有了思维链,模型第一次有了"可被观察的思考过程",这成了后续一切 agent 范式的地基,这篇论文也被引用了三万六千多次。

紧接着,ReAct 把这块地基往上盖了一层。它的核心思想用一句话就能讲完:让模型把"推理"和"行动"交错着进行——先想一步,再调一个工具,看到工具返回的结果,再想下一步。这种 Thought → Action → Observation 的循环,第一次让语言模型从"只会说"变成"会做事"。下面这段伪代码勾勒的就是这个循环的骨架:

Thought: 用户要修这个 bug,我先看看报错堆栈
Action: read_file("stack_trace.log")
Observation: NullPointerException at line 42 of UserService.java
Thought: 空指针,可能是 user 对象没初始化
Action: read_file("UserService.java")
Observation: line 40 调用 findById(id) 后未判空
Thought: 加一个空值检查再返回
Action: edit_file("UserService.java", ...)
Observation: 修改成功
Action: run_tests()
Observation: 全部测试通过

ReAct 论文被引用了一万三千多次,几乎所有后来的 agent 框架,骨子里都是这个循环的变体。几乎同一时间,Meta 抛出了 Toolformer,让模型自己学会"什么时候该调工具、调哪个工具、参数怎么填"。它把计算器、问答系统、搜索引擎、翻译、日历这些工具塞进训练过程,让模型在自监督下掌握工具使用。这三项工作合在一起,构成了 agent 的"出生证明":思维链给它思考能力,ReAct 给它行动循环,Toolformer 给它工具意识。

Agent 的发展:从会调工具,到会反思、会分工

出生之后的 agent,马上撞上一堵墙:它会调工具,但它会犯错,而且犯了错不会改。于是 2023 年前后,研究重心转向"怎么让 agent 自己纠错"。

Reflexion 给出的答案是"自我反思"。它让 agent 在每次尝试失败后,生成一段对失败原因的自然语言总结,把这段总结塞进下一轮的上下文,相当于让 agent "记住教训"。Tree of Thoughts 则更进一步,它不再只走一条思路,而是同时展开多条可能的推理路径,对每条路径打分,再选最优的那条继续往下走。这两套机制让 agent 从"线性试错"升级成"带评估的搜索",正确率随之抬升,也奠定了后来"先规划再执行"的范式基础。

与此同时,工业侧也在补另一块短板:工具调用的可靠性。早期 agent 调工具靠的是"让模型输出一段文本,再用正则去解析",极其脆弱,参数错一个字符整条链就断。2023 年 6 月,OpenAI 给 GPT-4 加上了正式的 function calling 能力,模型可以直接输出结构化的函数调用 JSON,工具对接从"猜谜游戏"变成了"契约调用"。这一步看似工程小改,实则让 agent 的工具使用错误率断崖式下降,也是从这一刻起,agent 才真正具备了稳定串联多步操作的能力。

工具稳了,反思有了,下一步就是"分工"。ChatDev 和 MetaGPT 把一个虚拟软件公司搬进了 agent 世界:产品经理 agent 写需求,架构师 agent 出设计,程序员 agent 写代码,测试 agent 跑用例,多个 agent 按角色协作完成一个完整项目。MetaGPT 这篇论文被引用三千多次,它证明了一件事——单个 agent 再强也有上限,把任务拆给一组有明确职责的 agent,整体正确率会比单打独斗高出一截。也是在这个阶段,LangChain、LlamaIndex 这类框架迅速崛起,把"搭一个 agent"从论文复现变成了几行代码的事,agent 生态开始成型。

Agent 的流行:从 AutoGPT 的狂欢,到 Vibe Coding 的日常

如果说论文里的 agent 还属于实验室,那 2023 年 3 月的 AutoGPT 就是它第一次"出圈"。AutoGPT 把 GPT-4 套进一个自主循环:给定一个高层目标,它自己拆任务、自己调工具、自己上网搜资料、自己写文件,循环往复直到"完成"。紧接着出现的 BabyAGI 走的是同一条路,只是更精简。这俩项目在 GitHub 上一夜斩获十几万 star,所有人都兴奋地以为"通用人工智能的雏形"已经到家了。

但狂欢很快退潮。早期的 AutoGPT 们有个致命问题:它们会在一个任务上无限打转,跑着跑着就忘了自己最初要干嘛,正确率惨不忍睹,常常在第三四步就彻底跑偏。这场泡沫留下的真正遗产,不是某个能用的产品,而是让全世界开发者第一次直观感受到"agent 长什么样",也暴露出"自主循环 + 长程规划"才是真正的硬骨头。可以说,正是 AutoGPT 的失败,把后续两年的研究精力都引向了"怎么让 agent 不跑偏"。

转折发生在 2024 年。3 月,Cognition 发布 Devin,号称"第一个 AI 软件工程师",它在 SWE-bench 上拿下了 13.86% 的解决率——听上去不高,但要知道此前的无辅助基线只有 1.96%,Devin 直接把它抬高了七倍。Devin 真正打动人的不是数字,而是 demo 里它自己开浏览器查文档、自己写代码、自己跑测试、自己修 bug 的完整闭环。同年 10 月,Anthropic 给 Claude 3.5 Sonnet 加上了 computer use 能力,agent 可以像人一样看屏幕、移鼠标、点按钮;11 月又推出 MCP(Model Context Protocol),把"agent 怎么连外部系统"这件事标准化了,工具生态从"各自为战"走向"即插即用"。

到了 2025 年,所有条件凑齐:模型够强、工具够稳、循环够长、生态够丰富。Karpathy 的 vibe coding 一词精准地命名了这种新状态——Cursor、Windsurf、Claude Code 这类 agentic IDE 走进日常开发,开发者从"写代码"变成"描述意图 + 审查 agent 写的代码"。agent 不再是 demo,而是工作流的一部分,vibe coding 也因此从一句玩笑变成了被词典正式收录的开发范式。

Agent 是怎么一步步把开发正确率拉上去的

这是整条故事线里最值得拆开看的一段。agent 的开发正确率不是某一个魔法带来的,而是一层一层叠加的能力共同抬起来的。下面这张表把关键的"提准确率杠杆"按出现顺序列了出来,每一项都对应着 agent 某一种"短板被补上"的瞬间。

阶段 关键能力 解决的核心问题 带来的变化
推理 Chain-of-Thought 模型一步到位、错了无法定位 有了可观察的中间推理步骤
行动 ReAct 循环 模型只会说、不会做 推理与工具调用交错进行
工具意识 Toolformer 不知道何时该用工具 自监督学会调用计算器、搜索等
可靠调用 Function Calling 工具调用靠正则解析、极易出错 结构化 JSON 契约,错误率骤降
自我纠错 Reflexion 犯了错不会改、不会总结 失败后生成反思,下一轮避免重蹈
路径搜索 Tree of Thoughts 只走单条思路、易钻死胡同 多路径展开打分,选最优继续
记忆 RAG / 向量库 / 长上下文 上下文有限、跨会话失忆 持久化检索,长程任务不丢线索
分工 MetaGPT / ChatDev 单 agent 上限明显 多角色协作,整体正确率提升
验证闭环 测试驱动 agent 代码写完不知道对不对 跑测试 → 看报错 → 改 → 再跑
环境操作 Computer Use 只能在文本里干活 像人一样操作真实环境
工具生态 MCP 每个工具都要单独适配 标准协议,工具即插即用

这里面最容易被低估、但对正确率贡献最大的,是"验证闭环"。早期 agent 写完代码就交差,对不对全凭模型自己判断,而模型恰恰最不擅长判断自己写的代码对不对。后来业界把测试驱动开发(TDD)的思路塞进 agent 循环:agent 先读测试用例,再写实现,写完立刻跑测试,看到失败信息再回去改,改完再跑,直到全绿。这种 写 → 跑 → 看报错 → 改 的闭环,把"代码正确性"从"模型自评"变成了"测试客观裁决",正确率随之出现台阶式跳升。它的循环结构大致是这样的:

while not all_tests_pass:
    read failing test cases
    write or patch minimal implementation
    run tests
    if failing:
        read error output
        reflect on root cause
        patch implementation
    else:
        break

最能直观体现这种跳升的,是 SWE-bench 这条基准线。它用真实的 GitHub issue 来考 agent,能不能修好由隐藏测试决定,几乎没有水分,因此被公认为衡量 coding agent 的"事实标准"。

时间 系统 / 模型 SWE-bench Verified 解决率
2024 年 3 月 此前无辅助基线 1.96%
2024 年 3 月 Devin 13.86%
2024 年 8 月 SWE-bench Verified 子集发布
2025 年 5 月 Refact.ai(开源方案) 70.4%
2025 年 Claude Opus 4.5 79.2%
2025 年 当前通用 SOTA 约 87.6%
2025–2026 年 Claude Opus 5(部分榜单) 高达 97.00%

从 1.96% 到 97%,一年多时间里解决率翻了近五十倍。这背后当然有模型本身变强的功劳,但更关键的是 agent 这一层的工程进化:更稳的工具调用、更长的规划、更可靠的反思、更严格的测试验证、更丰富的工具生态。模型是发动机,agent 是底盘和方向盘,光有发动机跑不直,得靠底盘把动力转化成"正确到达终点"。

理解了这条进化链,你才能理解 vibe coding 为什么"现在"火。它不是某一天突然可行的,而是当 agent 的开发正确率跨过某个临界点——大概在 70% 上下——之后,"用自然语言描述意图、让 AI 生成代码"才从"玩具"变成"可日常使用的工作方式"。Karpathy 命名的是 2025 年的现象,但孕育它的,是过去三年里 agent 一点一点把正确率抬上去的全部努力。

posted @ 2026-08-09 15:22  减瓦~  阅读(30)  评论(0)    收藏  举报