2024 年初的某天,我在写一个用户注册接口。输入 function register,Copilot 补全了函数签名和参数列表。我按了 Tab,觉得省了十秒钟。
2025 年底,类似的需求又来了。这次我在终端里打了一句话:"给项目加用户注册,要邮箱验证和密码强度校验,顺便写好测试。" 我去倒了杯水。回来的时候,Agent 已经改了 8 个文件,测试全绿,等我 review。
从省十秒到省半小时,这中间发生了什么?
第一阶段:聪明的 Tab 键(2021-2022)
GitHub Copilot 在 2021 年刚出来的时候,我身边的反应分两种:一种是"卧槽这也行",另一种是"这不就是高级自动补全吗"。
说实话,两种都对。
你写一行注释 # 计算两个日期之间的工作日天数,Copilot 能生成一个完整的函数实现。这确实比 IDE 原来的关键字补全强了几个量级。但它的能力边界也很明确:
# 你写了注释
# 计算两个日期之间的工作日天数
# Copilot 生成了这个
def count_business_days(start_date, end_date):
business_days = 0
current = start_date
while current <= end_date:
if current.weekday() < 5:
business_days += 1
current += timedelta(days=1)
return business_days
看起来不错,但问题来了。它不知道你的项目里已经有个 DateUtils 工具类。它不知道你用的是 arrow 而不是 datetime。它甚至不知道你的项目是 Python 2 还是 Python 3。
每次补全都是一次独立的猜测,像一个只看眼前这页纸的实习生。聪明,但没有全局视野。
第二阶段:可以聊天的顾问(2023)
ChatGPT 在 2023 年彻底改变了开发者和 AI 的交互方式。从"按 Tab 接受建议"变成了"用人话描述问题"。
"这段代码有并发问题,帮我看看" "把这个 REST API 改成 GraphQL" "这个正则表达式我看不懂,能解释一下吗"
GitHub Copilot Chat、JetBrains AI Assistant 纷纷在 IDE 里加了聊天窗口。你可以选中一段代码,右键问 AI,让它解释、重构、找 bug。
这确实比自动补全有用多了,但用了几周之后,一个新的烦恼出现了:复制粘贴。
AI 在聊天窗口里给你生成了一段 50 行的代码。然后呢?你得自己找到正确的文件,找到正确的位置,小心翼翼地粘贴进去,确保缩进没乱,确保 import 都加了。如果 AI 的方案涉及三四个文件的改动,你就要来回复制粘贴好几次,每次都得人工确认上下文有没有对齐。
本质上,这个阶段的 AI 是一个远程顾问。你描述问题,它给方案,但所有脏活累活——打开文件、定位代码、粘贴修改、跑测试确认——全是你自己干。
第三阶段:能动手的队友(2024)
2024 年是分水岭。AI 从"告诉你怎么改"变成了"直接帮你改"。
这一年出现的 Cursor Composer 和 Aider 做了一件看似简单但意义重大的事:让 AI 直接修改你的文件。
用 Cursor 的典型场景是这样的:你按 Cmd+I 打开 Composer,输入需求——比如"给 User 模型添加 email 验证字段,更新迁移文件,修改注册接口"。Composer 会扫描你的项目结构,找到相关的 model、migration、controller、test 文件,然后同时生成这四个文件的修改。你在 diff 视图里逐个审查,觉得没问题就一键接受。
从"我告诉你改哪里"到"你告诉我你改了哪里"——主客关系反转了。
让这个跳跃成为可能的,是三个技术突破同时到位:
项目级的上下文理解。 模型不再只看当前打开的文件。通过对整个代码库建索引,AI 能理解目录结构、模块关系、数据库 schema、API 定义之间的关联。你说"加个字段",它知道要改哪五个地方。
多文件协同编辑。 一个需求牵扯多个文件是常态。添加一个 API 字段,可能要动 model、serializer、view、test、文档。Agent 能规划出完整的修改方案,保证文件之间的一致性,而不是改完 model 忘了改 serializer。
工具调用能力。 这是真正让"Agent"这个词名副其实的变化。AI 不只是生成文本,还能执行动作——读文件、搜代码、跑命令、运行测试。它有了手和脚,不再只有嘴。
这一年的主要玩家:
| 产品 | 形态 | 亮点 |
|---|---|---|
| Cursor Composer | IDE | diff 预览,和编辑器深度整合 |
| Aider | 终端 CLI | 自动 Git 提交,轻量 |
| Cline | VS Code 插件 | 可自主执行命令 |
| Windsurf | IDE | Cascade 流式编辑 |
第四阶段:独立干活的初级工程师(2025-2026)
如果说第三阶段的 Agent 像一个需要你逐步指导的实习生,第四阶段则更像一个能接任务独立交付的初级工程师。
2025 年发布的 Claude Code 代表了这个转变。它跑在终端里,你给它一个目标——不是一步步的指令,而是一个目标。
比如你说:"项目的测试覆盖率太低了,给 service 层所有公共方法补上单元测试。" 然后它自己干:扫描项目找到所有 service 文件,分析每个公共方法的输入输出,生成测试用例,创建测试文件,运行测试确认全部通过,最后提交一个 commit。整个过程你可以去干别的事。
2026 年 5 月,Cursor 发布 Composer 2.5,把这条路推得更远:
- 后台运行:Agent 可以在云端独立工作,不需要你的 IDE 一直开着
- 并行处理:同时处理多个不相关的编码任务
- 自我修复循环:写代码、运行、发现报错、修复、再运行,自己闭环,直到测试通过
把四个阶段放在一起看,变化的脉络很清晰:
代码补全: 写一行 → 补全一行
对话编程: 描述问题 → 给出方案(你来执行)
多文件编辑: 描述需求 → 修改文件(你来审查)
自主开发: 描述目标 → 规划+编码+测试+调试(你来验收)
每一步,人的角色都在往上移:从打字员,到执行者,到审查者,到验收者。
这一切背后的推动力
技术进步很少是单一因素驱动的。AI 编程工具的进化,至少有三股力量在同时起作用。
模型本身变强了,而且是量级级的变强。 从 GPT-3.5 到 Claude Opus 4,上下文窗口从 4K token 扩展到 200K token。4K 的时候模型只能"看"到你当前文件的一部分,200K 意味着它可以一次读完一个中型项目的核心代码。推理能力的提升更难量化,但体感上,今天的模型能理解的业务逻辑复杂度和两年前完全不是一回事。
工具调用协议标准化了。 Agent 能力的核心不是"生成更好的文本",而是"能和外部世界交互"。Anthropic 的 Tool Use、OpenAI 的 Function Calling,以及更进一步的 MCP(Model Context Protocol),让 AI 有了读写文件、执行命令、调用 API 的标准化接口。没有这一层,Agent 就只是一个能说会道但没法动手的聊天机器人。
信任边界在持续外移。 最早我们只信任 AI 补全一行代码。后来信任它写一个函数。再后来信任它同时改多个文件。现在有些团队开始信任它独立完成整个 feature 分支的开发。这种信任不是盲目的——它建立在 diff 审查、测试覆盖、权限控制这些安全网之上。但方向是明确的:人的角色从"亲手写每一行"转向"定义目标、审查产出"。
说说局限——Agent 现在还做不好什么
写到这里如果让你觉得 AI Agent 已经可以替代开发者了,那我得踩个刹车。2026 年的编程 Agent 有几个很硬的天花板:
架构决策不行。 Agent 擅长在已有架构内完成具体任务,但不擅长做架构级的判断。它能帮你写微服务,但不能帮你决定该不该用微服务。"我们应该把这个单体拆成什么样的服务边界"——这种需要权衡业务发展、团队能力、运维成本的决策,目前还得靠人。
跨系统排查做不了。 当一个 bug 涉及前端、后端、消息队列、数据库、CDN 之间的时序交互,Agent 的排查能力远不如有经验的工程师。它读不了网络包,理解不了分布式系统里那些只在特定时序下才复现的诡异问题。
领域知识是短板。 金融系统的合规要求、医疗软件的隐私标准、嵌入式开发的硬件约束——这些深度领域知识,Agent 顶多知道个大概,离"可以信赖"还差得远。
需求本身经常是模糊的。 "做个好用的搜索"——什么叫好用?全文检索还是模糊匹配?要不要搜索建议和拼写纠错?移动端和桌面端的体验要一样吗?Agent 需要清晰的需求描述,但真实世界的需求往往要经过反复讨论才能明确。这件事本身就需要经验和判断力。
那开发者该怎么办?
我不喜欢"AI 会取代程序员"这种说法,太粗暴了。更准确的表述是:开发者的工作重心在上移。
当 Agent 可以处理"写一个 CRUD 接口并补上测试"这种任务时,开发者的价值就不在写 CRUD 上了。价值往上走:
- 架构设计——系统怎么拆,技术怎么选
- 需求拆解——把业务人员的模糊想法变成 Agent 能执行的具体描述
- 代码审查——看 Agent 的输出,判断质量、安全性、可维护性
- 系统集成——确保各个组件协同工作,处理边界情况
我自己现在的工作流大概是这样:
- 我定义需求和边界("做什么"和"不做什么")
- 看一眼 Agent 的执行计划,确认方向没跑偏
- Agent 写代码、跑测试
- 我审查改动,重点看安全相关和架构合理性
- 如果有问题,给反馈让 Agent 改
- 确认没问题,合并
关键是第 1 步和第 4 步——定义清楚要做什么,以及判断做出来的东西行不行。这两步目前没法自动化,也正是开发者经验的核心价值所在。
写在最后
从 2021 年 Copilot 第一次帮我补全一个函数签名,到今天 Agent 能独立交付一个功能模块,中间只过了五年。如果画一条曲线,它的斜率还在加速。
但有一件事从第一天到现在都没变:最终为代码负责的是人。
Agent 写的代码出了线上事故,不会有一个 AI 来背锅。签字的是你,review 的是你,点 merge 的也是你。工具变了,这个责任没变。
想清楚这一点,就不会恐慌,也不会盲目乐观。该用的时候大胆用,该审查的时候认真看。就这么简单。
这是 AI Agent 系列的第三篇。前两篇: