并行化核心:在任务处理过程中的独立模块,并行执行,这在调用API使用或者数据库时,对这种多少独立的请求的任务处理十分有效,能显著降低总体等待的时间。
并行化实现的条件:要求支持异步执行、多线程或多进程的框架(LangChain(通过|运算符设计带有并发分支的链或图结构来实现并发操作)/LangGraph(利用图结构,使得其在状态转换中执行多个节点,从而实现多并发操作)/Google ADK(其支持多个智能体并发运行)等框架均支持并行执行机制)
总之,并发操作使得智能体能在同样的时间内,执行更多的任务(独立查询、独立计算、调用API/工具、多个子智能体的操控、多模态数据的处理,多数据源处理),使得智能体的效率和响应速度提升
LangChain并行处理的逻辑模版:
python# 最小化版本 parallel_tasks = RunnableParallel(任务1, 任务2, 任务3) # 1. 定义并行任务 synthesis = "基于{结果1}{结果2}{结果3}生成回答" # 2. 定义综合模板 chain = parallel_tasks | synthesis | llm | parser # 3. 连接管道 result = await chain.ainvoke(输入) # 4. 异步执行①使用API创建并初始化一个LLM
②构件任务1、任务2到任务n的格式(提示模版|llm|字符串输出格式)
③将任务1到任务n的结果进行内容拼接
④将拼接的内容|提示模版|llm|字符输出格式,得到最终的结果连接到通信管道
⑤将通信管道中的内容进行获取
Google ADK对多智能体并行的逻辑模版:
python# 1. 定义并行研究员 researcher_1 = LlmAgent(name="研究员1", instruction="任务1", output_key="result1") researcher_2 = LlmAgent(name="研究员2", instruction="任务2", output_key="result2") # 2. 创建并行执行器 parallel_agent = ParallelAgent( sub_agents=[researcher_1, researcher_2] # 并行执行 ) # 3. 创建合并智能体 merger_agent = LlmAgent( instruction="基于{result1}和{result2}生成报告" # 读取结果 ) # 4. 创建顺序工作流 main_agent = SequentialAgent( sub_agents=[parallel_agent, merger_agent] # 先并行,后合并 )①创建各个子智能体的身份模版,用于适配专门的任务
② 创建一个并行触发器(可以选择性触发对应的并行子智能体),用于统一管理各个子智能体
③合并拼接子智能体处理后得到的结果内容,将合并的内容按照总结智能体进行处理
④创建顺序工作流,用于规范智能体整体上处理任务的逻辑
总之,多个子智能体,一个智能体并发触发器,一个内容合并处理智能体,一个流程处理逻辑智能体(先并行执行,后合并)
Agent学习——并行化模式
爱吃泡芙的小白白2026-01-08 11:34
相关推荐
花椒技术1 小时前
我们把 26 个接口自动化场景接进了 Agent,效果真是没想到!!MartinYeung52 小时前
[论文学习]自主性如何重塑个性化对LLM智能体隐私关切与信任的影响FellAveal3 小时前
【Go语言入门学习笔记】Part18.工作池与WaitGroup(也即协程池)菜鸟4 小时前
【论文学习】MICCAI 2024 || SGSeg:通过自引导机制实现胸部X光片语言引导分割的无文本推理lazy H4 小时前
Git clone 怎么用?克隆项目及常见问题完整教程菜鸟4 小时前
【论文学习】arxiv 2024 || RoSIS:基于鲁棒框架重新审视文本提示式手术器械分割笨鸟先飞的橘猫5 小时前
只会脚本语言的游戏后端自我提升之路——c++学习(开篇)我是大卫5 小时前
【图】一图理解LLM、LangChain、RAG、AI Agent、MCP、token、context、prompt、tool概念Z5998178416 小时前
c#软件开发学习笔记--Modbus-RTU通讯phltxy6 小时前
LangChain v1 Agent核心能力详解