多智能体AI编排系统:从设计到实践
最近抽时间做了一件挺有意思的事:用多智能体(Multi-Agent)的方式,搭建了一个模拟互联网公司协作流程的 AI 编排系统。
先说说为什么想做这个。现在单次 LLM 调用的能力已经很强了,但真正落到实际工作中,你会发现几个痛点:一次性输出缺少迭代打磨、缺乏角色视角导致内容泛化、没有质量控制机制。而多智能体编排,恰恰能解决这些问题。
设计思路:模拟真实团队协作
我想象了这样一个场景——输入一句模糊的产品需求,系统里三个 AI 角色自动协作,输出一份完整的 PRD 和项目计划。
三个角色的设定是这样的:
- Amy —— 总架构师,负责分发任务、审核质量、控制流程
- Sam —— 产品经理,从模糊需求中提炼 PRD
- Tom —— 项目经理,基于 PRD 制定可落地的项目计划
协作流程也很直接:用户输入需求 → Amy 给 Sam 派活 → Sam 写 PRD → Amy 审核(不通过就打回修订) → Amy 给 Tom 派活 → Tom 写计划 → Amy 审核 → Amy 最终总结。
就这样,一条完整的交付链路就跑起来了。
遇到的第一个坑:CrewAI 装不上
说点实际的。我最初是想用 CrewAI 框架来做的,毕竟专业的事情交给专业的工具。结果遇到了一个尴尬的问题——我的 Python 版本是 3.14.3,CrewAI 依赖的 numpy<2 没有对应的预编译 wheel,Windows 上又缺 C 编译器,从源码构建直接失败了。
卡了一阵之后,决定自己用 OpenAI SDK 手搓编排逻辑。事实证明,核心编排代码也就一两百行,反而对整体流程有了更深的掌控。
架构设计
系统分四个层次:
main.py(入口) → crew.py(编排) → tasks.py(任务) → agents.py(Agent 定义)
↓
DeepSeek API
每个层次各司其职,agents.py 定义角色身份和系统提示词,tasks.py 实现具体任务函数,crew.py 编排完整的审核-修订闭环,main.py 作为入口调度一切。
关键是这个审核-修订闭环。Amy 的审核输出必须包含 [决策]APPROVED 或 [决策]REVISE 的结构化标记,系统解析这个标记来决定是放行还是打回重做,最多允许 3 轮修订。这模仿了真实工作中的评审机制——不是一次性交付,而是多轮打磨。
几个有意思的案例
系统完成后我跑了三个案例来验证效果:
案例 1:AI 代码审查工具
输入”一款给研发团队用的AI代码审查工具”。Sam 给出的 PRD 把目标用户细分为后端开发、前端开发、Tech Lead、QA 四类,P0 功能定位在自动 PR Review、代码规范检查、安全漏洞扫描。Tom 的项目计划排了 6 个 Sprint,从 AST 解析引擎一路迭代到 CI/CD 集成。一次通过审核。
案例 2:企业内部知识库搜索
输入”企业内部知识库AI搜索工具”。Sam 区分了三类用户场景,Tom 选择了 Milvus + Embedding 的技术栈,4 个 Sprint 排期合理。一次通过。
案例 3:钉钉 CLI + Hermas 智能机器人(含乱码)
这个案例最有趣。输入”使用钉钉cli+hermas做个智能机器人”后,Windows 控制台把中文给截断了,Sam 接收到的主题变成了乱码。但它居然根据上下文推断出用户意图,把 hermas 解读为 Hermes(消息队列框架),输出了一份 Hermes CLI 管理与监控工具 的 PRD。虽然猜测方向可能有偏差,但这种”容错推理”能力着实让我意外。
Tom 的计划也很专业——选型 Go + Cobra CLI + bubbletea,4 Sprint / 8周,20+ 个工作包的 WBS 分解,5 个风险项加应对策略。同样一次通过。
三个案例全部一次过审,说明在目前的 prompt 设计下,Sam 和 Tom 的输出质量已经比较稳定了。
总结几点体会
第一,多智能体的价值在于”审核-修订闭环”。 单次 LLM 调用做不到的事情,多轮迭代打磨可以做到。这不是技术上的革命,而是流程上的优化。
第二,角色专业化确实有效。 当每个 Agent 专注于自己的领域时,输出质量明显高于一个通用的提示词让它一次性完成所有工作。Amy 的严格审核视角、Sam 的产品思维、Tom 的执行视角,各自不可替代。
第三,框架不是必需品。 虽然最初想用 CrewAI 没成功,但自己手写编排逻辑反而让整个系统的控制力更强。如果 CrewAI 能支持 Python 3.14,我会再用它试试,但自己写的这套也能打。
第四,AI 的”容错推理”能力比想象中强。 输入含乱码时,Agent 能根据不完整信息推断用户意图,这让我对 AI Agent 的实际落地更有信心了。
完整代码在 crewai_scenario/ 目录下,有兴趣的可以直接跑起来试试。