当 AI 开始参与开发:软件研发为何会走向 Agent 协作|从人类协作到 Agent 协作系统
当执行者开始改变之后,软件研发的协作对象也在发生变化。
从人类之间的分工,到人类与 Agent 的协同执行,一种新的研发协作结构正在逐渐形成。
在使用 AI 编程工具一段时间之后,很多开发者都会慢慢产生一种有点奇怪的感觉。
有些任务,好像不再是“自己完成”的。
例如你给出一个目标:完成一个功能改动,或者修复某个问题。
AI 会在代码仓库中定位相关模块,生成修改方案并提交实现;接着运行测试或构建任务,根据反馈继续调整代码,直到结果基本可用。
如果回头看这个过程,很难再把它简单理解为“使用工具”。
更像是一种新的工作方式:
开发者开始和 AI 一起完成任务。
最开始的时候,这种变化看起来只是效率提升。
但如果再往前推一步,就会发现一个更深的问题:
如果 AI 不只是工具,而是执行者,那么软件研发的协作结构会发生什么变化?
要理解这个问题,可能需要先回到一个更基础的事实:
过去的软件研发,本质上是一种人类协作系统。
过去的软件研发,本质上是“人类协作”
在传统的软件研发体系中,协作关系其实非常简单。
产品经理、设计师、前端工程师、后端工程师、测试工程师。
每个角色承担不同职责,通过接口、文档和会议进行协作。
整个系统默认的前提是:
所有执行任务的人,都是开发者。
因此,大量的软件工程方法论,本质上都是围绕人类协作效率设计的:
- 代码规范
- 架构设计
- 需求评审
- 敏捷流程
- 团队分工
这些机制的核心目标,其实只有一个:
让不同的人类开发者能够协作完成复杂的软件系统。
但现在,执行者开始发生变化
随着 AI 编程工具逐渐参与到研发流程中,一个新的变量开始出现。
在越来越多的研发任务中,AI 已经不再只是提供代码建议,而是开始作为执行者参与完成一个任务闭环。
它可以围绕目标在代码仓库中理解上下文、定位改动点、生成实现、调用工具验证结果,并根据反馈继续迭代。
如果从任务结构来看,其实发生了一件很简单的事情:
过去:
任务 → 开发者 Developer
现在开始变成:
任务 → Developer + Agent
在某些场景下,甚至可能直接变成:
任务 → Agent
这种变化在单个任务层面看起来并不显著。
但如果放在整个研发系统中,就会产生一个更大的问题:
如果执行者不再只有人类,软件研发的协作结构还会保持原样吗?
协作对象正在发生变化
在传统研发体系中,协作关系可以简单概括为:
Human ⇔ Human
例如:
产品和研发协作,
前端和后端协作,
研发和测试协作。
但当 AI 开始参与执行之后,新的协作关系开始出现。
图 1:协作迁移模型
首先出现的是:
Human ⇔ Agent
开发者不再只是使用工具,而是在和 AI 一起完成任务。
例如:
你定义目标与约束,Agent 在代码仓库中生成并提交实现;
当测试或运行结果出现问题时,Agent 根据反馈继续修改并再次验证。
这已经是一种新的协作方式。
接着会出现另一种协作关系:
Agent ⇔ Tool
AI 不只是生成代码,还可以直接调用开发工具链,
例如:
运行测试、执行构建、读取仓库结构或提交代码。
这意味着,它已经不只是生成实现,而是开始参与整个研发执行过程。
当任务变得更加复杂时,还可能出现第三种关系:
Agent ⇔ Agent
不同 Agent 负责不同任务,
例如:
规划任务、生成代码、执行测试、进行代码评审。
这时候,协作结构可能变成:
换句话说:
软件研发系统中,协作的主体开始发生变化。
人类角色也开始发生变化
如果继续观察这种变化,还会发现另一件事情:
人类开发者的角色也在逐渐发生变化。
在传统研发体系中,人类开发者通常承担两个职责:
一是理解问题,
二是完成实现。
但当 AI 可以承担越来越多执行工作之后,人类的角色开始发生转移。
开发者越来越多地在做另外一件事:
表达任务。
例如:
描述需求目标、定义系统约束、拆解任务结构、判断实现是否合理。
换句话说,人类开始更多地扮演一种新的角色:
任务设计者(Task Designer)。
协作结构为什么会发生变化
如果把这些变化放在一起,就会发现一件事情。
当人类、Agent 和工具同时参与执行时,系统必须解决一个问题:
任务应该如何表达,才能被不同执行者理解?
这其实就是上一篇文章《当 AI 开始参与开发之后,软件工程正在重新学习“如何表达”》讨论的问题:
中间表示(IR)。
当任务可以被结构化表达之后:
不同执行者就可以基于同一份任务表示工作。
也就是说:
中间表示开始成为新的协作接口。
如果把这种协作关系进一步抽象,就会发现软件研发正在形成一种新的协作结构。
图 2:Agent 协作结构
从协作迁移到流程迁移
当协作结构改变之后,研发流程自然也会发生变化。
传统研发流程通常是:
但在 Agent 参与执行之后,流程更可能变成:
也就是说,软件研发流程正在逐渐演化为一个自动化系统。
结语
如果说中间表示改变的是“任务如何表达”,那么接下来改变的,就是“任务如何被完成”。
当执行者开始从人类扩展到 Agent,软件研发的协作对象也随之改变。
协作不再只是 Human ⇔ Human,而逐渐变成 Human ⇔ Agent ⇔ Agent ⇔ Tool。
在这种结构下,人类开始更多地负责表达任务,Agent 系统负责执行任务,而自动化系统则逐渐承担验证与反馈。