

多智能体系统常见的错误设计是:
一个任务 -> 多个 Agent -> 大家自由交流 -> 生成最终结果这种方式在简单 Demo 中可能有效,但进入生产环境后,很容易出现:
更工程化的设计是把多智能体系统拆成:
任务编排
->
受控通信
->
状态管理
->
结果评估
->
人工确认或提交以连锁零售促销活动为例:
Planner
-> 拆解活动目标和任务依赖
Customer Agent
-> 输出目标客群和活动建议
Inventory Agent
-> 输出库存、门店和执行约束
Copy Agent
-> 生成活动文案草稿
Evaluator
-> 合并结果并检查冲突需要注意的是,Agent 的职责不能只写在名称里,还要限制它的输入和输出。
例如库存 Agent 的输出可以包含:
{
"stock_limit": 1200,
"covered_stores": ["S001", "S002"],
"source_time": "2026-08-06T10:00:00Z",
"status": "confirmed"
}但不能让库存 Agent 直接修改活动预算或活动文案。
建议每条消息带上:
task_id
parent_task_id
sender
receiver
message_type
version
status
source
timestamp
expires_at其中 version 很关键。
如果 Evaluator 收到两个库存结论:
它不能根据消息到达顺序判断,而应该根据数据时间和来源确认哪个版本有效。
两个 Agent 给出的数据不一样。
解决方法是检查数据源、时间和范围。
一个 Agent 想扩大活动范围,另一个 Agent 受预算限制。
解决方法是让 Planner 提前定义优先级,而不是让模型临时争论。
一个 Agent 没有库存访问权限,不能通过别的 Agent 间接拿到完整库存数据。
旧结果晚到,覆盖了新结果。
解决方法是使用版本号、乐观锁和提交状态。
死锁往往不是模型“卡住”,而是任务图设计出了环。
错误示例:
文案 Agent 等库存 Agent
库存 Agent 等文案 Agent正确方式是先由 Planner 生成 DAG:
Planner
-> 客群分析
-> 库存检查
客群分析 + 库存检查
-> 文案生成
文案生成
-> Evaluator执行层还需要:
Evaluator 的作用不是把两份答案拼在一起,而是验证:
最终结果最好包含:
结论
采用依据
未采用结果
未解决冲突
需要人工确认的事项可以把任务状态设计成:
CREATED
PLANNED
RUNNING
WAITING
CONFLICT
RETRYING
EVALUATING
APPROVED
HUMAN_REVIEW
FAILED
CANCELLED不要只使用“成功”和“失败”两个状态。
例如某个 Agent 返回结果,但结果与库存约束冲突,它应该进入 CONFLICT,而不是被标记为成功。
它适合帮助交付伙伴创建和运营智能体、管理知识库、Skills、MCP Server 和评估规则。
如果客户需要真正的企业级多智能体运行环境,还需要进一步配置:
今天的新多智能体案例没有因 MCP 鉴权阻塞而完成实际创建,因此本文的促销协同链路是设计示例,不是已发布生产方案。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。