让几个AI智能体一起写代码,这件事本身已经不难了。难的是让它们写出来的东西能拼在一起,真正跑起来。
设想一个很常见的分工:一个智能体负责规划任务,一个写前端,一个写后端,再来一个跑测试。每个角色各司其职,理论上还能并行推进,看起来应该更快。但问题恰恰出在这里——让多个智能体各自生成代码相对容易,让它们产出的代码彼此兼容,要难得多。
举个具体的例子。让前端智能体和后端智能体一起做一个任务管理应用。前端智能体做出了漂亮的待办列表,它期待接口返回一个 assignedUser 字段。而后端智能体实现接口时,用的字段名是 assignee。
两个智能体都完成了任务,都报告成功。但应用跑不起来。
这个例子很小,却指向一个更大的问题:每个智能体单独看都干得不错,整个系统却依然失败。而且这类问题不会因为换了更强的模型、或者把提示词写得更详细就自动消失。真正的挑战在于协调。
先想工作流,再想智能体
设计多智能体系统时,很容易一上来就定义角色:一个规划者拆解需求,一个前端智能体写 React 代码,一个后端智能体搭接口,一个测试者检查实现,一个审查者找 bug。这是合理的起点,但更该先回答的问题是:工作怎么从一个阶段流到下一个阶段?
在决定需要几个智能体之前,先搞清楚一个功能从想法变成可用软件,中间要经过什么。一个简单的开发流程大致是这样:需求 → 规划 → 定义接口契约 → 前端与后端并行 → 测试 → 审查 → 交付。
注意这里的一个细节:前端和后端可以并行,但前提是接口契约已经定义好。没有共享契约,每个智能体就只能各自做假设。它们独立做的假设越多,后面需要返工的量就越大。所以更合理的顺序是先想工作流,再想智能体。
并行来自任务结构,不是智能体数量
拿任务管理应用来说,可以拆成五个任务:需求、接口契约、前端、后端、集成测试。前端和后端不需要互相等待,它们只需要等接口契约。契约一就绪,两个任务就能同时开始。
一个简单的调度器就能判断哪些任务可以运行:当某个任务的所有依赖都已完成时,它才具备运行资格。真实实现里还要跟踪运行中、失败的任务,处理重试,防止多个执行者抢同一个任务。关键在于,不需要手动协调每一步来告诉智能体何时开始,让依赖图来决定就行。
并行应该来自工作本身的结构,而不是单纯因为手头有多个智能体可用。
还有一个值得警惕的问题:智能体说"完成了",不等于任务真的完成了。设想后端智能体返回一个结果,状态是已完成,摘要写着实现了任务分配接口,测试显示通过。看起来没问题。但如果它根本没跑测试呢?如果它跑错了命令呢?如果测试失败了,而它误读了输出呢?
系统不应该完全依赖智能体对自己工作的描述,而应该自己去跑必要的检查、收集结果。比如依次执行类型检查、测试、构建,任何一步退出码不为零就判定未通过。区别很简单:智能体负责写代码,验证系统负责检查它能不能用。这不意味着测试能证明软件完全正确——它们做不到——但它提供了独立证据,而不是依赖模型的自信。
那失败的时候怎么办?假设前端期待返回 items 和 nextCursor,后端却返回了 data 和 total,集成测试失败。直接把错误丢回给前端智能体让它改,可能是错的——也许问题出在后端没有遵守约定好的契约。
在让智能体再改一次之前,工作流应该先判断到底哪里出了问题。一份有用的失败报告会包含任务编号、失败类别(实现缺陷、契约不匹配、测试缺陷、环境故障)、摘要和证据。这比一句笼统的报错有用得多,编排层可以据此决定是重试实现、重新审视契约、修测试,还是找开发者介入。自动重试也该设上限,同一个问题试了几次还在,系统就该停下来解释发生了什么,而不是无限生成代码。有时候智能体能做的最好的事,就是报告自己被卡住了。
多智能体开发真正有意思的地方,不是让智能体更自主,而是搭一个系统:每份工作都有明确目的,智能体共享同一套假设,并且我们能理解一个任务为什么成功或失败。这需要几样东西配合:能产出有用任务而非模糊指令的规划者、尊重依赖关系的调度器、保持实现一致的共享契约、受控的变更环境、产出真实执行结果的自动检查,以及交付前发现问题的审查流程。
这些想法在软件工程里都不新鲜。依赖图、CI 流水线、接口契约、隔离环境、代码审查,我们早就在用。变化在于,AI 智能体现在也参与到这些流程里,我们需要相应地设计周边系统。
不要一上来就追求让每个智能体完全自主。先做一个小工作流,让它可观测,看它在哪儿出问题,然后去改进那些真正造成问题的部分。
多智能体系统可以有用,尤其当任务边界清晰、包含若干独立工作时。但增加智能体数量,并不会自动让软件开发更快或更好。如果智能体之间不共享契约,如果它们的改动没有被正确集成,如果没有人验证结果,我们可能只是更快地制造错误。
更有用的问题不是我们能同时跑多少个智能体,而是:怎么把多个 AI 智能体的工作,变成一次我们真正信得过的软件变更?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.