LangGraph - 构建状态化 AI 工作流的框架

什么是 LangGraph LangGraph 是 LangChain 生态系统中的一个框架,专门用于构建有状态的、多步骤的 AI 应用程序。它通过图(Graph)的方式来定义和管理复杂的 AI 工作流,让开发者能够创建具有循环、条件分支和持久化状态的智能体系统。 LangGraph 的核心理念是将 AI 应用程序建模为状态机,其中节点代表操作步骤,边代表流程控制,状态在节点之间传递和更新。 核心概念 State(状态) State 是在整个工作流中传递和更新的数据结构。通常使用 TypedDict 定义: from typing import TypedDict, Annotated from langgraph.graph import add_messages class AgentState(TypedDict): messages: Annotated[list, add_messages] user_input: str analysis_result: str Node(节点) Node 是执行具体操作的函数,接收当前状态并返回更新后的状态: def research_node(state: AgentState): # 执行研究任务 result = do_research(state['user_input']) return { "analysis_result": result, "messages": [("assistant", f"研究完成:{result}")] } Edge(边) Edge 定义节点之间的连接关系: Normal Edge(普通边):直接连接两个节点 Conditional Edge(条件边):根据状态决定下一个节点 from langgraph.graph import StateGraph, END # 普通边 workflow.add_edge("node_a", "node_b") # 条件边 def should_continue(state): if state['done']: return END return "continue_node" workflow.add_conditional_edges( "decision_node", should_continue ) Graph(图) Graph 是完整的工作流定义,包含所有节点、边和状态管理: from langgraph.graph import StateGraph workflow = StateGraph(AgentState) # 添加节点 workflow.add_node("research", research_node) workflow.add_node("analyze", analyze_node) workflow.add_node("respond", respond_node) # 定义边 workflow.add_edge("research", "analyze") workflow.add_edge("analyze", "respond") # 设置入口点 workflow.set_entry_point("research") # 编译图 app = workflow.compile() 核心特性 1. 状态持久化 LangGraph 支持状态的持久化存储,可以实现: ...

2026-01-18 · 5 min · 975 words · -

CrewAI - 多智能体协作框架

什么是 CrewAI CrewAI 是一个开源的 Python 框架,专门用于构建和管理多智能体(Multi-Agent)系统。它允许开发者创建一个由多个 AI 智能体组成的"团队"(Crew),这些智能体可以协同工作,共同完成复杂的任务。 核心概念 Agent(智能体) Agent 是 CrewAI 中的基本执行单元,代表一个具有特定角色和能力的 AI 助手。每个 Agent 具有: Role(角色):定义 Agent 的身份和职责 Goal(目标):Agent 要达成的目标 Backstory(背景故事):为 Agent 提供上下文和个性 Tools(工具):Agent 可以使用的工具集合 from crewai import Agent researcher = Agent( role='研究员', goal='收集和分析相关信息', backstory='你是一位经验丰富的研究专家,擅长从各种来源收集准确信息', tools=[search_tool, scrape_tool], verbose=True ) Task(任务) Task 定义了需要完成的具体工作,包括: Description(描述):任务的详细说明 Agent:负责执行该任务的智能体 Expected Output(期望输出):任务完成后的预期结果 from crewai import Task research_task = Task( description='研究 AI 领域的最新发展趋势', agent=researcher, expected_output='一份包含最新 AI 趋势的详细报告' ) Crew(团队) Crew 是多个 Agent 和 Task 的组合,负责协调整个工作流程: from crewai import Crew, Process crew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, write_task, review_task], process=Process.sequential # 顺序执行 ) result = crew.kickoff() 执行流程 CrewAI 支持两种执行流程: ...

2026-01-18 · 3 min · 524 words · -