# 文档说明 在《快速构建单体智能体》中我们我们已经快速构建并运行了单体智能体,在本章节我们将进一步将其拆分成多个智能体协作的方式。 # 从单智能体到多智能体 样板工程地址:[demo_startup_app_with_multi_agents](../../../../examples/startup_app/demo_startup_app_with_multi_agents) 对于比较复杂的场景,单智能可能不足以完成任务,需要多个智能体协作。 以样板工程的保险问答为例,由于用户的问题可能比较发散,单智能体的回答有时候会产生偏离。在部分专家经验的驱动下,对于这种场景我们将其拆分为策划、执行与表达3个智能体,并使用保险智能顾问智能体将其串联。 ## 子智能体 使用单体智能体构建章节中所获得的经验,我们分别建立策划、执行与表达3个智能体 策划智能体(拆解问题): [question_rewrite_agent.yaml](../../../../examples/startup_app/demo_startup_app_with_multi_agents/intelligence/agentic/agent/agent_instance/insurance_planning_agent.yaml) 执行智能体: [question_planning_agent.yaml](../../../../examples/startup_app/demo_startup_app_with_multi_agents/intelligence/agentic/agent/agent_instance/insurance_executing_agent.yaml) 表达智能体: [insurance_expressing_agent.yaml](../../../../examples/startup_app/demo_startup_app_with_multi_agents/intelligence/agentic/agent/agent_instance/insurance_expressing_agent.yaml) ## 主智能体 [insurance_consult_agent.yaml](../../../../examples/startup_app/demo_startup_app_with_multi_agents/intelligence/agentic/agent/agent_instance/insurance_consult_agent.yaml) 主智能体将几个智能体和工具按照一定的逻辑串接起来,这里要注意的是参数的传递,agent_input作为线程上下文可以存储中间产物给后面的智能体使用,每个智能体的出入参字段是可以按照需求自定义,建议不要重复。 ## 运行测试 运行 [insurance_consult_pro_agent_test.py](../../../../examples/startup_app/demo_startup_app_with_multi_agents/intelligence/test/insurance_multi_agent_test.py) **原问题改写后的问题是:** ```text 如何将保险产品A的基础版升级到升级版或尊享版?升级的具体流程和条件是什么? ``` **智能体 question_planning_agent 执行结果为:** ```json { "sub_query_list": [ "如何从保险产品A的基础版升级到更高版本?", "保险产品A升级版和尊享版的升级流程是什么?", "保险产品A升级时是否有额外的费用或条件需要满足?" ] } ``` **insurance_consult_agent 最终执行结果:** ```text 保险产品A在保障期间内不支持直接升级。如果您想要从当前的基础版升级到升级版或尊享版,需要在当前保险期结束后,重新选择更高版本的保险产品进行投保。 请注意,升级时可能会有不同的保费标准,具体费用需依据您投保时的年龄和所选版本确定。 ```