10-workflow-multi-agent 多 Agent 工作流:复杂任务如何拆解和编排
LangChain4j 进阶实战:第 10 篇,多 Agent 工作流:复杂任务如何拆解和编排前言单个 Agent 能解决很多问题,但不是所有问题都适合让一个 Agent 一口气完成。比如用户说:我下周去杭州出差三天,有客户会议,也有半天城市步行,帮我从衣橱里搭几套衣服。这个任务其实包含很多子任务:提取时间、地点、场景。查询天气。理解会议和步行两个场景的穿搭要求。检索用户衣橱。匹配衣服。组合多套方案。校验衣服 ID 是否真实存在。生成最终解释。如果全部交给一个 Prompt,容易出现几个问题:Prompt 越写越长。模型漏掉步骤。工具调用混乱。输出格式不稳定。失败后无法定位是哪一步出了问题。这时候就需要 Workflow,把复杂 AI 任务拆成多个步骤,每个步骤交给合适的 Agent。1. 什么是 AI Workflow普通 Agent 调用是:用户输入 - Agent - 输出Workflow 是:用户输入 - Step 1: 场景分析 Agent - Step 2: 数据检索 Agent - Step 3: 方案生成 Agent - Step 4: 结果校验 Agent - 最终输出我的理解是:Agent 解决“一个角色如何完成一个任务”,Workflow 解决“多个角色如何协作完成一个流程”。AI Workflow 和传统工作流不完全一样。传统工作流强调确定性,例如审批、支付、发货;AI Workflow 既有确定性步骤,也有模型生成步骤,所以更要关注上下文传递、结构化输出、失败重试和结果校验。2. 什么时候需要拆成工作流不是所有 AI 功能都要上 Workflow。下面这些场景才值得拆:场景是否建议 Workflow原因简单问答不建议一个 Agent 足够单文档总结不一定任务边界清晰多文档分析建议需要检索、归纳、引用穿搭推荐建议需要天气、衣橱、场景、输出校验简历优化建议可拆成提取、匹配、改写、评分客诉处理建议需要订单、政策、用户画像、处理建议自动下单/支付必须谨慎涉及写操作和确认一个简单判断标准:如果一个 Prompt 里出现了 5 个以上明确步骤,就应该考虑 Workflow。3. 工作流定义怎么设计最小工作流定义可以是一个 JSON:{"version":"1.0","name":"穿搭推荐工作流","description":"根据用户衣橱、天气和场景生成穿搭推荐","steps":[{"id":"scene_analyze","name":"场景分析","agentCode":"scene_analyze_agent","order":1},{"id":"clothing_match","name":"服装匹配","agentCode":"clothing_match_agent","order":2},{"id":"outfit_generate","name":"方案生成","agentCode":"outfit_generate_agent","order":3}]}对应 Java 对象:publicclassWorkflowDefinition{privateStringversion;privateStringname;privateStringdescription;privateListWorkflowStepsteps;publicListWorkflowStepgetSortedSteps(){returnsteps.stream().sorted(