AI编程Agent第五篇:AI Coding Agent 会取代程序员吗?先别急着焦虑
最近,我在杭州电子科技大学、东南大学、浙江大学等高校,与老师、研究生和本科生交流 AI-Assisted Engineering 和 Project Velocity 时,经常被问到一个问题。与此同时,也有不少读者通过微信公众号私信我,提出类似的疑问:
OpenAI Codex、Claude Code、Google Antigravity、OpenCode 这些 AI 编程 Agent 越来越强,程序员是不是快要被取代了?
这确实是一个很现实的问题。
因为今天的 AI编程Agent,已经不只是帮我们补全几行代码。它可以读代码、改代码、跑命令、生成测试,甚至在一个项目目录里连续完成一组开发任务。
所以,很多人的顾虑并不是没有道理。
这个问题很现实,也很容易让人焦虑。
于是很多人开始担心:
如果 AI 已经能写代码,那程序员还剩下什么价值?
我的看法是:
AI编程Agent 不会简单取代程序员,但会快速取代只会“等需求、写代码、不验证、不理解系统边界”的程序员。
真正被改变的,不是“程序员这个职业”,而是“程序员工作的方式”。
一、这次变化,和过去的代码补全不一样
过去我们用 IDE、代码模板、栈溢出、搜索引擎,主要是在“找答案”。
后来有了 Copilot、ChatGPT,我们开始让 AI 帮我们“写片段”。
但今天的AI编程Agent 不一样。
它不只是回答问题,而是可以进入工程目录,理解上下文,然后执行一系列动作:
-
阅读已有代码
-
修改多个文件
-
运行测试
-
根据报错继续调整
-
生成提交说明
-
解释设计思路
-
帮助重构项目结构
这意味着,AI 正在从“代码助手”变成“工程执行单元”。
但注意,是执行单元,不是工程负责人。
这两者的区别,非常重要。
二、为什么很多人一用 Agent 就翻车?
很多人第一次使用 AI Coding Agent,会非常兴奋。
输入一句:
帮我实现这个功能。
然后 Agent 开始飞快改文件、生成代码、运行命令。
看起来非常智能。
但过一会儿,问题就来了:
-
代码能跑,但不一定符合真实硬件约束
-
功能看起来完成了,但边界条件没有处理
-
测试通过了,但测试本身太弱
-
文件改了很多,但没有清楚说明为什么这么改
-
出了问题,很难回滚
-
系统越改越复杂,最后没人敢继续维护
这就是所谓的“Agent 翻车”。
不是因为 AI 不够强,而是因为使用者没有给它清晰的工程边界。
AI Agent 很擅长执行,但它并不知道你的产品目标、硬件限制、安全要求、交付节奏和客户场景。
这些东西,仍然需要工程师来定义。
三、程序员不会消失,但角色会变化
在传统开发模式中,程序员的主要工作是:
理解需求 → 写代码 → 调试 → 修 bug → 交付。
在 AI-Assisted Engineering 模式下,工程师的角色会变成:
定义目标 → 设计架构 → 约束 Agent → 审查结果 → 建立测试 → 控制风险 → 持续迭代。
也就是说,程序员不再只是“代码生产者”,而是逐渐变成:
系统设计者、验证负责人、工程流程控制者。
未来真正重要的能力,不是你每分钟能敲多少行代码,而是你能不能回答这些问题:
-
这个功能为什么要做?
-
它运行在什么硬件和系统环境上?
-
它和哪些模块通信?
-
失败时应该如何处理?
-
如何测试它真的可靠?
-
如何回滚?
-
如何让下一个工程师看得懂?
这些问题,AI 可以辅助,但不能替你承担最终责任。
四、用 Project Velocity 看得更清楚
以我一直在做的 Project Velocity 为例。
这是一个端到端 AIoT 工程系统,不是一个简单 demo。
它包括三个层次:
-
Node 层:STM32F103 + Zephyr RTOS,连接传感器、按键、LCD、IR、DC Motor 等外设。
-
Edge 层:RK3588 作为边缘网关,运行 Ubuntu,负责协议转换、数据处理和边缘控制。
-
Cloud 层:ThingsBoard 负责遥测数据展示、RPC 控制和设备管理。
系统里还有 MQTT、CANopen、OPC UA、UART、Device Tree、Kconfig、main.c、Python Gateway、Dashboard、Telemetry、RPC 等一整条链路。
如果只是让 AI Coding Agent 写代码,它确实可以帮你生成很多文件。
比如:
-
Zephyr 的
main.c -
CANopen 通信代码
-
MQTT 客户端代码
-
ThingsBoard RPC 处理逻辑
-
Python 网关脚本
-
数据格式转换函数
-
README 文档
-
测试脚本
这些它都可以做,而且速度很快。
但真正的问题是:
这些代码能不能组成一个可靠的端到端系统?
这就不是单纯“会写代码”能解决的问题。
五、在嵌入式和 AIoT 里,Agent 更不能乱用
在 Web 应用里,Agent 写错了,最多页面报错、接口失败、服务重启。
但在嵌入式和 AIoT 系统里,错误可能直接影响真实设备。
比如 Project Velocity 里,如果 Agent 没有理解硬件边界,可能会出现这些问题:
-
STM32 的 GPIO 引脚定义错误
-
Zephyr overlay 文件和实际硬件不一致
-
CANopen Node ID 冲突
-
MQTT Topic 设计混乱
-
ThingsBoard RPC 下发后,边缘网关解析错误
-
电机控制逻辑没有保护条件
-
IR 控制没有状态确认
-
传感器数据上传正常,但控制链路没有验证
这些问题,AI编程Agent 不一定会主动发现。
因为它看到的是代码,而不是完整的硬件系统。
所以在 Project Velocity 里,我一直强调一个观点:
AI-Assisted Engineering 不是让 AI 自由发挥,而是让 AI 在工程约束下工作。
六、从 Vibe Coding 到 AI-Assisted Engineering
很多人说自己在做 AI 编程,其实只是 Vibe Coding。
所谓 Vibe Coding,就是:
给 AI 一个大概想法,让它凭感觉生成代码。
这种方式适合快速探索、做原型、写小工具。
但如果你要做的是 Project Velocity 这样的 MCU–Edge–Cloud 系统,仅靠 Vibe Coding 就很危险。
因为真实工程需要的不只是“代码能生成”,而是:
-
架构清楚
-
硬件映射正确
-
协议链路一致
-
数据模型统一
-
控制路径可追踪
-
测试可以复现
-
版本可以回滚
-
出错可以定位
这就是 AI-Assisted Engineering 和 Vibe Coding 的区别。
Vibe Coding 关注生成。AI-Assisted Engineering 关注交付。
七、工程师的新价值:会给 Agent 设边界
未来的工程师,不一定要比 AI 更快写代码。
但一定要比 AI 更清楚:
什么代码不该写,什么方案不能用,什么风险必须提前处理。
使用 Coding Agent 时,真正重要的不是一句“帮我写代码”,而是给出工程化约束。
比如在 Project Velocity 中,我不会简单说:
帮我写一个 STM32 程序。
我会要求 AI 同时考虑:
-
使用 Zephyr RTOS
-
基于 STM32F103
-
外设必须在 Device Tree overlay 中定义
-
Kconfig 必须在
prj.conf中打开 -
应用逻辑写在
main.c -
CANopen 参数要和边缘网关保持一致
-
MQTT Topic 要和 ThingsBoard Dashboard 匹配
-
控制命令必须有边界检查
-
所有关键修改要能测试和回滚
这就是我在Project Velocity讲座多次提到的“三文件策略”:
overlay / prj.conf / main.c
对于 Zephyr 来说,如果只让 AI 写 main.c,很容易出现“代码看起来对,但根本无法在硬件上工作”的问题。
只有同时约束硬件映射、系统配置和应用逻辑,AI 生成的代码才更接近真实工程。
八、AI Agent 会淘汰哪类程序员?
AI Coding Agent 最先淘汰的,不是所有程序员,而是以下几类工作方式:
第一类:只会机械写代码的人。
如果一个任务已经被清楚定义,输入输出明确,测试也明确,那么 Agent 很快就能完成大部分编码工作。
第二类:不理解系统上下文的人。
只知道改当前文件,不理解上游数据、下游接口、硬件限制和运行环境,这类工作会越来越危险。
第三类:不写测试、不做验证的人。
AI 写代码很快,但也可能很快制造隐蔽 bug。如果工程师不建立验证体系,速度越快,风险越大。
第四类:不愿意学习新工具的人。
编程Agent 不会等你准备好。它会先改变团队的开发流程,然后改变招聘标准。
但同时,AI Agent 也会放大另一类工程师的价值。
九、AI编程Agent 会放大哪类工程师?
未来更有竞争力的工程师,往往具备以下能力:
第一,能把模糊需求变成清晰任务。
AI 很怕模糊指令。你说得越清楚,它越有价值。
第二,能设计系统边界。
知道哪些模块由 MCU 处理,哪些放到 Edge,哪些交给 Cloud,哪些必须保留人工审核。
第三,能建立测试和验证方法。
包括单元测试、接口测试、硬件在环测试、日志检查、回归测试和异常场景测试。
第四,能看懂 AI 生成的代码。
不会盲目信任,也不会因为 AI 生成得快就直接合并。
第五,能把 AI 放进工程流程。
让 Agent 参与文档、代码、测试、Review、CI、版本管理,而不是只当一个聊天机器人使用。
这类工程师不会被 AI 取代,反而会因为 AI 获得更强的生产力。
十、学生、研究生、工程师应该怎么准备?
对于学生来说,不要只学“如何让 AI 帮你写作业”。
更重要的是学会:
-
如何描述问题
-
如何拆解任务
-
如何阅读 AI 生成的代码
-
如何发现错误
-
如何写测试
-
如何用 Git 管理版本
对于研究生来说,不要只把 AI 当论文助手。
你应该学会用 Agent 帮你:
-
阅读资料
-
整理实验流程
-
生成原型代码
-
设计实验记录
-
对比不同方案
-
形成可复现的研究工程
对于工程师来说,不要把 Agent 当“高级自动补全”。
你应该把它看成一个需要管理的初级工程团队成员。
它可以很快,但需要你给方向。
它可以执行,但需要你做判断。
它可以生成,但需要你验证。
十一、我的结论:不要焦虑,但必须升级
所以,AI编程Agent 会不会取代程序员?
我的回答是:
它不会取代真正理解系统、能设计架构、能验证结果、能承担交付责任的工程师。
但它会取代很多低价值、重复性、缺乏上下文的编码工作。
这其实不是坏事。
因为工程师本来就不应该只做“代码搬运工”。
真正的工程能力,应该体现在:
-
你能否把一个想法变成系统?
-
你能否把一个 demo 变成产品?
-
你能否把一段代码放进真实硬件、真实网络、真实客户场景里运行?
-
你能否在出错时找到原因、控制风险、持续交付?
Project Velocity 给我的最大启发是:
AI 让代码生成变快,但工程交付并没有因此变简单。
相反,越是有 AI,越需要工程师定义边界、建立验证、管理复杂度。
结尾
AI编程Agent 的到来,不是程序员职业的结束。
它更像是一次分水岭。
一边是继续停留在“我会写代码”的旧模式。
另一边是进入“我能用 AI 组织工程交付”的新阶段。
未来,真正重要的问题不是:
AI 会不会写代码?
而是:
你能不能带着 AI,把代码变成一个可靠系统?
这才是从 Vibe Coding 走向 AI-Assisted Engineering 的关键。
也才是 AI 时代工程师真正的护城河。
夜雨聆风