自定义agent-langGraphy编排
自定义Agent原理、LangGraph状态编排核心、多Agent协作架构、完整工业级实战代码、生产级调优逐层深入写成一篇逻辑闭环、细节拉满、可直接落地的高级技术博客和上一篇中级RAG文章形成完整进阶体系。高级AI Agent实战自定义Agent、LangGraph状态编排、多Agent协作工业级落地全解前言当你掌握 RAG调优、LCEL链路编排 后你会发现传统Chain与基础Agent存在不可逾越的天花板。传统开发的三大瓶颈普通Chain流程固化固定线性执行无法根据中间结果动态决策分支、循环重试、终止任务。内置AgentOpenAI Tools Agent黑盒不可控无法自定义思考逻辑、无法干预执行步骤、异常无法捕获、无法做复杂任务拆解。单Agent能力混沌一个Agent既要检索、又要计算、又要写作、又要审核职责混乱、幻觉严重、任务超长易崩溃。LangGraph 就是为解决以上问题而生的高级编排框架它把AI应用从「函数调用」升级为 有状态、可循环、可分支、可自愈、可多角色协作 的智能体系统。本文定位 LangChain 高级进阶覆盖企业生产最核心三大能力从零手写自定义Agent脱离框架黑盒完全可控思考工具流程LangGraph 状态机编排核心原理状态、节点、边、条件分支、循环多Agent协作架构角色拆分、任务分发、互相校验、最终收敛输出读完本文你可以独立开发智能数据分析机器人、自动编程Agent、自主调研Agent、审核校对Agent、复杂业务自动化流程。一、为什么必须学 LangGraph高级与中级分水岭1.1 普通LCEL Chain的本质prompt | llm | parser• 无状态每一次调用独立不保存中间数据• 无分支只能从头到尾线性跑完• 无循环失败不能重试、缺数据不能自我补全• 无决策模型不能决定下一步该做什么1.2 LangGraph 的本质大模型 状态机LangGraph 不是替代 LCEL而是 LCEL的超集升级。核心能力让AI拥有记忆、拥有流程、拥有自主决策能力。LangGraph 四大核心基石State 状态全局容器存储对话、中间结果、任务进度、异常信息Node 节点每一个独立执行单元LLM思考、工具调用、校验、写入文件Edge 边节点流转关系顺序执行 / 条件分支 / 循环跳转Router 路由LLM根据状态自主判断下一步执行哪个节点一句话总结LCEL 是「固定流水线」LangGraph 是「可自主决策的智能工作流」。二、基础铺垫LangGraph 核心概念深度拆解2.1 状态 State最核心传统应用只有「输入输出」LangGraph 全程携带全局状态。状态可以自定义字段常见• messages对话历史• query用户原始问题• context检索上下文• result最终结果• error错误日志• step当前执行步骤状态全局共享、节点读写、持久化保存是实现循环、重试、多步骤任务的根本。2.2 节点 Node节点就是一个 Python 函数输入 State返回更新后的 State。所有业务逻辑全部拆解成节点• 思考节点LLM决策• 工具节点检索、计算、爬虫• 校验节点结果合规性检查• 汇总节点整合输出2.3 边 Edge两种流转方式普通边A → B固定顺序执行条件边A → 根据返回结果动态跳转到 B/C/DAI自主路由2.4 循环能力Agent智能的关键LangGraph 原生支持 While循环式工作流思考 → 工具执行 → 校验结果 → 不满足再次思考 → 直至达标这就是「自我修正、自我迭代、自主完成复杂任务」的底层原理。三、高级能力一从零手写【自定义Agent】脱离黑盒市面上所有教程都在用 create_react_agent 快速创建Agent但这是封装好的黑盒。高级开发者必须 手写完整Agent流程完全掌控思考、工具选择、参数解析、执行、结果汇总、重试逻辑。3.1 自定义Agent完整架构自主执行闭环获取当前全局状态LLM思考是否需要调用工具调用哪个工具参数是什么解析模型输出校验参数合法性执行对应工具更新状态判断是否需要继续迭代 / 直接输出答案3.2 可直接上线手写极简自定义 Agent依赖安装pip install langgraph langchain langchain-openai python-dotenv完整代码无任何黑盒封装from dotenv import load_dotenvfrom typing import TypedDict, Annotated, Sequenceimport operatorfrom langchain_core.messages import BaseMessage, HumanMessage, AIMessage, ToolMessagefrom langchain_openai import ChatOpenAIfrom langchain_core.tools import toolfrom langgraph.graph import StateGraph, START, ENDload_dotenv()1. 自定义全局状态class AgentState(TypedDict):messages: Annotated[Sequence[BaseMessage], operator.add]need_tool: bool2. 自定义工具tooldef calculator(expression: str) - str:“”“数学计算工具用于计算复杂公式Args:expression: 数学表达式字符串“””return str(eval(expression))tools [calculator]tool_map {t.name: t for t in tools}3. 初始化模型llm ChatOpenAI(model“gpt-3.5-turbo”, temperature0)llm_with_tool llm.bind_tools(tools)---------------------- 自定义节点 ----------------------思考节点模型判断是否调用工具def think_node(state: AgentState):res llm_with_tool.invoke(state[“messages”])need_tool len(res.tool_calls) 0return {“messages”: [res], “need_tool”: need_tool}工具执行节点def tool_node(state: AgentState):tool_calls state[“messages”][-1].tool_callstool_msgs []for call in tool_calls:tool tool_map[call[“name”]]result tool.invoke(call[“args”])tool_msgs.append(ToolMessage(contentresult, tool_call_idcall[“id”]))return {“messages”: tool_msgs}---------------------- 自定义路由核心 ----------------------def route_node(state: AgentState):if state[“need_tool”]:return “tool”return END---------------------- 构建状态流 ----------------------workflow StateGraph(AgentState)workflow.add_node(“think”, think_node)workflow.add_node(“tool”, tool_node)workflow.add_edge(START, “think”)workflow.add_conditional_edges(“think”, route_node, {“tool”:“tool”, END:END})workflow.add_edge(“tool”, “think”) # 工具执行完再次思考形成循环agent workflow.compile()测试ifname “main”:res agent.invoke({“messages”: [HumanMessage(“3的5次方加上120除以5等于多少”)]})print(res[“messages”][-1].content)3.3 自定义Agent优势生产级价值完全透明每一步思考、调用、结果均可日志记录可控可干预可拦截工具参数、校验输入、过滤危险操作可自定义重试工具失败自动重试、参数错误自动修正可植入业务逻辑可在任意节点加权限校验、数据清洗、格式转换中级开发者会用现成Agent高级开发者会手写、会改造、会掌控Agent全流程四、高级能力二LangGraph 状态编排深度原理4.1 状态叠加机制 operator.addmessages: Annotated[Sequence[BaseMessage], operator.add]这是 LangGraph 最关键的设计• 不是覆盖状态而是 增量追加状态• 每一轮思考、工具结果都会保存历史• 天然支持多轮迭代、上下文永久延续4.2 分支与循环精髓普通代码的循环是代码写死的LangGraph的循环是 AI自主决策的• 模型认为信息不足 → 继续调用工具• 模型认为信息足够 → 直接结束输出4.3 工业级常用编排模式思考-工具-思考 循环模式通用智能Agent串行多节点流水线分步任务拆解→执行→校验→汇总并行多节点同时调用多个工具、并行检索条件分支路由不同问题走不同业务链路五、高级能力三多Agent协作系统企业最高级应用5.1 为什么需要多Agent单Agent弊端• 角色混杂、人格不稳定• 长任务容易遗忘前置步骤• 无法自我审查、容易幻觉• 复杂任务拆解能力弱多Agent核心思想分而治之把一个复杂大任务拆分为 多个专职专业Agent各司其职、互相协作、互相校验。5.2 工业级标准多Agent角色架构最通用、落地最多的「团队协作架构」调度AgentLeader任务拆解、流程控制、分发任务、汇总结果执行AgentWorker检索、计算、调研、数据获取审核AgentReviewer校验结果真实性、完整性、逻辑性、纠错总结AgentSummary整合多份结果输出最终规范答案5.3 多Agent流转逻辑用户需求→ Leader拆解任务→ Worker执行获取信息→ Reviewer校验纠错→ 不达标返回重执行 / 达标进入总结→ Summary输出最终结果闭环迭代、自带审核、自带纠错准确率远超单Agent。六、工业级实战完整可运行「多Agent协作系统」场景智能自动调研问答系统• Leader任务拆解规划• Researcher联网/知识库调研取证• Reviewer内容审核纠错• Summary整合输出报告完整可直接运行代码from dotenv import load_dotenvfrom typing import TypedDict, Sequence, Annotatedimport operatorfrom langchain_core.messages import BaseMessage, HumanMessage, SystemMessagefrom langchain_openai import ChatOpenAIfrom langgraph.graph import StateGraph, START, ENDload_dotenv()llm ChatOpenAI(model“gpt-3.5-turbo”, temperature0.2)全局状态class MultiAgentState(TypedDict):messages: Annotated[Sequence[BaseMessage], operator.add]task_plan: strresearch_content: strreview_result: stris_ok: bool---------------------- 1. Leader调度Agent任务拆解 ----------------------def leader_agent(state: MultiAgentState):prompt “”你是任务规划专家请对用户问题拆解成清晰的调研执行步骤。只输出任务计划不要回答问题本身。“”plan llm.invoke([SystemMessage(contentprompt),HumanMessage(contentstate[“messages”][-1].content)])return {“task_plan”: plan.content}---------------------- 2. Research调研Agent执行任务 ----------------------def research_agent(state: MultiAgentState):prompt f“”你是信息调研专家根据以下任务计划完成信息搜集与作答【任务计划】{state[‘task_plan’]}请给出详细、完整、有理有据的调研内容。“”res llm.invoke(prompt)return {“research_content”: res.content}---------------------- 3. Review审核Agent纠错校验 ----------------------def review_agent(state: MultiAgentState):prompt f“”你是严格的审核专家检查调研内容是否贴合用户问题 2. 信息完整 3. 逻辑通顺 4. 无幻觉编造用户问题{state[‘messages’][-1].content}调研内容{state[‘research_content’]}如果合格输出OK。如果不合格指出问题并给出修改建议。“”res llm.invoke(prompt)is_ok res.content.strip() “OK”return {“review_result”: res.content, “is_ok”: is_ok}---------------------- 4. Summary总结Agent最终输出 ----------------------def summary_agent(state: MultiAgentState):prompt f“”根据合格的调研内容整理成通顺、完整、正式的最终答案{state[‘research_content’]}“”res llm.invoke(prompt)return {“messages”: [res]}---------------------- 条件路由审核不通过则重调研 ----------------------def review_route(state: MultiAgentState):if state[“is_ok”]:return “summary”return “research”---------------------- 构建多Agent流程图 ----------------------workflow StateGraph(MultiAgentState)注册所有角色节点workflow.add_node(“leader”, leader_agent)workflow.add_node(“research”, research_agent)workflow.add_node(“review”, review_agent)workflow.add_node(“summary”, summary_agent)固定流程workflow.add_edge(START, “leader”)workflow.add_edge(“leader”, “research”)workflow.add_edge(“research”, “review”)条件分支审核通过汇总不通过重跑调研workflow.add_conditional_edges(“review”, review_route, {“research”:“research”, “summary”:“summary”})workflow.add_edge(“summary”, END)multi_agent_graph workflow.compile()运行测试ifname “main”:result multi_agent_graph.invoke({“messages”: [HumanMessage(“详细分析LangGraph多Agent的企业落地价值”)]})print(“最终输出\n”, result[“messages”][-1].content)这套架构的工业级价值天然防幻觉专人审核、有错重改超长任务稳定分工明确不会混乱可无限迭代优化可新增Agent角色翻译、格式化、检索、代码执行可团队扩展从4个Agent扩展为数十个Agent的智能团队七、生产级高级调优与避坑指南7.1 状态设计原则状态字段单一职责不要大杂烩字段增量存储所有消息使用 operator.add及时清理冗余超长流程可阶段性压缩历史消息7.2 循环陷阱规避必须设置终止条件防止死循环最大迭代次数限制避免计费爆炸工具异常捕获兜底7.3 多Agent协作最佳实践角色绝对解耦每个Agent只做自己职责内的事统一输出规范每个Agent输出格式标准化单向数据流Leader驱动避免互相抢占7.4 企业真实落地场景• 自动需求分析代码生成代码审核• 知识库深度问答调研→检索→对比→审核→总结• 智能客服工单自动处理• 论文/报告自动撰写、校对、润色• 数据分析、图表生成、结论输出自动化八、进阶学习路线从高级到专家当前阶段自定义Agent 基础多Agent协作专家阶段1子图嵌套SubGraph、复杂流程复用专家阶段2Agent通信协议、主动交接、任务委派专家阶段3记忆分层短时长期向量记忆专家阶段4Agent评估体系、自动迭代优化九、全文总结中级RAG → 高级Agent 能力跃迁中级能力解决「知识问答精准度」问题RAG调优高级能力解决「自主思考、自主执行、复杂任务自动化」问题LangGraph多AgentRAG 让AI会读书Agent 让AI会干活。真正能落地商业化、替代人工的AI应用全部基于 LangGraph 多Agent架构。从固定链路 → 状态流转 → 自主决策 → 多角色团队协作这就是大模型工程化的最高进阶路径。

相关新闻

【JAVA课程设计/毕业设计】基于 SpringBoot+Vue 的家居智能化运维与设备台账管理系统 物联网架构下智能家居综合管理系统【附源码、数据库、万字文档】

【JAVA课程设计/毕业设计】基于 SpringBoot+Vue 的家居智能化运维与设备台账管理系统 物联网架构下智能家居综合管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 13:39:27 阅读更多 →
如何在5分钟内掌握Avidemux2:免费开源视频编辑器的终极入门指南

如何在5分钟内掌握Avidemux2:免费开源视频编辑器的终极入门指南

如何在5分钟内掌握Avidemux2:免费开源视频编辑器的终极入门指南 【免费下载链接】avidemux2 Avidemux2, simple video editor 项目地址: https://gitcode.com/gh_mirrors/avi/avidemux2 Avidemux2是一款功能强大且完全免费的开源视频编辑器,支持W…

2026/7/28 13:39:27 阅读更多 →
如何用ServerPackCreator实现Minecraft服务器包自动化生成?

如何用ServerPackCreator实现Minecraft服务器包自动化生成?

如何用ServerPackCreator实现Minecraft服务器包自动化生成? 【免费下载链接】ServerPackCreator Create a server pack from a Minecraft Forge, NeoForge, Fabric, LegacyFabric or Quilt modpack! 项目地址: https://gitcode.com/gh_mirrors/se/ServerPackCreat…

2026/7/28 13:38:27 阅读更多 →

最新新闻

算力与电力协同优化:Matlab多目标算法实践

算力与电力协同优化:Matlab多目标算法实践

1. 项目背景与核心挑战 算力与电力作为数字经济的双引擎,正在经历前所未有的深度耦合。我在参与某大型数据中心能效优化项目时,亲历了这样一个场景:当东部地区某算力集群在晚高峰时段全力运转时,当地配电网的电压波动超过了安全阈…

2026/7/28 16:13:52 阅读更多 →
筑牢出厂质量最后防线,IACheck AI报告审核智能核查报告错漏,助力企业规避合规风险

筑牢出厂质量最后防线,IACheck AI报告审核智能核查报告错漏,助力企业规避合规风险

在制造业竞争持续升级的今天,产品品质已经成为企业赢得市场认可的重要基础。从原材料采购,到生产加工,再到最终产品交付,每一个环节都离不开严格的质量管理。而作为产品质量的重要证明,出厂质检报告更是承担着连接企业…

2026/7/28 16:13:52 阅读更多 →
git新建项目流程

git新建项目流程

问题我们新建立项目直接执行 了 git push -u 项目名 master ,其实这个是出现了几个错误,我们今天规整下如何建立到使用:打开我们git:找到最上面的 号,选择new project输入我们需要填写的内容:然后选择create project…

2026/7/28 16:13:52 阅读更多 →
乐鑫ESP32-C6-WROOM-1U模组:搭载Wi-Fi 6与Zigbee的RISC-V无线新秀

乐鑫ESP32-C6-WROOM-1U模组:搭载Wi-Fi 6与Zigbee的RISC-V无线新秀

最近上手折腾了一段时间乐鑫的ESP32-C6-WROOM-1U模组,这款基于RISC-V架构的新一代无线模组确实有不少值得聊的地方。它最吸引人的地方,就是把Wi-Fi 6、蓝牙5.3、Zigbee和Thread这几种主流无线协议全塞进了一个小封装里,对智能家居和物联网产品…

2026/7/28 16:13:52 阅读更多 →
画布项目着色器(CanvasItem shaders):Godot的2D着色器

画布项目着色器(CanvasItem shaders):Godot的2D着色器

译者注:直译为***画布项目着色器***下文中将意译成2D着色器画布项目着色器(CanvasItem shaders) 2D着色器用于绘制Godot中的所有的2D元素,包括所有继承于CanvasItem的节点以及所有的GUI元素。 相对于3D着色器,2D着色器要简单一些,内置函数也比…

2026/7/28 16:13:52 阅读更多 →
网易后端面试全解析:从211本科到一线大厂的实战指南

网易后端面试全解析:从211本科到一线大厂的实战指南

这次我们来看一个211本科同学面试网易后端岗位的真实经历。这位同学经历了4轮面试,从简历筛选到技术面再到HR面,整个过程可以说是被“拷打”到怀疑人生。但最终的结果如何?更重要的是,从这段经历中,我们能提炼出哪些对求职者真正有用的信息? 对于正在准备后端开发岗位,…

2026/7/28 16:12:52 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻