在 AI 代替人类之前,我们应该做些什么?

最近团队组织了一次圆桌讨论,大家聊一聊关于 AI 的一些想法。我们是否该焦虑 AI 会替代自己的工作?对于 AI 的态度应该是什么样的?以下是关于这个话题我的一些思考。

放在今天这个时间节点,应该很难有人没有感受到 AI 带来的变化了。除了问答场景外,对于人们影响最大的应该就是 AI Coding 能力了。很多一线大厂,尤其是美国的互联网公司,Amazon、Meta 等都有曝出因为 AI 代替工程师导致的裁员。哪怕没有裁员的公司,也经常会宣称自己公司的代码有多大的比例是 AI 写出来的。

我自己的 title 是前端工程师,业界目前卷 AI Coding 的方向也主要是在前端部分。从我自己的体感来说,AI 写代码终究是要替代人类的,哪怕是目前模型可以达到的程度,就已经能够非常提效了。但我好奇的是为什么变化最先出现在前端领域?我自己的想法是前端最容易被人看见,vibe coding 起来最有效果。但其实难的前端代码 AI 也没办法很容易写出来,而简单的增删改查服务端代码 AI 写起来也非常容易。这里并没有什么岗位的区别,大家都是终有一天要被替代的,五十步笑百步没有太大的意义。所以,长期看初级研发工程师是一定会消亡的,但不仅仅是前端,而是整个行业。

那么短期呢?其实可以观察到一个有意思的现象,跟之前人类历史上的其他科技进步一样,生产力的发展确实让人们生活质量提高了,但并不会减少人们的工作时间。我们从 OpenAI 的分享文章中也可以看到,有了 codex 以后,工程师可以边开会边干活了。

image.png

在转折点(也就是彻底不需要人类作为生产力)到来之前,科技生产力的进步只会让人做的事情更多。


所以回到我们的标题,眼前我们应该做些什么呢?我想,既然人类还在作为生产力被需要,那么人们要做的可能只是保持学习,拥抱新的内容,有效利用科技进步带来的成果,从而不被淘汰。

当然变化也是有的,我一直不觉得自己的定位是程序员,而应该是一名软件工程师。写代码本身只是工作的一部分,工作中其实有很多需要思考决策的内容。我们是研发,研究在前,要做之前其他人没有做过的事情,这些也正是 AI 不擅长的地方。

AI 时代,写代码这件事本身变得越来越廉价了,这里我是指某个语言的语法应该怎么写,某个 API 应该具体怎么调用等等,这些事情 AI 可以做的非常好。但写代码本身的价值其实在绝大多数情况下是很低的,程序员业务项目三21件套,博客、TODO 和 笔记软件,之前是无数人在写,现在可能是 AI 来写,但写的再多,效率再高,也是无价值的。

真正有价值的是什么呢?是创新的思考,是对未知,对没有做过事情的探索。都不用说人类的科技进步,就只是在 Web 前端开发领域,都有着层出不穷的创新,比如前端框架、Node.js、TypeScript 等等,不断在进步,这些东西短时间内 AI 都只是加快了实现和探索的速度,但创造出新的事物还是需要人。

由此,越是 AI 发展的很快,越应该有长远的视角。一方面关注行业发展的同时,另一方面我们需要思考时间投入在什么地方在长期来看是最有价值的。一个例子就是之前我很喜欢读一本叫做 《High Performance JavaScript》的书,这本书讲了很多让 JavaScript 有更高执行效率的写法,读完会让人觉得自己非常牛 X,就像寿司仙人一样,打磨了自己的 JavaScript 技艺。现在看,这本书中的内容充满了奇技淫巧,随着 V8 的优化,很多写法都不再有性能优势了,这些知识也变成了无用的东西。再比如,React Hooks,这玩意设计的非常复杂,其实是埋了一个大坑,你如果花费了大量时间来钻研如何让子组件不更新,等 React Compiler 发布以后,这些知识也都是无用的了。类似的例子还有很多,旧版本 IE、移动端的各种兼容性问题,等等。

当然,能够看清楚长期什么是重要的也是一种能力,现在 AI 发展的很快,我也还在思考什么是长久的东西。目前我能够想到的就是两个事情,一个是 AI 模型的底层原理,另一个是 agent 模式的构建。一个事情可能发展很快,但越往底层,变化的相对会慢一些。AI 模型是整个事情的底层,而 agent 的构建现在看是应用的底层。

但研究 AI 模型本身,显然不适合我们这些做应用的人。这源自我一直以来关于 AI 能力的一个想法,在研究生阶段我是研究计算机视觉的,方向还是比较前沿的 3D 图像处理,但毕业并没有选择 AI 算法相关工作,一方面是自己确实太菜,另一个原因就是我始终认为 AI 会变得越来越强大,这就代表着他会变得非常通用,那么也就意味着未来 AI 能力会变得非常通用。在未来可能只有少数人会真正做 AI 模型底层的基础研究,真正变化的是应用层,工程落地这些能力有着更大的想象力。

Agent 构建模式或许是现在工程应用领域比较值得积累的方向,因为它看上去越来越有了固定的雏形。本质上 agent 模式解决的是我们如何高效利用 LLM 模型来完成特定任务,既需要约束模型不放飞自我,又需要保持灵活性避免陷入用 AI 进行硬编码的误区。


在我看来,结合业界 Claude Code 等的实践,目前 agent 有以下关键点:

  1. Agent + 以 tool 形式存在的 sub-agent,保持一个循环。sub-agent 提前预置或动态组装。本质上是任务的拆解和 context 压缩

    control_loop_%281%29.gif
  2. Agent 内部的 workflow 以 prompt 的形式体现,而非代码逻辑实现。对 prompt 进行大量的调优。这个 workflow 的作用是给模型以指导,它是个“知识”,而不是约束。

  3. Todo list tool,动态维护 todo list,保持主线的同时保留调整空间。

  4. 提供基础 tool + 高频执行的复杂 tool,让 agent 可以自主获取更多上下文。


以上就是一些近期的思考,AI 才刚刚开始,我们一起见证历史。