这是一篇写给未来的自己回看的博文。之所以这么说,其一,在未来回看一个技术的快速发展是一件很有意思的事情*。其二,呃… 是因为这年头大家都在和 AI 聊天,不怎么有人会去看个人博客了(也许 AI 会看吧…)。
* 就像本站 2013 年记录过 部署 https 的「艰辛」历程,而今 https 已是日常了。
众所周知,AI 热潮是从 2022 年末 ChatGPT 的发布开始的。不过,本文会从稍早一些讲起。
2021 年 6 月:好用的代码补全
2021 年的 GitHub Copilot 是一个代码补全器。例如,用户输入一句 DB::,AI 就会根据上下文「猜测」用户想读取哪个数据库、哪些数据,并将猜出来的完整的读取数据库的代码呈现给用户,用户按下 Tab 即可快速补全。
那阵子,你能看到获得 Copilot 内测权限的用户们在 Twitter 上分享体验,有人发现 Copilot 会写出隐藏着错误的代码,有人质疑 Copilot 写出的代码会高度匹配某些带有版权的公开代码,引起法律问题。有趣的是,人们发现 Copilot 似乎什么都能做。



对于当时写段代码要打开几十个浏览器窗口的我来说,Copilot 是相当好用的。它除了省去了写类似 CRUD(数据库增删改查)的重复劳动之外,我不熟悉的算法、不知道的 API 定义,也可以省去搜索的过程,直接写句注释让 Copilot 「猜」代码。写代码更轻松了,效率也提高了。
那这是怎么做到的呢?其实是 GitHub Copilot 使用了一个大语言模型(LLM, Large Language Model),根据上下文的代码进行补全。
Copilot 使用的基于 Transformer 架构的 LLM 可以被视为一个复杂的「文本补全器」。它并不具备人类的思维意识,而是通过预先阅读海量的文本与代码数据,学习了词汇与代码逻辑之间的统计规律。当 LLM 收到一串文字时,模型内部的神经网络会进行庞大的矩阵运算,计算出词表中的每一个字词在当前语境下出现的可能性,随后,它会根据这些概率选取下一个字词,周而复始。
对了,当时的 GitHub Copilot 用的是 OpenAI 提供的 Codex 模型(不是 2025 年的那个)。而当时的 Codex 模型是基于 GPT-3 模型微调得到的。
嗯?GPT?
2022 年末:爆火的 AI 聊天网站
GitHub Copilot 公开的一年半后(2022 年末),OpenAI 决定花几周时间把他们的 GPT-3.5 模型做成一个简单的 AI 问答网站 —— ChatGPT。
原理很简单,就像 Copilot 用 GPT-3「猜」接下来的代码一样,ChatGPT 是用 GPT-3.5 「猜」接下来的文本,只不过这次这个 ChatGPT 会把用户的话放在类似这样的模板里来补全(以及模型进行了一些针对 ChatGPT 的微调):
于是,任何人只要访问一个网站,就能与 GPT-3.5 对话了。原本只是在程序员圈子里火的模型,这次在全球范围内火了。短短两个月,ChatGPT 积累了一亿用户。
然而,就像 AI 补全代码会写出错误的代码一样,LLM 的回答也可能是错误的。对于 AI 训练数据中冷门的领域,或者一些细节的问题上,LLM 往往会以自信满满的语气,在回答中捏造出一个完全不存在的事物。
回到编程的话题,这个一年前会补全代码的 GPT-3 大语言模型(LLM),在 ChatGPT 里自然也会写代码:

只不过,虽然它能生成代码片段、也能提供报错的解决方案,但「代码片段」可能是错的,「解决方案」也可能是虚构的。

别忘了,LLM 只是一个复杂的「文本补全器」。它并不理解用户在说什么,只是根据上下文,计算出下一个最可能出现的字词。如果你去问 LLM 一个它不熟悉的领域,它很可能会开始利用训练数据内的知识开始瞎编。
那么,有没有办法让 AI 像人类一样,能在遇到不熟悉的领域时,主动去上网搜索答案呢?
2023 年初:LLM 开始使用工具(Tool)
之前提到,ChatGPT 在两个月内获得了一亿用户。这是一件很可怕的事情,对于 Google 而言,这意味着自己搜索引擎的流量入口可能会被夺走;而对于 Microsoft Bing 而言,这是一次翻身的机会(剧透:并没有翻身)。
于是,各家公司开始在 AI 上投入资源。作为 ChatGPT 用户,2023 年初的那几个月,ChatGPT 几乎每个月都有新功能。其中重要的功能之一,就是它会上网「搜索」了。或者,从本质上说,是 LLM 会调用工具了。
LLM 作为一个「文本补全器」,它是怎么调用工具的呢?很简单,系统会在提示词里告诉 LLM 调用工具的「命令」(例如
{ "tool": "search", "query": "天气" }),当 LLM 生成出调用工具的「命令」后,系统中断生成。此时,服务器会根据命令去执行工具(如联网搜索),拿到结果后,再把执行结果,塞进对话中,并继续补全。
AI 能调用工具搜索了,不错,然后呢?
2024 年 9 月:LLM 开始思考(Reasoning)
2024 年 9 月,OpenAI 发布了 o1 模型。它被训练成会在回答用户的提问前,先「浪费」大量的 Token,进行自我思考与反思,最后将思考结果呈现给用户。这种模型被称作推理模型(Reasoning model),但依然是 LLM。
这看上去像是一种提高模型能力的「作弊」方式 —— 假如 LLM 没法一次给出正确结果,那就给出结果前多思考几次 LLM 的答案是否正确。不过,对于其他公司而言,既然别家做了,那我不能没有,于是大家开始纷纷推出各自的思考模型。
需要注意,用户所看到的各家闭源 AI 的思考过程,其实并非原始的思考过程,而是总结后的思考过程。不仅是因为原始的思考过程并不易读,也是因为思考过程其实是相当「值钱」的,可以被别人拿去用于训练 AI。
想要看到原始的思考过程,可以去使用开源的推理模型。另外,我也遇到过有时闭源模型或是其系统会出 BUG,泄露出原始的思考过程:
2025 年:Coding Agent 改变了编程
2025 年,此时的 LLM 可以对话,能够调用工具,还学会了思考。
假如我们给 LLM 一些特定的工具,让它能操作用户的电脑(搜索/浏览/修改文件、执行命令等),会发生什么呢?这一年,集齐了各种能力的 Coding Agent 开始遍地开花。
现在,我只需要安装任意的 Coding Agent(如 Cursor、Windsurf、Antigravity 等),然后在 IDE 里打开项目文件,告诉 LLM 我想做什么,它就会自己查找相关的代码、调用搜索引擎工具去查询文档、生成代码、修改文件、执行命令测试、分析报错、修复错误、完善代码、修改文档。
于是,我喝着咖啡、躺在椅子上,惬意地看着 AI 自动为我写代码、Debug。当 AI 完成一件事后,我只需要批准一下它修改的代码(甚至可以设置成自动批准),进行「验收」,然后提出下一个需求。
我发现,我更愿意去尝试做一些以前不敢做的事情了。当构思新功能时,我可以先让 Code Agent 花几分钟实际写出来试试,如果不好用,点击 Reject 就行。在接触新编程语言时,也不必像以前那样频繁的查文档、寻找最佳实践,AI 可以根据我的要求直接写出代码,不懂还能直接问。
这也带来了一种新的开发方式:氛围编程(Vibe Coding)。既然 AI 能理解代码,能完成需求,那为什么人类还需要学习编程呢?不妨直接告诉 AI 需求,人类只负责试用,试用不满意就撤销,满意就提下一个需求。周而复始,人类一行代码都不用懂了!What could possibly go wrong?

但毋庸置疑,Coding Agent 显著提高了程序开发的效率。这也不禁让人感慨,程序员已从代码搬运工变成了代码主理人。
未来
在未来,AI 会替代程序员吗?
这并不是一个非黑即白的问题:AI 会替代程序员,因为开发效率变高了,需要的人就少了;但 AI 不会完全替代程序员,因为 LLM 是一个「随机」的文本生成器,即使通过思考和工具,能让它自我纠正,它依然会常常犯不易看出的错误。这就需要懂架构、懂代码的程序员去引导并纠正它。
但可以确定的是,AI 编程让人类有了更多偷懒的方法,而人类本性是倾向于偷懒的。对于大项目而言,如果人类在使用 AI 编程时偷懒不检查,偶尔几次或许还好,但长期累积的各种错误一定会让项目开始失控。
在我看来,2025 年是软件质量急剧下降的一年。三大云厂商宕机了至少各一次,更别说 BUG 漫天飞舞的 Windows 11 了。就连过去高速稳定的 Chrome 也出现了各种大大小小的 BUG。
不知十年后,AI 编程是否仍基于 LLM?Windows 是否仍在不断出错?
Coxxs
本文(https://dev.moe/3265)由 Coxxs 原创,禁止转载。






