LangGraph 实战教程:在 LangChain 基础上构建可控的 AI 工作流

基于AI Agent的数据库运维自动化:从原理到本地部署实战 AI Agent作为能够感知环境、自主决策并执行行动的智能系统,其核心原理在于通过大语言模型(LLM)作为决策大脑,结合规划、记忆与工具调用等模块,实现对特定目标的自动化处理。在数据库运维领域,这项技术的核心价值在于将DBA从繁琐的重复性劳动中解放出来,通过智能化手段处理性能调优、故障排查等复杂场景。具体实践中,AI Agent通过封装查询执行、性能分析等工具函数,并借助LangChain等框架进行编排,能够安全、高效地响应自然语言指令,实现7x24小时的自动化监控与辅助决策。本文以MySQL运维为例,详细 阅读详情

引言:从 LangChain 到 LangGraph

在 AI 应用开发中,LangChain 已经成为构建大模型应用的事实标准。它提供了从基础模型调用到复杂 Agent 构建的全套工具链。然而,随着应用复杂度提升,开发者面临新的挑战:

  • 线性流程限制:传统 Chain 只能单向执行,难以处理需要循环、分支的场景
  • 状态管理困难:对话历史、中间结果需要在不同组件间手动传递
  • 调试复杂度高:Agent 内部执行过程如同"黑盒",难以追踪和调试
  • 人机协作缺失:缺乏标准化的中断和人工干预机制

LangGraph 正是为解决这些问题而生。它不是一个替代品,而是 LangChain 的工程化增强层——为"大模型调用智能体"这个充满不确定性的过程,套上了一层稳定可控的外壳。

LangGraph 核心概念

1. Graph(图):工作流的蓝图

LangGraph 的核心是图结构,由节点(Nodes)和边(Edges)组成:

from langgraph.graph import StateGraph, START, END
from typing import TypedDict

# 定义状态结构
class SimpleState(TypedDict):
    message: str
    processed: bool

# 定义节点函数
def greet_node(state: SimpleState) -> dict:
    """欢迎节点:生成问候语"""
    return {"message": f"你好!{state['message']}"}

def process_node(state: SimpleState) -> dict:
    """处理节点:标记为已处理"""
    return {"processed": True}

# 构建图
builder = StateGraph(SimpleState)
builder.add_node("greet", greet_node)
builder.add_node("process", process_node)
builder.add_edge(START, "greet")
builder.add_edge("greet", "process")
builder.add_edge("process", END)

# 编译并运行
graph = builder.compile()
result = graph.invoke({"message": "世界", "processed": False})

2. State(状态):贯穿始终的数据流

State 是工作流的共享数据结构,每个节点都可以读取和更新它。LangGraph 提供了多种状态管理方式:

from typing import Annotated, Optional
from langgraph.graph.message import add_messages

# 方式1:使用 TypedDict(灵活)
class AgentState(TypedDict):
    # 消息历史(自动追加而非覆盖)
    messages: Annotated[list, add_messages]
    # 普通字段(直接覆盖)
    user_id: str
    session_id: str
    # 可选字段
    error: Optional[str]
    # 计数器(自定义 reducer)
    retry_count: Annotated[int, lambda x, y: x + y]

# 方式2:使用 Pydantic(推荐生产环境)
from pydantic import BaseModel, Field

class ProductionState(BaseModel):
    messages: Annotated[list, add_messages] = Field(default_factory=list)
    user_id: str = ""
    confidence_score: float = 0.0
    
    class Config:
        arbitrary_types_allowed = True

# 方式3:使用内置 MessagesState(对话场景专用)
from langgraph.graph import MessagesState
# 等价于:messages: Annotated[list[AnyMessage], add_messages]

3. Nodes(节点):执行单元

节点是普通的 Python 函数,接收当前 State,返回更新后的 State:

# 普通函数节点
def simple_node(state: AgentState) -> dict:
    last_message = state["messages"][-1]
    response = f"收到: {last_message.content}"
    return {"messages": [{"role": "assistant", "content": response}]}

# LLM 调用节点
def llm_node(state: dict) -> dict:
    """调用 LLM 的节点"""
    from langchain_core.messages import SystemMessage
    
    system_prompt = SystemMessage(content="你是一个有帮助的助手。")
    messages = [system_prompt] + state["messages"]
    response = llm.invoke(messages)
    return {"messages": [response]}

# 异步节点(适合 I/O 密集型操作)
import asyncio

async def async_node(state: AgentState) -> dict:
    """异步节点,适合 API 调用、数据库查询"""
    await asyncio.sleep(0.1)
    result = await some_async_api_call(state["messages"][-1].content)
    return {"messages": [{"role": "assistant", "content": result}]}

# 使用类作为节点(可维护状态)
class RouterNode:
    def __init__(self, llm, system_prompt: str):
        self.llm = llm
        self.system_prompt = system_prompt
    
    def __call__(self, state: AgentState) -> dict:
        """类实例可以作为节点使用"""
        messages = [
            SystemMessage(content=self.system_prompt),
            *state["messages"]
        ]
        response = self.llm.invoke(messages)
        return {"messages": [response]}

4. Edges(边):控制流转逻辑

边定义了节点之间的流转方式,支持条件路由和并行执行:

# 普通边(线性流转)
builder.add_edge(START, "greet")
builder.add_edge("greet", "process")
builder.add_edge("process", END)

# 条件边(动态路由)
def route_after_llm(state: AgentState) -> str:
    """
    路由函数:根据 LLM 的最新输出决定下一步
    返回值必须是已注册节点名称或 END
    """
    last_message = state["messages"][-1]
    
    # 如果 LLM 请求使用工具
    if hasattr(last_message, "tool_calls") and last_message.tool_calls:
        return "tools"
    # 否则结束
    return END

# 添加条件边
builder.add_conditional_edges(
    "llm",              # 源节点
    route_after_llm,    # 路由函数
    {
        "tools": "tool_executor",   # 返回 "tools" 时 -> tool_executor 节点
        END: END                    # 返回 END 时 -> 结束
    }
)

# 并行执行(Fan-out)
builder.add_edge("start_node", "branch_a")
builder.add_edge("start_node", "branch_b")
builder.add_edge("start_node", "branch_c")

# 汇聚执行(Fan-in)
builder.add_edge("branch_a", "merge_node")
builder.add_edge("branch_b", "merge_node")
builder.add_edge("branch_c", "merge_node")

实战:构建智能客服工作流

让我们基于 LangChain 智能客服示例,用 LangGraph 重构一个更可控的版本:

from langgraph.graph import StateGraph, MessagesState, START, END
from langgraph.prebuilt import ToolNode, tools_condition
from typing import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langchain.tools import tool
from langchain.chat_models import init_chat_model
from langchain.messages import HumanMessage, SystemMessage
from langgraph.checkpoint.sqlite import SqliteSaver
from langgraph.types import interrupt, Command
import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# ========== 1. 定义状态 ==========
class CustomerServiceState(TypedDict):
    """客服工作流状态"""
    messages: Annotated[list, add_messages]  # 对话历史
    user_id: str                             # 用户ID
    retry_count: int                         # 重试次数
    need_human: bool                        # 是否需要人工介入

# ========== 2. 定义工具 ==========
@tool
def search_kb(query: str) -> str:
    """搜索知识库获取官方信息"""
    # 模拟知识库查询
    knowledge = {
        "VIP价格": "VIP 会员费用为 ¥99/月,¥799/年",
        "退款政策": "购买 7 天内且在 3 节课以内可全额退款",
        "工作时间": "周一至周五 9:00-18:00,周末 10:00-16:00"
    }
    return knowledge.get(query, "未找到相关信息")

@tool  
def query_order(order_id: str) -> str:
    """查询订单状态"""
    orders_db = {
        "ORD-2024-001": {"item": "VIP 年费会员", "status": "已完成"},
        "ORD-2024-002": {"item": "Python 实战课程", "status": "配送中"},
    }
    order = orders_db.get(order_id.upper())
    return f"订单 {order_id}: {order['item']} | 状态: {order['status']}" if order else "订单不存在"

@tool
def transfer_to_human(reason: str) -> str:
    """转接人工客服"""
    approval = interrupt({
        "action": "transfer_to_human",
        "reason": reason,
        "message": f"用户请求转接人工客服,原因:{reason}"
    })
    if approval.get("confirmed"):
        return f"已转接人工,工单号:TK-{approval.get('ticket_id', 'N/A')}"
    return "转接已取消"

# ========== 3. 定义节点函数 ==========
def welcome_node(state: CustomerServiceState) -> dict:
    """欢迎节点:初始化对话"""
    welcome_msg = "您好!我是菜鸟教程客服小菜,请问有什么可以帮您?"
    return {
        "messages": [{"role": "assistant", "content": welcome_msg}],
        "retry_count": 0,
        "need_human": False
    }

def llm_agent_node(state: CustomerServiceState) -> dict:
    """LLM 代理节点:分析用户意图并决定行动"""
    llm = init_chat_model("deepseek:deepseek-v4-flash", temperature=0)
    
    system_prompt = """你是菜鸟教程 RUNOOB 的智能客服"小菜"。
职责:
1. 热情接待用户,用"您"称呼
2. 关于平台信息、课程内容、政策等问题,使用 search_kb 工具
3. 关于订单查询,使用 query_order 工具
4. 遇到无法解决的问题,使用 transfer_to_human 工具
5. 回答简洁,每次 2-3 句话"""
    
    messages = [SystemMessage(content=system_prompt)] + state["messages"]
    response = llm.invoke(messages)
    
    return {"messages": [response]}

def tool_executor_node(state: CustomerServiceState) -> dict:
    """工具执行节点:执行 LLM 调用的工具"""
    last_message = state["messages"][-1]
    tool_calls = getattr(last_message, "tool_calls", [])
    
    results = []
    for tool_call in tool_calls:
        tool_name = tool_call["name"]
        tool_args = tool_call["args"]
        
        # 执行对应工具
        if tool_name == "search_kb":
            result = search_kb.invoke(tool_args["query"])
        elif tool_name == "query_order":
            result = query_order.invoke(tool_args["order_id"])
        elif tool_name == "transfer_to_human":
            result = transfer_to_human.invoke(tool_args["reason"])
            if "已转接人工" in result:
                return {"need_human": True, "messages": [{"role": "assistant", "content": result}]}
        else:
            result = f"未知工具: {tool_name}"
        
        results.append(f"工具 {tool_name} 执行结果: {result}")
    
    return {"messages": [{"role": "tool", "content": "\n".join(results)}]}

def human_intervention_node(state: CustomerServiceState) -> dict:
    """人工介入节点:等待人工客服处理"""
    return {
        "messages": [{"role": "assistant", "content": "人工客服已接入,请稍候..."}],
        "need_human": True
    }

def check_retry_node(state: CustomerServiceState) -> dict:
    """检查重试节点:防止无限循环"""
    if state["retry_count"] >= 3:
        return {
            "messages": [{"role": "assistant", "content": "抱歉,问题处理失败,已为您转接人工客服。"}],
            "need_human": True
        }
    return {"retry_count": state["retry_count"] + 1}

# ========== 4. 构建图 ==========
def build_customer_service_graph():
    """构建客服工作流图"""
    builder = StateGraph(CustomerServiceState)
    
    # 添加节点
    builder.add_node("welcome", welcome_node)
    builder.add_node("llm_agent", llm_agent_node)
    builder.add_node("tools", tool_executor_node)
    builder.add_node("human_intervention", human_intervention_node)
    builder.add_node("check_retry", check_retry_node)
    
    # 设置起始节点
    builder.add_edge(START, "welcome")
    
    # 欢迎后进入 LLM 处理
    builder.add_edge("welcome", "llm_agent")
    
    # LLM 后根据输出决定下一步
    def route_after_llm(state: CustomerServiceState) -> str:
        last_message = state["messages"][-1]
        
        # 检查是否需要人工介入
        if state.get("need_human", False):
            return "human_intervention"
        
        # 检查是否有工具调用
        if hasattr(last_message, "tool_calls") and last_message.tool_calls:
            return "tools"
        
        # 检查是否应该结束
        content = str(getattr(last_message, "content", "")).lower()
        if any(word in content for word in ["再见", "谢谢", "结束", "拜拜"]):
            return END
        
        # 默认继续对话
        return "check_retry"
    
    builder.add_conditional_edges(
        "llm_agent",
        route_after_llm,
        {
            "tools": "tools",
            "human_intervention": "human_intervention",
            "check_retry": "check_retry",
            END: END
        }
    )
    
    # 工具执行后返回 LLM
    builder.add_edge("tools", "llm_agent")
    
    # 检查重试后返回 LLM
    builder.add_edge("check_retry", "llm_agent")
    
    # 人工介入后结束
    builder.add_edge("human_intervention", END)
    
    # 添加检查点(持久化状态)
    checkpointer = SqliteSaver.from_conn_string("customer_service.db")
    
    return builder.compile(checkpointer=checkpointer)

# ========== 5. 运行工作流 ==========
if __name__ == "__main__":
    # 构建图
    graph = build_customer_service_graph()
    
    # 配置运行参数
    config = {"configurable": {"thread_id": "user_123"}}
    
    # 测试对话
    print("=== 测试 1:知识库查询 ===")
    result1 = graph.invoke(
        {"messages": [HumanMessage(content="VIP 会员多少钱?")], "user_id": "user_123"},
        config=config
    )
    print(f"客服回复: {result1['messages'][-1].content}")
    
    print("\n=== 测试 2:订单查询 ===")
    result2 = graph.invoke(
        {"messages": [HumanMessage(content="我的订单 ORD-2024-001 状态是什么?")], "user_id": "user_123"},
        config=config
    )
    print(f"客服回复: {result2['messages'][-1].content}")
    
    print("\n=== 测试 3:查看对话历史 ===")
    # 获取保存的状态
    state = graph.get_state(config)
    print(f"对话轮次: {len(state.values['messages']) // 2}")
    print(f"重试次数: {state.values.get('retry_count', 0)}")

LangGraph 与 LangChain 的对比

特性传统 LangChain ChainLangGraph
工作流结构线性,单向执行图结构,支持循环、分支、并行
状态管理需手动传递内置状态持久化和共享
条件路由实现复杂原生支持,语法简洁
人机协作需要额外开发内置 interrupt 机制
多 Agent 协调实现困难一流支持,易于扩展
调试工具有限LangGraph Studio 可视化调试
执行可视化无实时图形化展示执行过程

LangGraph Studio:可视化调试利器

LangGraph Studio 是官方提供的可视化开发环境,大幅提升开发和调试效率:

安装与配置

# 安装 LangGraph CLI
pip install langgraph-cli -i https://mirrors.aliyun.com/pypi/simple/

# 创建配置文件 langgraph.json
{
  "dependencies": ["."],
  "graphs": {
    "customer_service": "./customer_service.py:graph"
  },
  "env": ".env"
}

# 启动开发服务器
langgraph dev

访问 http://localhost:8123 即可使用 LangGraph Studio。

主要功能

  1. 实时可视化:图形化展示节点执行过程
  2. 状态检查:在任意节点暂停查看当前 State
  3. 时间旅行:回放历史执行步骤
  4. 热重载:修改代码后自动更新图结构

高级特性与最佳实践

1. 使用内置 ToolNode 简化工具调用

from langgraph.prebuilt import ToolNode

# 创建工具列表
tools = [search_kb, query_order, transfer_to_human]

# 使用内置 ToolNode
builder.add_node("tools", ToolNode(tools))

# 使用内置条件路由
from langgraph.prebuilt import tools_condition
builder.ad
LangGraph实战:从LangChain到MCP与Memory,构建可控可记忆的AI Agent工作流 AI Agent正从单纯的对话机器人演进为可控、可回溯、有记忆的图式工作流。其核心原理在于将LangChain的组件库、LangGraph的图编排、MCP的工具接入协议与Memory的跨会话记忆分层协同。LangGraph作为编排层,通过节点与条件边实现ReAct循环,让模型判断下一步动作;MCP将外部工具标准化为USB-C式接口,降低接入成本;Memory则通过Checkpointer与向量库让Agent长期运行。这一组合适用于需要动态决策、外接企业工具及多轮记忆的工程场景。从跑通最小状态图开始,逐步加入 阅读详情

相关推荐

LangChain 1.3实战:构建安全可控AI智能体的完整指南

AI智能体作为人工智能技术的重要应用形式,通过模拟人类决策过程实现自主任务执行。其核心原理基于大型语言模型(LLM)的理解和推理能力,结合工具调用和工作流编排机制。在技术价值层面,AI智能体能够显著提升自动化水平,降低人工干预成本,特别在工具链集成和多Agent协作方面展现强大优势。应用场景广泛覆盖智能客服、数据分析、本地知识库问答等企业级需求。本文以LangChain 1.3框架为例,深入探讨如何通过权限控制、输入验证和输出过滤等安全机制,构建稳定可靠的生产级AI应用,其中多工具集成和工作流设计等热词技术

weixin_29061821的博客 314

LangChain + LangGraph 环境搭建与快速入门:从零构建你的第一个 AI Agent

LangGraph 正快速演进:2025 年 Q3 将支持异步节点与外部事件触发,使 Agent 能响应实时数据流。国内阿里通义实验室已在其Qwen-Agent框架中集成类似图引擎,用于电商客服场景。下一步建议尝试集成 Tool Calling(如探索 Checkpointing 机制实现对话持久化关注LangGraph 官方文档获取最新模式技术的本质不是炫技,而是可控的智能。从今天这个“Hello World”开始,你已站在构建下一代 AI 应用的起跑线上。

沛哥儿的专栏 3219

基于LangChain、LangGraph与LangSmith构建医疗问诊Agent实战指南

在大模型应用开发中,Agent(智能体)已成为处理复杂任务的核心架构,它通过整合工具调用、知识检索与状态管理,实现超越单一问答的自动化工作流。其原理在于将大语言模型(LLM)作为决策中枢,结合外部工具与数据源,通过ReAct等模式进行推理与行动。这种技术价值在于显著提升了AI系统在专业领域的可靠性与实用性。在应用场景上,Agent广泛适用于需要多步骤决策、动态交互的领域,例如智能客服、数据分析与自动化办公。本文聚焦于医疗健康这一典型场景,通过一个完整的医疗问诊Agent项目,详细演示了如何利用LangCha

weixin_33767813的博客 1863

LangChain融资背后:从RAG框架到AI Agent工程平台的实战解析

大语言模型(LLM)和检索增强生成(RAG)技术正推动AI应用从原型走向生产。然而,开发过程中普遍面临调试难、评估玄学、部署复杂等工程化挑战。这些痛点催生了以LangChain为代表的AI Agent工程平台,旨在提供标准化的开发、调试、评估与部署全生命周期解决方案。其核心价值在于通过开源框架(如LangChain、LangGraph)降低开发门槛,同时通过商业平台(如LangSmith)提供可观测性、自动化评估和专为Agent设计的部署服务,从而将AI应用开发从“手工作坊”模式推向“软件工程”模式。本文以

434

AI Agent工程实战指南:从LangChain入门到LangGraph工作流构建

大家好,我是专注于AI应用开发的技术博主。最近,LangChain创始人Harrison Chase关于“2026年将成为‘Agent工程’分水岭”的观点在开发者社区引发了广泛讨论。这并非危言耸听,而是基于当前技术演进速度的深刻洞察。对于广大开发者,尤其是身处传统软件公司的技术团队而言,理解并拥抱Agent技术,已从“选修课”变成了关乎未来竞争力的“必修课”。本文将深入剖析Agent工程的核心概念、技术栈、实战开发,并探讨其对传统软件开发模式的冲击与机遇,旨在为你提供一份从入门到项目落地的系统性指南。 1.

weixin_34416754的博客 441

LangChain实战:从RAG到Agent,构建可控大模型应用工作流

检索增强生成(RAG)和智能体(Agent)是当前扩展大语言模型能力边界的核心技术。RAG通过将外部知识库与向量检索相结合,有效解决了模型知识截止性和长上下文处理难题,使模型能够基于最新、最相关的信息生成答案。Agent则赋予模型自主决策与调用工具的能力,通过ReAct等范式,让模型能够规划、执行多步骤任务,如搜索、计算和API调用。这些技术共同构成了构建可靠、可扩展AI应用的基础。在实际工程中,结合LangChain框架的标准化接口和LangGraph的可视化工作流编排,开发者能够将模型、数据与工具有机整

weixin_34341229的博客 466

LangChain + MCP + LangGraph 实战:从零构建具备外部工具调用能力的AI智能体

大语言模型(LLM)的应用开发正从简单的对话交互,迈向能够自主调用外部工具、执行复杂任务的智能体(Agent)时代。其核心原理在于,通过特定的框架和协议,将LLM的推理能力与外部工具(如数据库、API、文件系统)的执行能力安全、可控地连接起来,从而扩展其应用边界,实现自动化工作流。这带来了显著的技术价值:开发者无需从零构建复杂的交互逻辑,即可快速搭建具备实际功能的AI应用。在应用场景上,这尤其适用于需要集成多种数据源和服务的智能客服、数据分析助手、代码生成器等。本文聚焦于当前热门的LangChain生态,特

weixin_30294295的博客 299

LangChain与LangGraph深度对比:从智能体构建到复杂工作流编排

在构建大语言模型应用时,智能体框架的选择直接影响系统的可维护性与扩展性。LangChain作为模块化框架,通过链式组件简化了LLM与外部工具的集成,适用于快速构建标准问答场景。然而,当应用需要处理复杂状态管理、条件分支和循环控制时,其黑盒化的执行流程便显露出局限性。相比之下,LangGraph基于图计算模型,将工作流明确定义为节点和边的有向图,实现了状态流转的完全透明与精确控制。这种显式编排方式尤其适合需要重试机制、多参与者协作和确定性流程的业务场景,例如游戏NPC对话、审批工作流等。通过对比两者在状态管理

weixin_34267123的博客 757

基于LangGraph与MCP构建可控AI Agent:从流程编排到工程实践

AI Agent作为能够自主调用工具完成复杂任务的人工智能系统,其核心原理在于将大语言模型的推理能力与外部工具的执行能力相结合。通过设计清晰的工作流程与状态管理机制,Agent能够实现从任务分解、工具调用到结果整合的自动化闭环,从而在数据分析、报告生成、项目管理等场景中创造实际技术价值。本文聚焦于LangGraph的流程编排与MCP(Model Context Protocol)的工具生态集成,探讨如何构建健壮、可观测的智能体应用,解决传统Agent开发中常见的状态丢失与流程失控问题。

weixin_33046983的博客 320

LangChain+LlamaIndex+AutoGen+LangGraph框架对比

大模型框架对比

usa_washington的博客 1610

LangChain、LangGraph与LangSmith:构建可控AI智能体的完整工程化方案

在构建复杂AI应用时,开发者常面临如何让模型执行多步骤、有状态任务的核心挑战。这涉及到智能体(Agent)的概念,即能够感知环境、规划并执行动作的AI系统。其核心原理在于将大语言模型与外部工具、记忆模块和状态管理相结合,通过标准化接口实现组件化。这种工程化方法的技术价值在于提升了AI应用的可靠性、可控性和可维护性,使其从简单的问答模式升级为能够处理复杂业务流程的智能系统。典型的应用场景包括智能客服、自动化工作流和决策支持系统。本文以医疗问诊助手为例,深入剖析了如何利用LangChain提供标准化组件、Lan

weixin_33912638的博客 486

LangGraph 实战教程:构建自定义 AI 工作流

LangGraph 是 LangChain 生态系统的一部分,专门用于构建基于 LLM(大型语言模型)的复杂工作流和 Agent 系统。它采用有向图结构来定义工作流程,使开发者能够创建动态、可控且可扩展的 AI 应用程序。简单来说,LangGraph 是一个框架,允许你使用图结构来定义 LLM 应用程序的不同组件如何交互,从而实现复杂的、多步骤的 AI 工作流程。LangGraph 是构建复杂 AI 工作流的强大工具,它提供了灵活的流程控制、强大的状态管理和良好的集成能力。

2401_84204413的博客 3547

本地化AI工作流构建:Ollama+LangGraph实现数据主权可控

Local Agents(本地智能体)是企业级AI落地中保障数据主权的核心范式,其本质并非模型部署方式,而是将隐私保护嵌入执行流程的确定性架构。它依托模型本地化运行与状态可审计的工作流引擎,在原理上通过DAG图调度、显式状态传递和全流程日志固化,实现推理路径100%可追溯;技术价值在于将GDPR、等保三级、医疗数据合规等抽象要求,转化为可验证的原子操作——如节点耗时、内存占用、输入输出长度等机器可读指标;典型应用场景覆盖法律文书审查、临床试验报告分析、金融风控决策等强监管领域;本文聚焦Ollama与Lang

weixin_30500473的博客 470

LangChain与LangGraph构建智能AI工作流

LangChain与LangGraph构建智能AI工作流

xie__jin__cheng的博客 1516

LangChain、LangGraph与LangSmith:构建可控AI智能体的三大核心框架

大语言模型(LLM)作为强大的AI大脑,在实际业务应用中常面临知识更新、多步骤任务执行和复杂流程控制等挑战。为解决这些问题,开发者需要借助工具链、流程编排和监控调试三大核心能力。LangChain作为基础框架,通过标准化接口连接LLM、外部数据源和工具,解决了模型的“孤立”问题,使其具备执行、读取和记忆能力。在此基础上,LangGraph提供了基于图的工作流编排,通过定义状态、节点和边,实现了对复杂、多步骤、有状态任务的显式流程控制,这对于构建医疗问诊、金融客服等需要严格步骤的业务智能体至关重要。结合Lan

weixin_33726318的博客 463

面向企业级 AI Agent 自动化智能体开发和应用平台原理与开发实践——基于 FastAPI + LangChain 与 LangGraph、Docker Sandbox 的完整开发指南

2025 年被业界公认为 AI Agent 商业化应用的元年。随着大语言模型(LLM)技术的成熟,AI Agent 正从实验室原型快速走向企业级生产环境。技术复杂度高:需要整合 LLM、向量数据库、工具调用、状态管理等多种技术可控性不足:黑盒式的 AI 决策过程难以满足企业合规和审计要求开发效率低:缺乏标准化的开发框架和可视化工具,重复造轮子现象严重安全隐患大:代码执行、数据访问等敏感操作缺乏有效的隔离和管控机制运维成本高:缺少统一的监控、日志、告警体系,故障定位困难。

AI天才研究院 228

从Demo到生产:基于LangChain与LangGraph构建实用AI智能体工作流

最近在尝试把一些重复性工作交给 AI 自动处理时,我发现了一个很有意思的现象:很多人一听到“AI Agent”或“智能体”,第一反应是去搜教程,然后跟着文档一步步安装 LangChain、配置环境、跑通一个“Hello World”示例。但当你真的想用它来解决一个具体问题,比如自动分析日志、处理工单或者生成周报时,却常常卡在“跑通示例”和“解决实际问题”之间的巨大鸿沟里。 问题不在于工具本身,而在于我们一开始就把“搭建 AI 智能体”理解成了“安装某个框架”。LangChain、LangGraph 这些工具

ciqiaofu0192的博客 391

合宙Air780EP速连OneNET:AT+MQTT应用指南

本文详细讲解了合宙Air780EP使用AT指令通过MQTT接入OneNET的过程。

2401_82812461的博客 1390
上一篇: LangChain 从入门到实战:构建智能应用的全栈指南
下一篇: DeepAgent 教程总结:从入门到实战的智能体框架指南
shiyibushiqi
博客等级 码龄3年 3粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值