Appearance
多 Agent 协同
基本原理
多 Agent 不是简单多开几个聊天窗口,而是把复杂任务拆成不同角色:规划者、检索者、分析者、执行者、评审者和报告者。它解决的是单模型在复杂任务中容易遗漏步骤、缺少复核、难以并行处理的问题。
协同模式
| 模式 | 结构 | 适合场景 |
|---|---|---|
| 主管-专家 | Supervisor 分派任务,专家执行,Reviewer 审查 | 技术报告、研究分析、工程方案 |
| 流水线 | 一个 Agent 输出作为下一个输入 | 文档解析、DIC/PIV 分析报告、合同审查 |
| 辩论评审 | 多个 Agent 产出候选结论,评审融合 | 高风险决策、技术路线比较 |
| 黑板系统 | 多个 Agent 读写共享工作区 | 知识图谱构建、跨部门协同 |
| 人机闭环 | 低风险自动执行,高风险由人确认 | 企业业务流程、采购、实验结论发布 |
工程视觉示例
| Agent | 职责 | 技术 |
|---|---|---|
| 数据 Agent | 读取图像、元数据、时间戳,检查缺帧 | OpenCV、Pandas |
| DIC/PIV Agent | 计算位移场、应变场或速度场 | DICe、OpenPIV、NumPy |
| 物理校验 Agent | 检查结果是否满足物理范围 | 规则、有限元/CFD 结果 |
| 知识图谱 Agent | 关联材料、工艺、历史实验和标准 | Neo4j、NetworkX |
| 报告 Agent | 生成图表、结论和下一步建议 | LLM、模板 |
Python 入口
python
agents = {
"data": lambda x: {"frames": "cleaned_frames", "meta": "experiment_meta"},
"analysis": lambda x: {"field": "displacement_or_velocity"},
"review": lambda x: {"status": "needs_manual_review" if x else "ok"},
}
state = agents["data"]("raw_experiment")
state.update(agents["analysis"](state))
state.update(agents["review"](state))
print(state)这个伪代码表达多 Agent 的数据流。正式实现可使用 LangGraph、AutoGen 或 CrewAI。
