当前位置: 首页 > news >正文

掌握在 LangChain 中将 Agent 转换成 Workflow 的技巧

目录

前言

一、为什么 Agent 会成为项目中的问题

问题1:执行路径不可预测

问题2:Token 消耗较高

问题3:业务逻辑难以沉淀

二、什么是 Workflow

三、如何判断应该使用 Agent 还是 Workflow

适合 Workflow

适合 Agent

四、Agent 转 Workflow 的核心思路

五、使用 LangGraph 构建 Workflow

第一步:定义状态

第二步:定义节点

第三步:构建工作流

六、条件路由:Workflow 的进阶玩法

七、Workflow 与 Agent 混合架构

八、生产环境最佳实践

原则一:优先 Workflow

原则二:Agent 只负责决策

原则三:节点单一职责

原则四:状态统一管理

总结


在很多开发者刚接触 LangChain 时,往往会被 Agent 的强大能力所吸引。

例如:

用户: 帮我查询订单状态

Agent 会自动:

思考 ↓ 选择工具 ↓ 调用接口 ↓ 分析结果 ↓ 返回答案

这种自主决策能力确实非常强大。

但是随着项目规模扩大,很多团队逐渐发现:

  • Agent 的执行过程不可控

  • 调试困难

  • 流程不透明

  • 响应结果不稳定

  • 生产环境难以维护

因此在 LangChain 1.x 时代,官方越来越推荐:

能 Workflow 的场景尽量 Workflow,只有需要自主决策时才使用 Agent。

而 LangGraph 的出现,也让 Agent 到 Workflow 的转换变得更加容易。

本文将结合实际案例,讲解如何将 Agent 思维转换成 Workflow 思维。


一、为什么 Agent 会成为项目中的问题

假设我们有一个客服 Agent。

用户输入:

帮我查询订单并告诉我物流状态

传统 Agent 的执行过程如下:

看起来非常智能。

但实际上存在几个问题。


问题1:执行路径不可预测

Agent 每次都会重新思考。

例如:

第一次:

订单工具 ↓ 物流工具 ↓ 返回结果

第二次:

物流工具 ↓ 订单工具 ↓ 返回结果

第三次甚至可能:

订单工具 ↓ 订单工具 ↓ 物流工具

对于开发人员来说:

难以复现 难以测试 难以排查

问题2:Token 消耗较高

Agent 每执行一步都会进行推理。

例如:

Thought Action Observation

循环多次。

典型流程:

思考 ↓ 调用工具 ↓ 观察 ↓ 再次思考 ↓ 再次调用工具

产生大量 Token 消耗。


问题3:业务逻辑难以沉淀

例如:

订单查询 ↓ 物流查询 ↓ 退款查询

实际上流程已经固定。

但 Agent 每次仍然需要重新推理。

这是一种资源浪费。


二、什么是 Workflow

Workflow 可以理解为:

提前设计好的执行流程

例如:

用户提问 ↓ 查询订单 ↓ 查询物流 ↓ 整理结果 ↓ 返回用户

这里没有自主决策。

而是固定执行。

对应架构如下:

相比 Agent:

Workflow 的优点非常明显。


三、如何判断应该使用 Agent 还是 Workflow

这是很多开发者最容易困惑的问题。

我的经验是:

适合 Workflow

如果业务流程明确:

查询订单 查询物流 查询退款 发送通知

那么应该使用 Workflow。

因为:

执行稳定 成本低 可测试 可维护

适合 Agent

如果业务流程未知:

例如:

帮我规划上海三日游

模型需要决定:

查询天气 查询景点 查询酒店 规划路线

此时才适合 Agent。


可以简单记忆:

确定流程 → Workflow 未知流程 → Agent

四、Agent 转 Workflow 的核心思路

很多团队最初架构:

一个超级Agent 处理所有事情

例如:

agent.invoke( "帮我查询订单并申请退款" )

随着业务增长:

订单查询 物流查询 退款申请 发票开具 售后处理

全部塞进一个 Agent。

最终会变成:

超级大脑 ↓ 超级混乱

正确做法是拆分节点。

例如:

订单节点 物流节点 退款节点 通知节点

形成工作流。

架构如下:

这就是典型的 Workflow 思维。


五、使用 LangGraph 构建 Workflow

LangGraph 的本质:

State + Node + Edge

即:

状态 + 节点 + 流程边

第一步:定义状态

from typing import TypedDict class State(TypedDict): question: str order_info: str logistics_info: str

状态负责在节点之间传递数据。


第二步:定义节点

订单节点:

def query_order(state): state["order_info"] = ( "订单已支付" ) return state

物流节点:

def query_logistics(state): state["logistics_info"] = ( "运输中" ) return state

第三步:构建工作流

from langgraph.graph import StateGraph builder = StateGraph(State) builder.add_node( "order", query_order ) builder.add_node( "logistics", query_logistics )

连接流程:

builder.add_edge( "order", "logistics" )

编译:

graph = builder.compile()

执行:

graph.invoke( { "question": "查询订单状态" } )

这样就完成了 Workflow。


六、条件路由:Workflow 的进阶玩法

实际业务中并不是所有流程都固定。

例如:

用户查询订单

走订单流程。


用户申请退款

走退款流程。


此时可以使用条件路由。

示例:

def route(state): if "退款" in state["question"]: return "refund" return "order"

添加条件边:

builder.add_conditional_edges( "router", route )

这样 Workflow 就拥有了部分 Agent 的灵活性。


七、Workflow 与 Agent 混合架构

很多企业最终采用:

Workflow + Agent

混合方案。

原因很简单:

并非所有场景都适合 Workflow。

例如:

固定流程 ↓ Workflow

开放性决策 ↓ Agent

示例:

用户问题 ↓ Workflow路由 ↓ 知识库查询 ↓ Agent分析 ↓ 结果返回

这种模式目前非常流行。


示例代码:

def rag_node(state): docs = retriever.invoke( state["question"] ) state["docs"] = docs return state

Agent 节点:

def agent_node(state): result = agent.invoke( state["question"] ) state["answer"] = result return state

这样既保证了流程可控。

又保留了 Agent 的智能能力。


八、生产环境最佳实践

经过多个项目实践后,我总结出以下经验。

原则一:优先 Workflow

如果流程明确:

不要直接上Agent

先设计 Workflow。


原则二:Agent 只负责决策

不要让 Agent:

查订单 查物流 查库存 查退款

全部处理。

应该:

Workflow负责执行 Agent负责决策

原则三:节点单一职责

每个节点只做一件事。

例如:

订单节点 物流节点 退款节点

不要:

订单+物流+退款

写在同一个节点中。


原则四:状态统一管理

所有中间结果:

state["order"] state["logistics"] state["refund"]

统一存储。

不要在节点之间直接传参。


总结

在 LangChain 早期,很多开发者喜欢使用 Agent 解决所有问题。

但随着项目规模扩大,大家逐渐发现:

Agent ≠ 最优解

真正稳定的生产系统往往采用:

Workflow + Agent

的组合架构。

其中:

Workflow 负责可控流程
Agent 负责智能决策

而 LangGraph 的出现,正好提供了从 Agent 向 Workflow 演进的最佳实践。

对于企业级项目而言,掌握 Agent 转 Workflow 的设计思路,比单纯学会调用 Agent 更重要。因为它决定了你的 AI 系统能否真正落地到生产环境,并长期稳定运行。

http://www.zskr.cn/news/1499242.html

相关文章:

  • 宁波蒂芙尼钻石高价回收攻略,经典款变现技巧 - 奢侈品交易观察员
  • 再次革新 .NET 的构建和发布方式(二)
  • 收的顶郑州名表中心:卡地亚、积家全系列高价回收 - 奢侈品回收评测
  • 长沙上门回收黄金靠谱吗?五家实测:安全、价格、流程全对比 - 奢侈品回收测评
  • 杭州拼多多代运营公司电话_杭州百推官方热线 13968060425 - 百推信源
  • 从“思考”到“行动”:具身智能技术突破与未来应用全景分析
  • 海口劳力士手表回收平台综合实力排名与实地测评 6家平台实测教你守住机芯价值 - 薛定谔的梨花猫
  • 全国冰川矢量数据(2024)
  • 放弃“流量收割”:B2B 企业如何构建合规高效的企微服务协同体系
  • 2026年6月水幕电影施工团队选哪家,公园喷泉/水幕电影/音乐喷泉/水泥假山/塑石假山/广场喷泉,水幕电影公司推荐 - 品牌推荐师
  • 2026年6月赤峰优质的楼梯踏步公司推荐,楼梯踏步/实木楼梯/复式楼梯/实木楼梯踏步/户外楼梯,楼梯踏步工厂有哪些 - 品牌推荐师
  • OpenAI 计划未来几周对 ChatGPT 进行“超级应用程序”改造,网站和 App 将迎变化
  • 2026年品质之选:气动通风蝶阀哪个厂家质量可靠、运行稳定? - 品牌推荐大师
  • 如何彻底改变GTA5线上体验:免费小助手的完整使用指南
  • sql层面语法的总结(mysql层面语法,主要侧重于sql的查询相关的信息量积累)
  • 黑龙江断桥铝窗品牌排行 实测性能与交付能力对比 - 起跑123
  • 2026年6月贴标机公司有哪些,平面贴标机/贴标机/分页贴标机/圆瓶贴标机/小型贴标机/高精度贴标机,贴标机厂家哪家好 - 品牌推荐师
  • 告别人工加班考评!在线考试 + 人才测评系统,轻松简化企业考核全流程 - 玖叁鹿
  • 3步实现抖音无水印批量下载:douyin-downloader开源工具全解析
  • COM3D2女仆调校器:实时修改游戏角色属性的终极解决方案
  • 金狮悠闲服,在家舒服、出门体面,2026新风尚~!
  • 随机访问(Random Access)
  • 抖音批量下载终极指南:告别水印,轻松获取高清素材
  • 卡诺图(Karnaugh Map)详解
  • 【JAVA毕设源码分享】基于springboot综合性旅游服务系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 北京出手黄金首饰指南:2026 奢二网免费上门当面验金交易安全 - 讯息早知道
  • 中式水墨公众号排版模板推荐:新手直接套用 - 一串葡萄
  • tox:Python 项目的测试与构建自动化工具
  • 抖音音频提取终极指南:免费开源工具5分钟搞定高效音乐素材收集
  • 橡胶材料Abaqus有限元分析有哪些关键要点