写了十几年代码的程序员,应该怎么开始用 Coding Agent?我反而不建议一上来追求"全自动"
这两年有一个挺明显的变化。以前大家讨论 AI 编程,关注的是 Copilot 好不好用、ChatGPT 能不能写代码、Prompt 到底怎么写。现在已经变成了 Claude Code 怎么样、Codex 怎么样、Agent 能不能直接把整个需求做完。
我身边也有一些写了很多年代码的人开始用这些东西,但我发现一个挺有意思的现象。年轻一点、接受新工具比较快的开发者,可能上来就把 Claude Code、Codex、MCP、Sub Agent、Multi-Agent、YOLO 全自动这些东西一股脑全上了。而一些写了十几年代码的人反而会比较谨慎:这东西到底会改什么?会不会乱删文件?Shell 命令它自己执行安全吗?代码谁 Review?出问题以后怎么回滚?我的 Git 工作流还要不要?IDE 是不是以后不用了?
我现在反而越来越觉得,这种谨慎并不是坏事,甚至恰恰相反。老程序员进入 Agent Coding,最大的优势并不是会不会写 Prompt,而是已经知道一个软件项目哪里最容易出事。
所以如果你已经写了很多年代码,现在才开始认真接触 Claude Code、Codex 这类 Coding Agent,我反而不建议一上来就追求"怎么让 AI 完全代替我写代码"。更适合的思路可能是:先让 Agent 进入你原来的工程工作流,而不是把原来的工作流全部扔掉。
第一件事:我建议先从 TUI / CLI Agent 开始
现在 Coding Agent 的形态其实很多,有 IDE 插件、Web 页面、独立客户端、云端 Agent,也有 CLI / TUI Agent。如果你本身已经写了很多年代码,我个人其实很推荐先接触 Claude Code、Codex CLI 这种终端 Agent。
原因很简单:它离传统开发环境最近。你以前熟悉的 Shell、Git、目录、环境变量、命令、Build、Test、Diff、日志全部还在。你不是突然进入一个完全陌生的"AI 开发平台",而只是在原来 你 → Terminal → Git / npm / Maven / Gradle 这条链路里,多插入了一层 Agent:你 → Agent → Terminal → Git / npm / Maven / Gradle。这对老程序员其实非常友好。
为什么我比较喜欢 TUI?因为它比较"透明"。Agent 要执行 git status,你看得到;要跑 npm test,你也看得到;要搜索 rg "UserService",还是看得到。它正在读什么文件、执行了什么命令、修改了哪些代码、哪里报错了、下一步准备干什么,基本都暴露在你面前。
对于刚开始接触 Agent 的人来说,这一点很重要,因为你需要先建立一种感觉——Agent 到底是怎么工作的,而不是一上来就是输入需求、等待、然后 AI 告诉你"已经完成",中间发生了什么全然不知。我自己其实不太喜欢这种黑盒式的 Agent Coding。
老程序员最大的优势,其实是"知道什么时候 AI 在瞎搞"
这可能是我现在感受最深的一点。很多人会觉得年轻程序员更容易接受 AI,所以更有优势——从工具接受速度来说可能确实如此,但真正进入工程以后,我反而觉得经验非常重要。
因为 Coding Agent 最大的问题已经慢慢不是"它不会写代码",而是"它写出来的东西看起来很合理,但实际上可能不应该这么改"。比如 Agent 可能会说"这个问题可以通过重构这个模块解决",然后啪的一下改了 27 个文件。新人可能会觉得 AI 好强,老程序员的第一反应可能是:等等,我这个需求真的需要改 27 个文件吗?这就是价值所在。
Agent 最需要的其实不是"教它写 Java"。它大概率比很多人记得更熟 Spring、Stream、CompletableFuture、JPA、MyBatis,也知道 React、Vue、TypeScript、SQL、Docker,所以老程序员没必要天天教 Agent Java 应该怎么写。真正应该告诉它的是:这个系统为什么这么设计,哪些东西不能动,这个接口还有三个老系统在调用,这个字段不能随便改,这里虽然很丑但是有历史兼容原因,这个模块不能为了优雅去做大规模重构。这些东西模型未必知道,但你知道——这其实就是 Context。
所以以后程序员的经验并没有失效,只是从"我亲手写每一行代码",慢慢变成"我知道什么代码应该存在"。这两个能力不是一回事。
第二件事:安装可以简单,但不要把"简单"理解成"黑盒"
我个人很赞成 Agent 工具尽量降低安装门槛,最好就是下载、安装、检测环境、启动这么几步,而不是为了用一个 AI 工具先折腾半天 Python、Node、虚拟环境、PATH、各种脚本和十几个依赖。这种门槛对工具推广没有任何价值。
但这里很容易出现一个误区:安装简单不等于使用过程也应该完全黑盒化。我希望的是安装、配置、启动都简单,但真正执行任务以后,它做了什么、执行了什么、为什么需要权限、修改了什么,依然应该尽可能透明。也就是说,降低使用门槛,而不是降低可控性。
第三件事:我非常不建议刚开始就开"全自动"
这个我想单独说。现在很多 Coding Agent 都会提供类似 YOLO、Auto Accept、Full Auto、Bypass Permissions 之类的模式,确实很爽——你说一句"把这个需求做了",Agent 收到之后就开始疯狂干活,不用你一直点 Approve,效率看起来非常高。
但如果一个刚开始用 Agent 的程序员问我要不要直接开全自动,我的答案基本是:先别开。因为你连这个 Agent 的行为边界都还不知道。你不知道它遇到编译失败、依赖版本冲突、测试不通过、文件不存在、Git 工作区有未提交代码、发现实现方案和需求冲突这些情况时会怎么处理,更不知道它什么时候会觉得"为了完成需求,我应该顺便把这里重构一下"。
如果这时候直接把所有操作都设成自动批准,本质上就是把一个你还不了解的程序员直接给了生产权限。换个角度想,如果现实里来了一个新同事,第一天入职,你会直接把数据库、服务器、代码库权限全给他,不用 Code Review,让他觉得怎么改就怎么改吗?正常公司应该不会。那为什么换成 Agent 以后突然就敢了?
我现在更推荐"逐步放权"
比较合理的路径大概是这样:第一阶段,Agent 需要执行操作时你来看、你来批准,先观察它——它经常用哪些命令,什么时候会请求权限,哪些操作其实非常安全,哪些操作你根本不希望自动执行。等熟悉之后,再把你自己确认过的低风险操作(比如 git status、git diff、npm test、npm run build,或者其他你认为安全的只读、测试类操作)设为自动批准。但大量删除、严重权限修改、下载未知内容后执行、危险系统操作这些,依然应该保持 Human in the loop。
我的理解一直是:自动化的目标不是消灭人工,而是让人工只出现在真正值得人工判断的地方。这也是我后来给 Agent TUI Manager 做审批规则功能时一直在想的事——不是简单粗暴地"全批准"或"全人工",而是让 git status、git diff 这类你自己确认过安全的操作可以设规则自动放行,真正有风险的操作依然弹出来让你看一眼。本质上就是把上面这套"逐步放权"的思路落到工具里,而不是靠自己记住哪些命令危险、哪些不危险。
这一点其实特别适合老程序员,因为老程序员最值钱的就是风险判断。新人可能更容易判断"这段代码能不能跑",但工作很多年以后,更容易条件反射地去想:这个改动影响谁?能不能回滚?有没有兼容问题?有没有权限风险?会不会影响线上历史数据?有没有其他系统依赖这个接口?这种异常以前是不是出现过?这些恰恰是 Agent 最需要人类参与的部分。所以我觉得 Coding Agent 并不会让经验贬值,甚至可能恰恰相反——Agent 越能写代码,工程判断就越值钱。
第四件事:千万别因为用了 Agent,就不看 Diff 了
这个坑我觉得一定会有人踩。以前自己写代码,是写完、git diff、测试、提交这么一套流程;用了 Agent 以后,很容易变成 Agent 说"完成了"、人说"好的"、然后直接 git push。这是非常危险的。
我现在反而觉得,用了 Agent 以后 Diff 比以前更重要,因为代码不是你一行一行敲出来的,你天然失去了一部分"我知道这里为什么这么写"的直觉。所以 Agent 做完以后,至少要看一遍 git status 和 git diff,重点关注它改了哪些文件、有没有改需求之外的东西、有没有顺手重构、有没有删除原逻辑、有没有增加奇怪的依赖、有没有修改配置、有没有把临时 Debug 代码留下来。这一步不能因为用了 AI 就省掉。
第五件事:不要让 Agent 自己证明自己是对的
比如你告诉 Agent:把这个需求实现,完成以后自己 Review,发现问题自己修,最后确认没问题。听起来非常合理,但这里有个问题——它可能一直在验证自己的错误思路。如果它最开始就理解错了需求,那么设计、编码、Review、修复这一整套流程,全部建立在同一个错误前提上。
所以我现在比较喜欢的做法是让 Agent A 负责实现、Agent B 负责 Review,甚至用不同模型交叉着来,比如 Codex 写、Claude Review,或者反过来。模型是不是必须不同其实不重要,关键是重新建立一个独立的 Context。告诉 Reviewer:不要假设当前实现正确,重新从原始需求开始检查。这个效果通常比"你再检查一下自己刚才写的代码"好很多。
第六件事:别一开始就玩 8 个 Agent
Multi-Agent 现在很火,看到别人同时跑 8 个、10 个、20 个 Agent,很容易觉得一个 Agent 效率提高 5 倍,10 个岂不是提高 50 倍。实际不是这样。如果没有成熟的工作流,Agent 越多你越忙,因为你需要记住谁在做什么、谁做完了、谁出错了、谁需要 Approval、谁改了哪个文件、两个 Agent 有没有互相冲突。最后 AI 都在写代码,你自己反而变成了项目经理。
所以如果是刚开始,一个 Agent 就够,先把"需求 → Agent → Diff → 测试 → Review"这条链跑顺。然后可以试着变成 Implementer + Reviewer 两个,再后来考虑加上 Explorer、Test/Fix Agent,慢慢往上加,不要为了 Multi-Agent 而 Multi-Agent。
老程序员使用 Agent,我觉得最舒服的模式可能是这样的
以前是需求进来,自己分析、自己编码、自己测试、自己 Review,一路自己扛下来。现在可以变成:你负责理解和拆解需求,Agent 负责大量实现,Agent 跑测试,另一个 Agent 做 Review,你看最终的 Diff 和关键设计,最后提交。真正变化的是手从键盘上稍微拿开了一点,但脑子并没有退出开发。
再往后,才是多 Agent 管理的问题。当你真的开始习惯 Agent Coding 后,很自然会出现 Frontend Agent、Backend Agent、Reviewer、Test Agent 这样的组合,这时候传统 Terminal 又会暴露另一个问题——Terminal 本质上告诉你的是"这里有四个 Shell",但你真正关心的其实是 Frontend 在 Working、Backend 在 Waiting Approval、Reviewer 已经 Finished、Test 出了 Error。
这也是我后来为什么自己做了 Agent TUI Manager。因为我自己开始同时跑 Claude Code、Codex 之后,越来越受不了不断 Alt+Tab 去找 Agent、找 Approval、判断哪个是不是挂了,所以给这些原生 TUI Agent 上面套了一层管理界面。目前可以统一看多个 Agent、集中处理 Approval、区分状态和异常,也接了钉钉做远程值班,项目本身依然保留 Claude Code / Codex 的原生 Session,并没有重新创造一套私有会话格式。

项目地址:https://github.com/MulaLee4851/AgentTuiManager
我自己比较坚持的一点是:Manager 是辅助,不要绑架原来的工具链。哪一天不想用这个 Manager 了,codex resume <session-id> 或者 claude –resume <session-id> 依然可以继续原来的会话。这也是我为什么前面一直推荐从原生 TUI 开始入门——先熟悉原生 CLI 的行为方式,Manager 只是在你需要同时看多个 Agent 时才有意义,不是入门就要先装的东西。
另外顺带说一句,如果你和我一样手上有公司的 Key 也有自己的 Key,做公司项目和自己项目经常要切账号、切代理,Agent TUI Manager 现在也支持每个窗口单独配置 baseUrl、API Key、模型和网络出口,两边可以完全隔离开,不用来回改配置文件。这个算是我自己用出来的一个附带需求,倒不是刻意设计的。
如果让我给一个"老程序员进入 Agent Coding"的路线
我可能会这么排:
第一步,装一个原生 Agent,Claude Code 或 Codex 都可以,先别一口气装十几个工具。
第二步,找一个自己非常熟悉的项目。不要第一天就用 AI 写一个自己都不懂的新系统,拿一个你维护过很久的项目试手,因为你知道正确答案大概是什么样,这样才能判断 Agent 到底靠不靠谱。
第三步,先让它做一个正常需求。别一上来就让它重写整个系统,找一个平时两三个小时能完成的小需求,看看它怎么分析、怎么搜索、怎么修改、怎么测试、什么时候请求权限——先认识它。
第四步,不要开全自动。先手动看 Approval,建立信任,再逐步把重复的低风险动作自动化。
第五步,保持 Git 习惯。Agent 做完以后该看 git status、git diff 还是要看,该测试还是要测试。
第六步,加入 Reviewer。一个 Agent 开发,另一个 Agent 独立 Review,这是我觉得最值得尝试的 Multi-Agent 入门方式。
第七步,最后才考虑同时跑多个 Agent。等你真的觉得一个 Agent 已经不够用了,再去想怎么同时看多个 Agent 的状态、怎么集中处理审批——这时候一个像 Agent TUI Manager 这样的管理工具才真正有用;如果你还停留在一个 Agent 就够用的阶段,装这类工具反而是多余的负担。
这个顺序,比第一天就下载八个 AI 工具、打开全自动、跑十个 Agent,然后完全不知道发生了什么,要靠谱得多。
最后
我觉得很多工作十几年、二十年的程序员面对 AI,会有一点焦虑:我是不是跟不上了?但我自己越来越觉得不一定。过去这些年积累下来的架构判断、风险意识、Debug 经验、Git 习惯、Code Review、测试意识、兼容意识、上线经验、事故经验,没有因为 AI 出现就突然变成废物,只是角色正在发生变化。
以前我们更多是在判断"这行代码应该怎么写",以后可能越来越多是在判断"这件事情应该怎么做",而具体那几十行、几百行代码,可以让 Agent 帮你完成。
所以如果你已经写了十几年代码,现在才开始接触 Agent,我觉得完全不用急着追最强 Prompt、最多 Agent、最高自动化、最花哨的 Workflow。先把一个 Claude Code 或 Codex 打开,让它进入你原来的开发流程,然后一点一点把重复劳动交给 Agent,把工程判断留给自己。我觉得这可能反而是老程序员最舒服、也最稳的一条 Agent Coding 路线。
也挺想问问 CSDN 上写了很多年代码的朋友:你们现在已经开始用 Claude Code / Codex 了吗?以及你目前属于哪一种?
- A. 还主要自己写,AI 偶尔问一下
- B. IDE AI 插件为主
- C. 已经开始用 Claude Code / Codex
- D. 已经开始 Multi-Agent
- E. 已经全自动放飞了 😂

