叫AI生成函数
2026年之前,用 AI 大模型,我基本上就是在网页对话框中,让 AI 帮忙生成一个完整的python 函数代码。AI生成的函数代码,省去了大量我自己查 API 文档和测试函数用法的时间。但一般因为懒得跟AI交代太多,往往要根据实际需求修改代码,所以总体上感觉就是「能用但不太贴心」。
这种审慎的使用方式我持续了较长一段时间。因为我见过早期大模型的胡言乱语,并不太信任它们。我朴素地觉得,AI模型不管大小,本质上仍然是一种万能的拟合函数。既然是拟合函数,那么就有着不可避免的拟合误差。
既然误差不可避免,就必须用专业能力兜底。在编程方面,我的能力范围只到基础的面向过程的函数式编程,我只能确保函数这样一个水平的 code review,所以我基本上只会让它生成函数代码,剩下的还是我自己拼装组合,实现最终的功能。
让AI完成任务
但到了 2026 年春节,当我开始尝试编程 Agent 之后,情况便彻底改变了。
我使用编程Agent第一次做的事情,大概就是一个已有小型项目的代码重构。这个小项目涉及几十个函数,但高度耦合到我完全不想维护。我起初并不抱太大希望,但是看到它在对话框中不断地闪烁着信息提示,告诉它在调用什么工具,处理什么文件,得到什么结果,接着它又是如何思考,判断下一步接着做什么,我内心有两种奇怪的感觉:一个是这感觉像是活物,跟真人做任务的 workflow 一模一样;二是原来可以一次改这么多文件和函数,我之前简直是刀耕火种的原始人。
代码重构的效果也超乎我的想象,虽然不是一次对话就搞定,但它有一个简单的 plan,逐步推进,我中间也能不断测试调整反馈,在不超过十次迭代之后,基本就差不多了。改完之后项目包含的代码,从单个文件变成了七八个文件,代码行数膨胀了五六倍,我没能也不想全部检查一遍,大致扫了一眼,发现有很多我觉得其实在有限使用场景下完全不需要的安全兜底代码,也有一些很低级的重复代码、一些奇怪的脱裤子放屁的垃圾代码。我只能理解为,这模型不仅学习到了大量真正软件工程师的经验,也浸染了软件工程师写屎山代码做防御性编程的恶习。
饶是如此,我还是欣然接受现实,单车换摩托。编程 Agent 干一小时顶我干一个星期,这种效率提升,我没法不接受,不拥抱。而且只要最后的结果能通过测试,能满足需求解决问题,代码写成什么样,关我什么事呢?
口子一打开,后来事情就一发不可收拾了。我的胆子越来越大,交给AI完成的任务越来越复杂,token也消耗得越来越快,充值就跟当年冲 Q 币一样,仿佛回到了玩游戏上瘾的少年时代。
不过这种好日子并不长久,一两个月后,当我手头上现有的代码项目整理地差不多,想要做得更好(通常也意味着更复杂)的时候,AI的能力就捉襟见肘了。我时不时遇到AI说了但没有做,或者改了直接改崩一大片已有稳定功能的情况,然后在边缘场景上死活沟通不了。为此我还不得不给自己立下一条规矩:一个 session 只专注一个清晰的子任务,完成就提交 git 备份。还给AI立下很多规矩,在CLAUDE.md中手动写了不少项目约定和强制性要求。结果有所改善,但效率提升也没有那么夸张了。因为在中等以上的复杂项目中,还是需要人基于各方面的需求背景和全面的场景理解,来亲自完成架构设计并理顺逻辑。
请AI承担项目
今年上半年网络上媒体关于国内外AI大模型的报道也非常火热,我天天听着大家吹嘘国外的的大模型多强多香,不免得也有些心动。在使用国产大模型逐渐遇到瓶颈之后,我也想办法弄到了国外的 token 尝尝鲜。
不用不知道,一用吓一跳。之前一个任务要对话甚至十几次才能让我心满意足地验收。换了模型之后,我才理解什么叫做 “One-Shot”:第一次对话尽可能提需求,然后就能给出一个完成度95%的结果,第二次对话提下整改意见,就完全搞定了。我就觉得自己之前费劲写 CLAUDE.md 这类 Agent 规约是多么傻(还好没去学习使用skill,这也是必然会被淘汰的)。
然后,我开始迈出自己熟悉的成像数据分析领域,在顶尖 AI 大模型的加持下,我简直图形界面软件信手拈来,nodejs 玩得飞起,前端后端左右互搏。别的不说,眼下这个博客网站,就是一两天功夫,硬生生让 AI 从我之前的 typecho 站点改成了基于 Astro 的静态站点,安全美观,并且还完美适配了我 obsidian 文档工作流。
但历史告诉我,务必戒骄戒躁,我只不过是站在了时代巨人的肩膀上。
最后感谢我的老婆,带我入坑。