HoRain云--LangChain 多 Agent
当一个任务太复杂单个 Agent 难以胜任时你可以创建多个各司其职的 Agent让它们像团队一样协作。为什么需要多 Agent单个 Agent 的问题system_prompt 太长会导致模型注意力分散工具太多会增加模型选择工具的出错概率不同类型的任务需要不同的专业知识和行为风格多 Agent 的方案每个 Agent 专注于一个领域通过协作完成复杂任务。方式 1子 Agent 作为工具将 Agent 编译成 CompiledStateGraph然后作为一个工具注册给父 Agent实例from dotenv import load_dotenvload_dotenv()from langchain.tools import toolfrom langchain.agents import create_agentfrom langchain.chat_models import init_chat_modelfrom langchain.messages import HumanMessagemodel init_chat_model(deepseek:deepseek-v4-flash, temperature0)# 子 Agent 1天气专家tooldef get_weather(city: str) - str:查询天气data {杭州: 晴25°C, 北京: 多云18°C}return data.get(city, f{city}: 数据暂缺)weather_agent create_agent(modelmodel,tools[get_weather],nameweather_expert, # 名字用于标识和日志system_prompt你是天气专家专门回答天气相关问题。回答要简洁。,)# 子 Agent 2计算专家tooldef calculate(expression: str) - str:计算数学表达式result eval(expression, {__builtins__: {}}, {})return f{expression} {result}math_agent create_agent(modelmodel,tools[calculate],namemath_expert,system_prompt你是数学专家专门进行数学计算。回答要简洁。,)# 父 Agent协调者# 将子 Agent 作为工具注册tooldef ask_weather_expert(question: str) - str:向天气专家咨询天气相关问题。Args:question: 关于天气的问题result weather_agent.invoke({messages: [HumanMessage(contentquestion)]})return result[messages][-1].contenttooldef ask_math_expert(question: str) - str:向数学专家咨询数学计算问题。Args:question: 数学计算问题result math_agent.invoke({messages: [HumanMessage(contentquestion)]})return result[messages][-1].contentcoordinator create_agent(modelmodel,tools[ask_weather_expert, ask_math_expert],system_prompt你是协调助手。根据用户问题选择合适的专家- 天气相关问题 → 使用 ask_weather_expert- 数学计算问题 → 使用 ask_math_expert- 如果同时涉及多个领域依次咨询各个专家,)# 测试复合问题result coordinator.invoke({messages: [HumanMessage(content杭州今天天气怎么样如果温度是 25 度换算成华氏度是多少公式华氏度 摄氏度 × 9/5 32)]})print(result[messages][-1].content)运行结果根据天气专家的查询杭州今天晴天气温25°C。 换算成华氏度25 × 9/5 32 77°F。 所以杭州今天25°C相当于77°F天气晴好。方式 2用 name 参数区分 Agent当你将子 Agent 作为工具嵌入时设置 name 参数有助于追踪消息来源实例# name 参数的作用# 1. 编译后的图中使用该名称# 2. 作为子图节点嵌入父图时使用该名称# 3. 所有 AI 消息被标记为该名称agent create_agent(modelmodel,tools[...],namecustomer_service, # 给 Agent 命名)方式 3Middleware 实现 Agent 路由更复杂的多 Agent 场景可以通过 Middleware 实现动态路由实例from langchain.agents.middleware import before_model# 定义不同专家使用的工具集general_tools [tool_a, tool_b]admin_tools [tool_c, tool_d]before_modeldef route_by_user_role(state, runtime):根据用户角色动态切换可用工具context runtime.contextif context is None:return Noneuser_role context.get(user_role, user)# 不同角色看到不同的工具if user_role admin:available_tools general_tools admin_toolselse:available_tools general_tools# 注意before_model 不能直接修改 tools# 需要配合 wrap_model_call 或 request.override 来实现return None多 Agent 架构模式模式结构适用场景协调者模式一个父 Agent → 多个子 Agent 工具任务类型明确可分类接力模式Agent A 的输出 → Agent B 的输入流水线式处理生成→审核→润色辩论模式多个 Agent 并行输出 → 汇总决策需要多角度分析的问题多 Agent 系统增加了复杂度和 Token 消耗。不要为了多 Agent而多 Agent——先用单个 Agent 良好设计的 system_prompt 和 Middleware 解决问题。只有当确实需要领域隔离或独立上下文时才引入多 Agent。

相关新闻

系统规划与管理师-云原生系统建设规划与实践案例

系统规划与管理师-云原生系统建设规划与实践案例

一、引言云原生是基于云计算技术架构的软件设计、开发、部署和运行的方法论体系,核心包含微服务、容器、DevOps、持续交付四大核心要素,是软考高级系统规划与管理工程师 IT 战略规划、信息系统架构领域的重要考点,本章在历年考试中分值占比 4…

2026/7/14 0:33:20阅读更多 →
系统规划与管理师-云原生系统规划核心考点解析

系统规划与管理师-云原生系统规划核心考点解析

一、引言云原生是软考高级系统规划与管理工程师考试中云服务规划模块的核心考点,本章分值占比 6-8 分,题型以客观选择题为主,核心考察概念辨析、架构特征匹配、技术场景应用三类内容。 从发展脉络来看,云原生概念起源于 2010 年 P…

2026/7/14 0:33:20阅读更多 →
VEXIoT:基于AI多智能体的物联网自主漏洞利用框架

VEXIoT:基于AI多智能体的物联网自主漏洞利用框架

VEXIoT:基于AI多智能体的物联网自主漏洞利用框架 论文原网页地址:[https://arxiv.org/html/2607.09653v1] 摘要 物联网设备受硬件算力限制、固件长期不更新、默认配置不安全等因素影响,普遍存在大量安全漏洞。现有渗透测试工具高度依赖人工…

2026/7/14 0:33:20阅读更多 →
DXR光线追踪入门:从核心概念到实战,掌握DirectX Ray Tracing开发

DXR光线追踪入门:从核心概念到实战,掌握DirectX Ray Tracing开发

1. 项目概述:从光栅化到光线追踪的跨越 如果你和我一样,是从D3D11甚至更早的固定管线时代一路摸爬滚打过来的图形程序员,那么第一次接触D3D12的DirectX Ray Tracing(DXR)时,那种既兴奋又头疼的感觉一定不陌…

2026/7/14 22:01:11阅读更多 →
Pandas多维聚合实战:金融风控中的高效分析模式

Pandas多维聚合实战:金融风控中的高效分析模式

1. 项目概述:为什么“多维聚合”不是Pandas进阶技巧,而是业务分析的生存技能我在银行风控部门干了七年,从刚毕业写SQL查数的分析师,到带三个人小团队做反欺诈模型的数据架构师。这七年里,我亲手重构过四套核心报表系统…

2026/7/14 22:01:11阅读更多 →
纯C手写SVD分解实现,单文件无依赖,带详细注释适合边学边调

纯C手写SVD分解实现,单文件无依赖,带详细注释适合边学边调

本文还有配套的精品资源,点击获取 简介:这个资源包只包含一个svd.c文件,用标准C语言从零实现矩阵奇异值分解(SVD),不调用任何外部数学库或BLAS/LAPACK。所有计算基于double类型浮点数,支持任…

2026/7/14 22:01:11阅读更多 →
STM32F103实测可用的AT25160A SPI EEPROM驱动工程包(含初始化、读写、擦除完整代码)

STM32F103实测可用的AT25160A SPI EEPROM驱动工程包(含初始化、读写、擦除完整代码)

本文还有配套的精品资源,点击获取 简介:一套开箱即用的STM32F103驱动AT25160A串行EEPROM工程,已在Keil MDK5环境下实测通过。包含SPI外设底层驱动(spi.c/h),支持模式0和模式3;AT25160A专用操…

2026/7/14 22:01:10阅读更多 →
R语言绘制专业级人口金字塔图:原理、避坑与实战

R语言绘制专业级人口金字塔图:原理、避坑与实战

1. 项目概述:为什么人口金字塔不是“画个三角形”那么简单?人口金字塔——这三个字在数据可视化圈里,几乎和“柱状图”“折线图”一样基础。但你真以为它只是把男女人数左右一摆、年龄上下一排,再调个颜色就完事了?我用…

2026/7/14 22:01:10阅读更多 →
MATLAB医学图像分割工具包:支持ENO/WENO格式的水平集法边界提取实现

MATLAB医学图像分割工具包:支持ENO/WENO格式的水平集法边界提取实现

本文还有配套的精品资源,点击获取 简介:专为视网膜等医学图像设计的MATLAB水平集分割工具包,提供完整的边界提取与区域分割功能。内置多种高精度数值格式:ENO1、ENO2、ENO3及WENO,覆盖法向量演化、曲率计算、自适应…

2026/7/14 21:56:10阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

更多请点击: https://intelliparadigm.com 第一章:Cursor数据库安全红线概览 Cursor 作为一款基于 AI 的智能编程助手,其本地数据库(SQLite 存储)承载着用户代码片段、会话历史、自定义规则及敏感上下文信息。理解其安…

2026/7/14 0:03:18阅读更多 →
【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

更多请点击: https://codechina.net 第一章:Notion AI写作辅助的底层能力边界认知 Notion AI 并非通用大语言模型的直接封装,而是基于 Llama 系列与自研微调模型构建的轻量化推理服务,其输入上下文窗口严格限制在 8192 token&…

2026/7/14 0:03:18阅读更多 →
AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:03:18阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →