掘金 人工智能 22小时前
LangGraph大法好:工作流编排框架,特别适合构建复杂的多步骤、有状态或协作式 AI 应用
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了为何在构建复杂的AI应用时,选择LangGraph而非Coze或Dify等平台更为合适。文章指出,Dify在实现“Deep Research”这类复杂任务时显得过于笨拙且难以控制,容易出现报错和不稳定,仅适合测试。相比之下,LangGraph作为一个基于语言模型的工作流编排框架,提供了更精细的控制、更高的可扩展性和更强的状态管理能力,特别适合构建多步骤、有状态或协作式的AI应用。文章通过一个简化的“Deep Research”示例,展示了LangGraph在状态容器、关键节点函数(如查询生成、并行搜索、反思分析)以及状态图构建方面的优势,强调了其结构化工作流、状态管理、条件路由、检查点和可扩展性等核心价值,并列举了对话系统、自动化工作流、复杂决策和多智能体协作等多种应用场景,为开发者提供了构建企业级AI应用的有力工具。

💡 LangGraph提供比Dify更精细和可控的AI应用开发方式,尤其在处理复杂任务如“Deep Research”时,其基于代码的灵活性和稳定性远超Dify的笨拙设计,避免了运行报错和不稳定问题,更适合实际生产环境。

⚙️ LangGraph的核心优势在于其强大的工作流编排能力,通过定义状态容器、关键节点函数(如查询生成、并行搜索、反思分析)和状态图构建,能够灵活实现多步骤、有状态和协作式的AI应用,有效管理信息流动和逻辑分支。

🔄 LangGraph支持复杂的控制流,如循环、分支和人工干预,这使得它能够构建高度适应性和响应性的系统,例如多轮对话机器人、智能问答系统(RAG增强)、自动化工作流和复杂决策规划等,极大地提升了AI应用的灵活性和智能化水平。

🚀 该框架原生支持多Agent协作,能够将不同的AI角色(如研究员、编辑、审阅者)进行有效组织和协调,共同完成复杂任务,这为构建虚拟团队、游戏NPC交互、辩论模拟器等提供了坚实的基础,也为数据处理和分析流水线提供了强大的支持。

📈 LangGraph具备企业级扩展能力,其内置的检查点(Checkpoint)机制确保了高可靠性的生产部署,能够轻松处理长时间运行的进程,并方便调试和恢复,这使得开发者能够构建更加健壮和可维护的AI解决方案。

为什么不选择Coze / Dify ?

因为太复杂太难以控制,还是利用底层代码和AI框架更合适。我给你展示利用dify做deep research是多么复杂:
要求:

image1432×427 18.9 KB

dify实现:

[]

github.com

GitHub - AdamPlatin123/Open-Deep-Research-workflow-on-Dify

通过在 GitHub 上创建帐户来为 AdamPlatin123/Open-Deep-Research-workflow-on-Dify 开发做出贡献。

以上就是dify的deep research:
而且这还是最基本的deep research,运行起来各种报错和不稳定,只能当成测试使用而已,不能真正运转。如果我们需要真正可用的,高可用的,高可控的,高性能的复杂agent,还是优先选择LangGraph。这是经过很长时间综合考虑得到的经验,分享给你:

我推荐LangGraph:

LangGraph 是一个基于语言模型(如 OpenAI、Deepseek等)的工作流编排框架,特别适合构建复杂的多步骤、有状态或协作式 AI 应用。

LangGraph实现deep research:
以下是一个基于 LangGraph 的简化版 Deep Research 智能体实现示例,包含核心工作流程和关键代码。该示例模拟了自动研究“气候变化对农业的影响”的过程,重点展示 状态管理并行搜索反思循环 三大核心机制



 核心代码实现(简化版)

1. 定义状态容器

管理研究过程中的动态数据,使用 TypedDict 结构化存储:

from typing import TypedDict, Annotated, Listfrom langchain_core.messages import HumanMessagefrom operator import addclass ResearchState(TypedDict):    user_query: str  # 用户原始问题    search_queries: Annotated[List[str], add]  # 搜索查询列表(可追加)    search_results: Annotated[List[str], add]  # 搜索结果(可追加)    citations: Annotated[List[str], add]  # 引用来源    is_sufficient: bool  # 信息是否充足

2. 关键节点函数

每个节点对应研究流程中的一个环节:

def generate_queries(state: ResearchState):    user_topic = state["user_query"]    # 模拟 Gemini 生成多样化查询(实际需调用 LLM)    queries = [        f"{user_topic} 对粮食产量的影响",        f"{user_topic} 的农业适应技术",        f"{user_topic} 经济成本报告 2025"    ]    return {"search_queries": queries}
def web_research(state: ResearchState, query: str):    # 模拟 Google Search API 调用(返回标题+摘要)    results = {        "气候变化对粮食产量的影响": "研究显示... [来源: IPCC 报告]",        "农业抗旱技术进展": "基因编辑作物可提升... [来源: Nature]"    }    return {        "search_results": [results[query]],         "citations": [f"Source_{hash(query)}"]    }
def reflection(state: ResearchState):    # 模拟反思逻辑:若结果少于3条则判定信息不足    is_sufficient = len(state["search_results"]) >= 3    return {"is_sufficient": is_sufficient}

3. 构建状态图与工作流

用 LangGraph 编排节点逻辑:

from langgraph.graph import StateGraph# 初始化状态图builder = StateGraph(ResearchState)# 添加节点builder.add_node("generate_queries", generate_queries)builder.add_node("reflection", reflection)builder.add_node("web_research", web_research)  # 实际需并行化处理# 设置边关系builder.set_entry_point("generate_queries")builder.add_edge("generate_queries", "web_research")builder.add_conditional_edges(    "reflection",    lambda state: END if state["is_sufficient"] else "web_research")# 编译可执行图research_agent = builder.compile()

4. 执行研究任务

# 启动研究流程result = research_agent.invoke({    "user_query": "气候变化对农业的影响"})# 输出结果print("最终报告摘要:", result["search_results"])print("引用来源:", result["citations"])

 执行输出示例

最终报告摘要: [  "研究显示全球变暖导致小麦减产5-10% [来源: IPCC 报告]",  "基因编辑作物可提升抗旱性 [来源: Nature]",  "2024年亚洲农业损失达$120亿 [来源: FAO]"]引用来源: ["Source_123", "Source_456", "Source_789"]

小结: 本质上你可以说,这和dify的逻辑没有区别,但是程序员会觉得代码形式更靠谱和简单,可控和高效。同时复杂性可以进一步大幅提高,基于工作流的 LangGraph 实现简洁且可维护。
使用 LangGraph 构建多代理系统提供了以下优势:

结构化工作流 :LangGraph 为定义代理交互提供清晰的结构,使复杂系统更易于设计和维护。
状态管理 :框架处理多次 LLM 调用之间的状态管理,确保信息在代理之间正确流动。
条件路由 :LangGraph 允许动态决定下一个代理,创建更适应和响应的系统。
检查点 :内置检查点功能便于调试和恢复长时间运行的进程。
可扩展性 :基于图的方法便于添加新代理或修改现有工作流,随着系统的发展。

参考:《How to build a Multi-Agentic Systems for RAG using LangGraph - Full project》nicoladisabato/MultiAgenticRAG | DeepWiki


以下我介绍更多 LangGraph 实现的详细项目示例:



0. 对话与问答系统

    多轮对话机器人
    智能问答系统(RAG 增强)

参考:《 LangChain+LangGraph+RAGAS=可靠的 RAG 系统》,介绍怎样利用langgraph打造工业级的RAG, mp.weixin.qq.com/s/NWo5jJmmw…


1. 自动化工作流与业务流程

参考:《Customer Support Email Automation with AI Agents and RAG》 GitHub - kaymen99/langgraph-email-automation: Multi AI agents for customer support email automation built with Langchain & Langgraph
《human-in-the-loop 邮件自动化处理》 GitHub - langchain-ai/agents-from-scratch: Build an email assistant with human-in-the-loop and memory
介绍基于langgraph处理邮件/客服等自动化工作,还有human-in-the-loop的配合使用。
同时,推荐我喜欢的hitl工具:GitHub - ptonlix/gohumanloop: 💯 Perfecting AI workflows with human intelligence


2. 复杂决策与动态规划

参考:《 Gemini 开源了全栈 LangGraph 快速启动项目:开发者的新利器》,deep reseach例子,mp.weixin.qq.com/s/wLYIr1AQy…
《多渠道信息调研和多react_agent》介绍怎样利用多个langgraph节点‘’react_agent‘’来进行多渠道信息收集处理,复杂的决策和动态规划, GitHub - kaymen99/personal-ai-assistant: Your personal AI assistant powered by multiple AI agents. Connects to WhatsApp, Slack, or Telegram to manage your emails, schedule, to-dos, messages, and daily research.

//介绍怎样利用多个react_agent来进行复杂的决策和动态规划llm = get_llm_by_provider(self.model, self.temperature)        self.agent = create_react_agent(            llm,             tools=self.tools,             state_modifier=self.system_prompt,            **({"checkpointer": self.memory} if self.memory else {"checkpointer": False}) # set to False to avoid "MULTIPLE_SUBGRAPHS" error        )

3. 多智能体协作系统

参考:《 使用 LangGraph 打造 Multi-Agent 系统》 mp.weixin.qq.com/s/OmJdNh8zF…

多代理系统是一组相互交互的独立“代理”。可以将每个代理想象成一个能够独立思考和行动的个体,类似于人类。这些代理一起工作或竞争以实现特定目标或完成任务。
简单来说,想象一群机器人清理你的房子。每个机器人是一个代理。一个可能负责吸尘地板,另一个可能负责擦拭家具,还有一个可能负责倒垃圾。它们各自独立工作,但通过沟通和协调确保整个房子被高效清洁。这就是多代理系统的本质:多个实体以协调的方式一起工作,以执行复杂任务或解决问题。

参考:
《 学习使用LangGraph x GPT-Researcher构建一个多智能体架构的AI自主研究助理》  mp.weixin.qq.com/s/PlpsIT5bj…
《TradingAgents:多代理 LLM 金融交易框架》 :部署由LLM驱动的专业智能体——从基本面分析师、情绪分析师、技术分析师,到交易员、风险管理团队——平台能够协同评估市场状况并制定交易决策。 GitHub - TauricResearch/TradingAgents: TradingAgents: Multi-Agents LLM Financial Trading Framework


4. 数据处理与分析流水线

参考: 《自动化潜在客户线索研究》GitHub - kaymen99/sales-outreach-automation-langgraph: Automate lead research, qualification, and outreach with AI agents and Langgraph, creating personalized messaging and connecting with your CRMs (HubSpot, Airtable, Google Sheets)

《自动化潜在客户线索研究》 1 LinkedIn Profile Scraping:自动从 LinkedIn 收集有关潜在客户及其公司的基本信息,以创建全面的个人资料。 2 公司数字存在分析 :评估公司的网站和博客内容,以深入了解其产品和服务。此外,评估他们在 Facebook、Twitter、YouTube 等平台上的社交媒体活动。 3 最近的公司新闻分析 :跟踪与公司相关的最新新闻和公告,以深入了解他们当前的举措和挑战。 4 痛点识别 :识别公司面临的潜在挑战或差距,并就贵机构的产品和服务如何解决这些问题提供量身定制的建议。 5 报告生成 :为每个分析生成详细的报告,这些报告既保存在本地,也保存在 Google Analytics 中。创建一份综合的全球研究报告,结合来自领导档案,公司档案和数字存在的见解。 

《Langgraph故事写作》:langchain-ai/story-writing | DeepWiki
它使用户能够在人工智能的帮助下协作编写故事,具有编辑现有章节、沿着不同路径继续叙述以及维护故事章节之间复杂关系的能力。




 所以,为何选择 LangGraph?

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangGraph AI工作流 多Agent Langchain AI框架
相关文章