如何在一个 Next.js 应用中编排 7 个 AI Agent(附完整代码)

本文是一篇详细的实战教程,作者分享了如何在单个 Next.js 应用中同时运行 7 个专属 AI Agent,并实现它们之间的协作与编排。

核心挑战包括:如何分配任务给不同 Agent、如何在多个并发 Agent 之间同步状态、如何优雅处理单个 Agent 的错误而不影响全局、以及如何控制并发以避免 API 限流。

作者基于 React Server Components 和 Streaming API 构建了轻量的 Agent 调度器,不依赖 LangChain 等重型框架。文章附有完整的 GitHub 代码示例,覆盖 Agent 注册、任务队列、结果聚合等核心模块,适合希望自己动手构建多 Agent 系统的开发者。

多 Agent 系统已经不再是学术概念,越来越多的开发者开始在生产环境中运行多个协作 AI Agent。但「如何在一个应用里优雅地管理 7 个 Agent」,很少有文章给出完整的工程答案。这篇教程填补了这个空白,作者从零讲起,给出可直接复用的完整代码。

为什么是 7 个 Agent?

作者并非随意选了一个数字。7 个 Agent 对应了一个典型 AI 助手产品的核心能力矩阵:**搜索 Agent**(实时信息检索)、**总结 Agent**(长文压缩)、**代码生成 Agent**(自动写代码)、**事实核查 Agent**(交叉验证结论)、**个性化 Agent**(用户偏好管理)、**任务规划 Agent**(拆解复杂目标)、**意图分类 Agent**(判断请求路由到哪个 Agent)。这 7 个角色涵盖了从感知到执行的完整 AI 工作流链路。

架构设计:调度器 + 专属 Agent

作者的核心思路是「轻量调度器(Lightweight Scheduler)+ 专属 Agent(Specialized Agent)」。每个 Agent 负责单一职责,调度器负责任务路由、状态聚合、错误隔离。整体基于 Next.js 的 React Server Components 和 Streaming Response,**不引入 LangChain、AutoGen 等重型依赖**,依赖的外部库仅有 OpenAI SDK 和 Redis 客户端。

这个选择非常务实:LangChain 的抽象层虽然功能全面,但在 Next.js 环境下与 RSC 的兼容性存在摩擦,且包体积大、调试困难。原生实现虽然需要多写几百行代码,但换来了完全可控的行为和更低的运行开销。

任务分配:基于意图分类的路由

系统入口是意图分类 Agent,它用一个轻量模型(gpt-4o-mini)对用户输入做快速语义分类,输出一个 JSON 对象,标明应该激活哪些专属 Agent 以及各自的优先级权重。核心代码约 50 行,逻辑清晰。

多个 Agent 可以**并行激活**,结果通过 Server-Sent Events(SSE)实时流式返回给前端。用户能在页面上看到各个 Agent 的进度状态和分块输出,体验类似 ChatGPT 的打字机效果,但背后是多个并发流的聚合。

状态管理:共享 Context Store

所有 Agent 共享一个全局 Context Store,基于 Redis(生产环境)或 Node.js 内存 Map(开发环境),每个 Agent 读写自己命名空间下的键值。Agent 间通过事件总线(Event Bus)传递消息,避免直接耦合——例如事实核查 Agent 完成后,会向总线发布一个事件,总结 Agent 订阅这个事件后才开始工作,自然形成了有向无环图(DAG)的执行顺序。

这个设计的好处是每个 Agent 不需要知道其他 Agent 的存在,只需要关心自己订阅的事件和发布的结果,极大降低了维护复杂度。

错误处理:熔断 + 降级

每个 Agent 都有独立的错误边界(Error Boundary),失败时降级返回默认响应而不是崩溃整个系统。作者还实现了超时熔断(Circuit Breaker):单个 Agent 超过 10 秒未返回时,调度器自动将其标记为超时,跳过并记录告警日志,保证整体响应不会因单点阻塞而无限等待。

作者特别强调:**熔断状态需要持久化到 Context Store**,这样多个并发请求共享同一个熔断状态,避免在同一 Agent 反复出错时不断重试浪费 API 额度。

并发控制:Token Bucket 限流

面对 OpenAI/Anthropic API 的速率限制,作者基于 Token Bucket 算法实现了请求限流器,每个令牌桶对应一个模型的 API 配额。7 个 Agent 的并发请求先向令牌桶申请令牌,获得令牌后才真正发起 API 调用,超出配额的请求进入优先级队列等待,高优先级(如意图分类 Agent)的请求优先出队。

这套机制在压测下表现良好:100 个并发用户同时使用时,系统没有出现 429 错误,响应延迟也控制在可接受范围内。

前端集成:RSC + Streaming

Next.js 的 React Server Components 天然支持流式渲染,作者利用这个特性将每个 Agent 的输出封装成独立的 `<Suspense>` 块。用户看到的界面由多个独立加载的区域组成,每个区域代表一个 Agent 的输出——这比等待所有 Agent 都完成再一次性渲染的体验好得多。

工程启示

这个项目最大的价值不在于代码本身,而在于它验证了一个工程路线:**Next.js 全栈 + 原生 SSE + 轻量 Redis,足以支撑生产级多 Agent 系统**,不需要引入复杂的 Agent 框架。随着 MCP(Model Context Protocol)标准化推进,多 Agent 系统的互操作性将进一步提升,这套轻量架构的扩展空间也非常充裕。对于正在考虑构建 AI 原生产品的开发者来说,这是一份值得精读的工程参考。