AI 编程之后,我的工作变成了什么?

注:本文内容纯手敲,格式标题由 Codex 排版生成。

AI 编程带来的变化

随着 AI 大模型和各种 Agent 的发展,公司也配了足量的 token 额度。如今,每天实现需求、修复 bug 和处理其他琐事,基本都可以交给 Agent 完成。我主要负责对接、分析、思考、决策、review 和交付。

对于一个具体任务,我通常会先分析需求、拆解任务,评估 AI 给出的方案,然后做决策和调整,再 review 各个阶段 AI 完成的工作。决策和调整会贯穿整个过程,需要不断打磨,最后再整合定稿。

对于已经非常成熟的产品和业务,AI 实现起来很快,尤其是独立运行、不需要与其他系统交互的工程。

如果需要和内部系统或其他工程交互,AI 的能力就会稍有折扣。这时需要人来思考和协调,毕竟 AI 不知道外部系统的真实情况。特别是公司规模较大时,其他部门的接口、系统和历史问题往往错综复杂:哪里出问题就在哪里打补丁,彼此也不了解同事最近的增删改细节。即使是负责维护的人,也很难一次性把所有信息讲清楚,更不用说其他人了。

遇到这类问题时,人需要先了解业务,再把信息传递给 AI。人就像一座桥梁,一端连接对接的同事,另一端连接正在实现需求的 AI。

能不能把大模型用好,充分发挥它在 coding 上的能力,仍然取决于使用者自身的水平和认知。

人仍然需要掌握主动权

我见过一些不熟悉某种编程语言的人使用 AI 实现需求,如果让本身就擅长这门语言的人来 review,可能会发现这种情况下的代码写得非常混乱,存在很多问题,虽然最后能够运行,但漏洞很多,维护成本也非常高。

因此,我非常反对这样的观点:“AI 生成,AI 检查,AI 修改,不需要人 review,代码好不好不重要。”

项目最终要面对用户,如果这样随意地开发,大概率会出现这样的循环:

每天救火 → AI 分析报错 → AI 修改 → 人不仔细 review 和干预 → 复杂度和冗余度增加 → 工程变得脆弱且难以维护 → 用户使用时报错 → 反馈回自己 → 开始救火

这个循环不会自动结束,最终不仅用户体验不好,原本由 AI 提升的效率、节省的时间,也会被不断救火消耗掉。

AI 编程中的实际困难

拿我自己来说,虽然熟悉 Python,但最近半年在工作中做 Agent 相关的事情,仍然遇到了不少困难。

一方面,自动化框架中引入了字节开源的 Midscene:通过 Node 运行 TypeScript 实现的 Midscene,再使用 Python 封装这些 AI 接口,提供给用户使用。

这种基于纯视觉模型的 Agent,在自动化测试中可以发挥很大的作用。自动化测试开发不需要再因为 UI 变化而不断调整元素定位,直接让大模型基于页面效果做出行动。当然,它的速度不如使用精确元素定位的测试脚本,但稳定性和可维护性比传统 UI 自动化测试更好。

另一方面,开发一个处理特定业务的 Agent,对于只会使用 Agent 的人来说,相关术语和方案都可能是盲区。如何针对具体场景和业务,选择合适的技术框架和设计模式,是一件比较困难的事情。

如果直接把需求交给 AI,它肯定能很快给出一个方案并完成实现,但这个方案有没有更好的选择?是否合理?对于没有相关经验的人来说,很难判断,也会逐渐失去掌控感,一切都被 AI 牵着鼻子走。

不一定要自己开发 Agent

说点题外话,现在开发业务相关的 Agent 好像没那么大的必要。外部各大公司的 Agent 客户端和平台,已经足以满足大部分人的使用需求。公司内部只要接入外部的大模型 API,基于开源的 OpenCode 等工具,也基本够用了。

使用 LangChain、LangGraph 等工具开发特定业务的 Agent,本质上还是在已有的大模型接口上封装一层外壳,再加上一些 Skills、MCP 和 Wiki。在业务增长点疲惫的情况下,做这些事情可以增加一些绩效,至少让领导看到在干活、有事情做。

如果把需求和工作流细化,落实为具体文档,其实不开发 Agent 也可以。基于已经开发好的 Agent,解决实际问题就好,不必再造轮子、套壳。现在有了 AI,很多人动不动就做一套 CLI 加 Web 前后端,看起来很高大上。

没有 AI 的时代,很多人做的也是类似的事情:市场上已经有成熟的框架,却为了某些目的进行定制、添加特殊功能,再搞出一个又一个新框架。说白了,就是增加绩效、想点子,找一些可以汇报的事情。

我的实践方式

对于不熟悉的领域,我目前采用“反复梳理需求 + 调研业务背景 + 强模型交互”的方式。

磨刀不误砍柴工。先把需求搞清楚,区分哪些是有效需求,哪些是无效需求或伪需求;然后和 Claude 对话,不断打磨细节,将实现方案像代码一样迭代几个版本。不同难度的工作,使用不同的模型,毕竟 token 有限。

在迭代方案的过程中,我对需求的理解和对技术方案的认识都会更加深入,也可能产生新的想法。

将打磨好的方案输出为 Markdown 文件,并制定可行的实施计划。Agent 每完成一个子需求或子任务,就更新一次计划;实现的同时,记录未来可能用到的细节,形成伴随工程迭代的文档。这和之前流行的文档驱动 AI 开发思路有些相似。

一些小习惯

定期清理 Agent 会话,同一个工程下往往会因为多次需求创建多个 session,任务结束后就可以删除,也算是一点点的小强迫症吧。

虽然很多事情都是由 Agent 完成,但每次都能学到一些东西。将要点沉淀下来也是不错的,特别是经常用到的知识,整理成自己的文档。每次根据大脑中的印象索引去查找,也能增强记忆。重复的问题,不想每次都问 AI。

人的价值正在发生变化

最近一年多,大模型和 Agent 给我们的工作方式带来了很大的变化。之前还是在网页端提问和交互,现在已经变成使用 Cursor、OpenCode 等 GUI、TUI 编程 Agent 来实现编程任务。

如何做得更好,如何评价和衡量价值,成为更具挑战的问题。我们需要拥有更深、更广的知识面,才能看懂 AI 的“杰作”,识别出 AI 的错误和瞎搞,也才能评价一个人的工作是否有价值:换一个人是不是也能做?区别在哪里?人在其中发挥了什么作用?

写在最后

王小波在《一只特立独行的猪》(新版)的“有关克隆人”一章结尾写道:

电脑产业大发展以来,一直有人在说,电脑就要取代人脑,计算机会控制人类。现在英国有人造出一头克隆羊,又引起了一场大恐慌。既然人能够克隆羊,也就能克隆人。看来生物技术又要取代人类——所取代的部位是不言而喻的。现在的克隆技术还要用到人的生殖细胞,将来发明一种技术什么细胞都不用,那才会引起真正的恐慌。机械手早就在生产线上取代了人手,汽车轮子又在公路上取代了人腿,这两件事都没引起大恐慌。看来除了两个关键部位,别的地方都可以被取代。其实人手、人腿被取代后也没被砍下来,人脑被从某些工作中取代以后,更不必挖出来。我们可以用来干点别的。至于计算机,假如没有人来教唆,它不会想要控制人类——这对它并无好处。对电脑的恐慌是无道理的。

假如我说,对克隆人的恐惧也是毫无道理,势必要引起众怒,所以我不会这样说,而是想说点别的。现在人类已经发展到了这个地步,你做任何事情都需要经过学习。比方说,想要挣到吃饭的钱,就要受近二十年的教育拿到学位,才能找到事做;想要开车上路,又要花几千块钱上驾驶学校,才能拿到执照。花多少时间和多少金钱还是小事,还要脑袋够聪明、手脚够敏捷,才能成功。只有一件事还不是这样,那就是人的再生产。一个男人和一个女人在一起,无须很大的学问,就能弄出个孩子来。