LangChain与LangGraph深度解析:从智能体搭建到工作流编排

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

前言

随着大语言模型(LLM)技术的快速发展,AI智能体(Agent)已成为构建复杂AI应用的核心范式。LangChain作为最流行的LLM应用开发框架,提供了从基础模型调用到复杂智能体构建的全套工具链。而LangGraph作为其工作流编排引擎,进一步将智能体开发推向工程化、可控化的新高度。本文将深入探讨LangChain的核心架构、智能体搭建过程,以及如何通过LangGraph实现复杂工作流编排,并分析其与Harness Engineering的相似性。

一、LangChain:从基础调用到智能体构建

1.1 LangChain的层次化架构

LangChain采用层次化设计,从最底层的API调用到最高层的智能体应用,提供了不同抽象级别的接口:

# 最底层:原始API调用("砖块")
client = openai.OpenAI(api_key="sk-...")
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "1+1等于几?"}]
)

# 中间层:模型封装类("预制砖墙")
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(api_key="sk-...", model="gpt-4o-mini")
response = llm.invoke("1+1等于几?")

# 高层:统一工厂函数("施工队长")
from langchain.chat_models import init_chat_model
llm = init_chat_model("openai:gpt-4o-mini")  # 切换模型只需改字符串

# 最高层:智能体构建("设计师")
from langchain.agents import create_agent
agent = create_agent(model=llm, tools=[search_tool])

1.2 智能体的核心能力

一个完整的AI智能体通常具备三大核心能力:

能力说明类比
感知(Perception)获取环境信息和反馈眼睛、耳朵
决策(Decision)思考做什么、怎么做大脑
行动(Action)执行具体操作手、脚

与传统LLM相比,AI智能体具有显著优势:

特性普通 LLMAI Agent
交互模式一问一答,用户驱动自主执行,目标驱动
能力边界只有模型内置能力可通过工具扩展能力
记忆会话上下文(有限)短期 + 长期记忆
规划无(或需用户引导)自主任务分解与规划
反馈循环无(单次生成)观察-思考-行动循环

1.3 智能体搭建实战:客服机器人示例

以下是一个完整的LangChain智能客服机器人实现:

import os
from dotenv import load_dotenv
from typing import Annotated
from langchain.tools import tool
from langchain.agents import create_agent
from langchain.agents.middleware import before_model, after_model
from langchain.chat_models import init_chat_model
from langchain.messages import HumanMessage
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langgraph.checkpoint.sqlite import SqliteSaver

# ========== 1. 准备知识库 ==========
knowledge_base = [
    "菜鸟教程 RUNOOB 创立于 2013 年,是国内领先的免费编程学习平台。",
    "平台提供 300+ 套教程,涵盖 Python、Java、HTML、CSS、JavaScript 等。",
    "Python3 基础教程共 30 章,累计学习人次超 500 万。课程完全免费。",
    "VIP 会员费用为 ¥99/月,¥799/年,包含视频课程和一对一答疑服务。",
    "退款政策:购买 7 天内且在 3 节课以内可全额退款。",
    "平台支持在线编程环境,无需安装任何软件即可编写运行代码。",
    "客服工作时间:周一至周五 9:00-18:00,周末 10:00-16:00。",
]

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
chunks = RecursiveCharacterTextSplitter(
    chunk_size=200, chunk_overlap=30
).create_documents(knowledge_base)
vector_store = Chroma.from_documents(chunks, embeddings)
retriever = vector_store.as_retriever(search_kwargs={"k": 3})

# ========== 2. 定义工具 ==========
@tool
def search_kb(query: str) -> str:
    """搜索菜鸟教程知识库,获取关于平台、课程、政策等官方信息。"""
    docs = retriever.invoke(query)
    if not docs:
        return "未找到相关信息,建议转接人工客服。"
    return "\n".join(f"- {doc.page_content}" for doc in docs)

@tool
def query_order(order_id: str) -> str:
    """根据订单号查询订单状态和详情。"""
    orders_db = {
        "ORD-2024-001": {"user": "小明", "item": "VIP 年费会员",
                         "amount": 799, "status": "已完成", "date": "2024-01-15"},
        "ORD-2024-002": {"user": "小明", "item": "Python 实战课程",
                         "amount": 199, "status": "配送中", "date": "2024-03-20"},
    }
    order = orders_db.get(order_id.upper())
    if not order:
        return f"未找到订单 {order_id}。请确认订单号是否正确。"
    return (f"订单 {order_id}:{order['item']} | "
            f"金额 ¥{order['amount']} | "
            f"状态 {order['status']} | "
            f"日期 {order['date']}")

@tool
def transfer_to_human(reason: str) -> str:
    """将用户转接给人工客服。"""
    from langgraph.types import interrupt
    approval = interrupt({
        "action": "transfer_to_human",
        "reason": reason,
        "message": f"用户请求转接人工客服,原因:{reason}。是否转接?"
    })
    if approval.get("confirmed"):
        return (f"已为您转接人工客服,预计等待 {approval.get('wait_time', 3)} 分钟。"
                f"工单号:TK-{approval.get('ticket_id', 'N/A')}")
    return "转接已取消,我继续为您服务。"

# ========== 3. 定义 Middleware ==========
@before_model
def content_guard(state, runtime):
    """过滤用户输入中的不当内容"""
    last_msg = state["messages"][-1] if state.get("messages") else None
    if not last_msg:
        return None
    content = str(getattr(last_msg, 'content', ''))
    blocked = ["黄X", "X博", "违法"]
    for word in blocked:
        if word in content:
            return {
                "jump_to": "end",
                "messages": [HumanMessage(content="抱歉,我不能处理这个请求。")]
            }
    return None

@after_model
def auto_signature(state, runtime):
    """自动追加客服签名"""
    msgs = state.get("messages", [])
    if not msgs:
        return None
    last = msgs[-1]
    if last.type == "ai" and last.content and not (
        hasattr(last, 'tool_calls') and last.tool_calls
    ):
        from langchain.messages import AIMessage
        return {"messages": [AIMessage(
            content=last.content
            + "\n\n---\n菜鸟教程 RUNOOB 客服中心 | 工作时间 9:00-18:00"
        )]}
    return None

# ========== 4. 创建 Agent ==========
checkpointer = SqliteSaver.from_conn_string("customer_service.db")
model = init_chat_model("deepseek:deepseek-v4-flash", temperature=0)
agent = create_agent(
    model=model,
    tools=[search_kb, query_order, transfer_to_human],
    middleware=[content_guard, auto_signature],
    checkpointer=checkpointer,
    system_prompt="""你是菜鸟教程 RUNOOB 的智能客服"小菜"。
## 你的职责
1. 热情接待每一位用户,用"您"称呼
2. 关于平台信息、课程内容、政策等问题,使用 search_kb 查询
3. 关于订单查询,使用 query_order 工具
4. 遇到无法解决的问题,使用 transfer_to_human 转接人工
## 行为准则
- 回答简洁,每次 2-3 句话
- 不知道的就查询知识库,查不到就诚实告知
- 保持友好亲切的语气""",
)

# ========== 5. 对话接口 ==========
def chat(thread_id: str, message: str) -> str:
    """处理用户消息并返回回复"""
    config = {"configurable": {"thread_id": thread_id}}
    result = agent.invoke(
        {"messages": [HumanMessage(content=message)]},
        config=config,
    )
    state = agent.get_state(config)
    if state.tasks and state.tasks[0].interrupts:
        interrupt_info = state.tasks[0].interrupts[0].value
        return f"[需要审批] {interrupt_info.get('message', '')}"
    return result["messages"][-1].content

二、LangGraph:工作流编排的工程化框架

2.1 LangGraph的核心价值

LangGraph 的核心价值,就是为"大模型调用智能体"这个充满不确定性的过程,套上了一层工程化的稳定外壳,让它从一次"危险的跳跃",变成一次"可控的飞行"。本质上就是一个让"大模型调用智能体"这个过程变得可控、稳定、可观测的工程化框架。

特性传统 LLM ChainLangGraph
工作流结构线性,单向执行图结构,支持循环
状态管理需手动管理内置状态持久化
条件路由实现复杂原生支持
人机协作需要额外开发内置支持 interrupt
多 Agent 协调实现困难一流支持
调试工具有限LangGraph Studio

2.2 LangGraph核心概念

Graph(图)

Graph 是整个工作流的蓝图,定义了 Agent 的完整逻辑结构。它由节点(Nodes)和边(Edges)组成。

State(状态)

State 是贯穿整个图的共享数据结构。每个节点可以读取和更新 State,更新后的 State 会传递给下一个节点。

Nodes(节点)

节点是普通的 Python 函数,接收当前 State,返回更新后的 State(部分字段)。

Edges(边)

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

2.3 基础LangGraph示例

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

# Step 1: 定义 State
class SimpleState(TypedDict):
    message: str
    processed: bool

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

def process_node(state: SimpleState) -> dict:
    """处理节点:标记为已处理"""
    print(f"[process_node] 处理消息: {state['message']}")
    return {"processed": True}

# Step 3: 构建图
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)

# Step 4: 编译图
graph = builder.compile()

# Step 5: 运行
result = graph.invoke({
    "message": "世界",
    "processed": False
})
print(f"\n最终结果: {result}")

2.4 高级特性:条件路由与工具调用

from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode, tools_condition
from typing import Annotated
from langgraph.graph.message import add_messages

# 定义状态
class AgentState(TypedDict):
    messages: Annotated[list, add_messages]
    user_id: str
    session_id: str
    error: str | None
    retry_count: Annotated[int, lambda x, y: x + y]

# 定义工具
@tool
def search_weather(city: str) -> str:
    """查询城市天气"""
    return f"{city}的天气:晴,25°C"

@tool  
def search_stock(code: str) -> str:
    """查询股票信息"""
    return f"{code}当前价格:100元"

# 构建智能体工作流
builder = StateGraph(AgentState)

# 添加LLM节点
def llm_node(state: AgentState) -> dict:
    """调用LLM决定下一步行动"""
    # 实际实现中会调用大模型
    last_msg = state["messages"][-1].content if state["messages"] else ""
    if "天气" in last_msg:
        return {"messages": [{"role": "assistant", "content": f"调用天气工具查询{last_msg}"}]}
    elif "股票" in last_msg:
        return {"messages": [{"role": "assistant", "content": f"调用股票工具查询{last_msg}"}]}
    else:
        return {"messages": [{"role": "assistant", "content": "我无法处理这个问题"}]}

# 添加工具节点
tools = [search_weather, search_stock]
builder.add_node("llm", llm_node)
builder.add_node("tools", ToolNode(tools))

# 添加条件边
builder.add_edge(START, "llm")
builder.add_conditional_edges(
    "llm",
    tools_condition,  # 内置路由函数
    {
        "tools": "tools",  # 有工具调用 -> 执行工具
        END: END           # 无工具调用 -> 结束
    }
)
builder.add_edge("tools", "llm")  # 工具执行后返回LLM节点

graph = builder.compile()

2.5 LangGraph Studio:可视化调试

LangGraph Studio 是官方提供的可视化开发环境,让你实时查看 Agent 的执行过程:

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

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

# 启动开发服务器
langgraph dev

启动后访问 http://localhost:8123 即可在浏览器中使用 LangGraph Studio,主要功能包括:

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

三、LangGraph与Harness Engineering的相似性

3.1 工程化思维的一致性

LangGraph 与 Harness Engineering 在核心理念上高度相似,都强调将复杂、不确定的过程转化为可控、可观测的工程化系统:

维度LangGraphHarness Engineering
核心目标将大模型调用过程工程化将软件交付过程工程化
不确定性处理通过图结构管理LLM不确定性通过流水线管理部署不确定性
状态管理内置状态持久化与检查点部署状态追踪与回滚
可视化LangGraph Studio 可视化调试Harness UI 可视化流水线
可观测性执行轨迹追踪与监控部署过程监控与告警
人机协作内置 interrupt 机制人工审批节点

3.2 工作流编排的类比

是

否

是

否

是

否

需求输入

智能体规划

需要工具调用?

执行工具

生成回答

工具结果处理

输出结果

代码提交

CI流水线

测试通过?

部署到 staging

失败处理

人工审批?

部署到生产

回滚/中止

3.3 关键相似点分析

1. 图结构的工作流定义
  • LangGraph:使用节点和边定义智能体执行流程
  • Harness:使用阶段和步骤定义部署流水线
  • 共同点:都将复杂流程分解为可组合、可重用的单元
2. 状态管理与持久化
  • LangGraph:SqliteSaver、RedisSaver 等检查点机制
  • Harness:部署状态数据库、执行历史记录
四大主流大模型集成框架深度解析:LangChain、LangGraph、LangChain4j 与 LlamaIndex 大模型集成框架生态正在经历从 "百花齐放" 到 "分层收敛" 的演进:通用框架做广度,专业框架做深度,编排框架做复杂度,不同语言生态各自发展。LangChain凭借先发优势与庞大生态,仍是通用框架的首选,但其定位正逐渐从 "全能框架" 向 "编排底座" 收敛LangGraph代表了 Agent 开发的正确方向 —— 显式状态、可控流程、可观测性,是复杂智能体的事实标准是 Java 企业级市场的核心玩家,随着大模型在传统行业渗透,其重要性将持续提升LlamaIndex。 阅读详情

相关推荐

LangChain+LlamaIndex+AutoGen+LangGraph框架对比

大模型框架对比

usa_washington的博客 1595

从AI工作流到智能体:OpenMontage开源视频生产系统实战解析

最近在 GitHub 上追踪 AI 趋势时,发现一个非常有意思的现象:传统的“大模型”和“AI 应用”项目热度依旧,但一个名为 OpenMontage 的开源项目异军突起,直接冲上了趋势周榜第一。与此同时,围绕 AI 工作流 和 Agent 的工具生态也异常活跃,像 n8n、Dify、Coze(扣子)等平台的相关项目讨论度激增。这背后反映的,是开发者们正从单纯“玩模型”转向构建“可落地、自动化、低成本”的 AI 生产力工具。本文将为你深度解析这波趋势的核心——OpenMontage 项目,并梳理当前主流 A

weixin_29044713的博客 343

从零搭建AI智能体:基于LangChain与LangGraph的实战指南

这次我们来看一个关于 AI Agent(智能体)的实战教程。如果你对如何从零开始搭建一个能自主思考、执行任务的 AI 智能体感兴趣,特别是想了解 LangChain、LangGraph 这些核心框架如何落地,那么这篇文章就是为你准备的。 AI Agent 的核心是让大语言模型(LLM)具备“思考-行动-观察”的循环能力,而不仅仅是单次问答。本教程将手把手带你使用 LangChain 和 LangGraph 框架,结合 OpenClaw 等工具,搭建一个功能完整的智能体。重点不是空谈概念,而是提供一套可运行、

既是过河之卒,惟有奋力向前。 457

【LangChain】从 Vibe Coding 到 LangChain 与 LangGraph 核心深度解析

2026年的今天,AI 大模型引发的编程革命彻底重塑了软件开发范式。从火爆全球的 Vibe Coding 到生产级 AI 开发框架,开发者正经历从“代码编写者”向“系统架构师”的剧烈转型。本文将基于最新的行业实践与技术演进,深度剖析 Vibe Coding 的本质与局限,并全景拆解 LangChain 与 LangGraph 这一对现代 AI 应用开发的核心“超级武器”。

心向往之,行必能至 4092

AI智能体编排实战:从概念到LangGraph实现复杂工作流

在人工智能工程实践中,工作流编排是构建复杂系统的核心技术,它通过定义任务分解、执行顺序和状态传递的规则,将多个独立组件协同组织起来。其原理基于流程调度、状态管理和异常处理三大支柱,能够实现顺序、并行、条件分支等多样化执行模式。这一技术的核心价值在于提升系统整体效能与可靠性,使单一模型的能力得以扩展和互补。在应用场景上,编排技术广泛落地于客服自动化、智能助手、研发流水线等领域,通过将多个AI智能体(如LangChain框架中的组件)有机整合,形成可处理复杂任务的协同系统。本文聚焦于AI智能体编排的实现,详细探

483

LangChain与LangGraph:从链式组装到图式编排的AI应用范式演进

在构建基于大语言模型(LLM)的AI应用时,开发者常面临如何有效组织复杂任务流程的挑战。传统方法通过顺序执行的链式结构串联处理步骤,实现了从提示词调用到结果输出的基础管道化处理,这为快速搭建原型提供了便利。然而,当任务涉及多轮决策、循环验证或动态分支时,链式结构的局限性便显现出来,难以优雅地管理状态流转与条件逻辑。此时,图计算范式提供了更强大的解决方案,它通过节点和边抽象,支持循环、分支与聚合等复杂控制流,使系统能够根据运行时状态动态调整执行路径。这种从流程驱动到状态驱动的转变,极大地提升了AI智能体在复杂

weixin_33868027的博客 380

LangChain与LangGraph深度对比:从工作流编排到智能体系统的范式演进

在大模型应用开发领域,工作流编排与智能体系统构建是两大核心范式。工作流编排侧重于将模型调用、工具集成和数据转换等步骤以线性或固定分支的方式串联,形成确定性的处理流水线,常用于RAG(检索增强生成)、数据提取等场景。而智能体系统则引入了状态管理和动态决策机制,通过维护可流转的内部状态(如记忆、上下文)和基于条件的路由逻辑,使应用能够根据环境反馈自主规划行动路径,实现多轮对话、复杂任务分解与协作。前者关注流程的确定性与可重复性,后者强调系统的适应性与自主性。理解这两种范式的差异,对于技术选型至关重要。本文将以L

482

LangChain 1.0 核心解析:从智能体开发到复杂工作流编排实战

在构建大语言模型(LLM)应用时,如何高效地连接模型、工具和数据源,并管理复杂的交互流程,是开发者面临的核心挑战。智能体(Agent)技术通过赋予LLM自主调用外部工具和记忆上下文的能力,成为解决这一问题的关键技术路径。其原理在于将自然语言指令转化为可执行的动作序列,并通过状态管理实现多轮对话与任务编排。这极大地扩展了AI应用的能力边界,使其从简单的问答升级为能够执行复杂工作流的自动化系统。LangChain作为该领域的领先框架,通过提供标准化的接口和模块,如模型调用、工具集成和记忆管理,显著降低了开发门槛

congran6617的博客 566

利用LangChain与LangGraph搭建属于自己的论文检索下载智能体

1. 导入必要的库,包括LangChain、LangGraph、PyMuPDF、requests等。 2. 定义配置类,包含API密钥和模型设置。 3. 实现论文检索模块,使用Semantic Scholar API。 4. 实现PDF下载和解析模块,处理本地和远程文件。 5. 集成翻译和摘要模型,使用Hugging Face的pipeline。 6. 使用LangGraph构建工作流,定义状态和节点,处理条件分支。 7. 添加错误处理和日志记录,方便调试。 8. 提供示例用法,展示整个流程。

qq_33474415的博客 1295

LangChain到LangGraph:从链式编排到图工作流的AI应用开发演进

大语言模型应用开发中,工作流编排是连接模型能力与业务逻辑的关键技术。其核心原理在于将复杂的AI任务分解为可组合、可管理的模块化单元,通过定义清晰的执行路径和数据流来实现自动化处理。这一技术价值在于大幅提升了AI应用的开发效率和可维护性,使得开发者能够快速构建从简单问答到复杂多步决策的各类智能系统。在实际应用场景中,检索增强生成和智能体构建是两大典型领域,前者通过结合外部知识库增强模型回答的准确性和时效性,后者则通过多步骤工具调用和状态管理实现自主任务执行。本文聚焦于LangChain生态的演进,深入探讨了其

weixin_34242819的博客 340

LangChain与LangGraph实战:Python/TypeScript智能体开发全解析

大语言模型(LLM)应用开发的核心在于如何有效协调AI能力完成复杂任务,其技术原理是通过模块化组件与工作流编排实现智能决策。在工程实践中,开发者需要选择合适的框架来构建可维护、可扩展的Agent系统,这直接关系到项目的开发效率和最终性能。LangChain作为模块化的“组件仓库”,提供了统一的模型接口、提示词管理和工具链,而LangGraph则在此基础上引入了图计算模型,以可视化、可循环的方式编排多步骤的智能体工作流。这种组合为构建生产级AI应用提供了坚实基础,尤其在需要处理复杂逻辑、状态管理和工具调用的场

308

LangChain与LangGraph:从链式编排到图式工作流的技术演进

在大模型应用开发中,工作流编排是连接AI能力与业务逻辑的核心技术。其原理在于通过标准化接口将不同组件(如LLM、向量数据库、工具)组织成可执行的流程,从而提升开发效率和系统可控性。从技术价值看,良好的编排框架能降低复杂AI应用的构建门槛,支持快速迭代与维护。应用场景广泛覆盖从简单的检索增强生成(RAG)到复杂的多智能体协作系统。本文聚焦于LangChain和LangGraph这两个关键框架,深入解析它们如何分别以“链式思维”和“图式思维”应对不同复杂度的Agent与工作流需求,帮助开发者在面试与工程实践中做

快马扬鞭须努力! 438

GBase8a-GDCA认证考试-复习参考题

为提升产品服务水平定期举办GBase产品认证培训,培训更多GBase数据库专业人员,满足用户快速成长的业务需求,建设GBase产品生态。请注意甄别,根据所学知识综合判断,正确率97%(97分)。

weixin_41826637的博客 2372

【Langchain与Langgraph】全维度深度解析:从组件化到图化LLM应用开发

本文深入解析Langchain与Langgraph两大LLM应用开发框架。Langchain采用组件化设计,通过模块化分层(代理层、链层、工具层等)实现灵活组合;Langgraph则基于有向图抽象,支持状态管理、循环执行和多智能体协作。文章从核心定位、设计理念、技术架构到实战开发进行系统对比,指出Langgraph是对Langchain的补充升级,两者共同解决LLM应用开发中的组件碎片化、状态管理难等痛点。通过代码示例展示模型调用、缓存优化等关键技术,为开发者提供从理论到实践的完整指南。

独立思考,明辨是非 1386

告别绕线!用Altium Designer从零设计一个PCB平面变压器(附3D模型)

本文详细介绍了如何使用Altium Designer从零设计一个PCB平面变压器,包括磁芯选型、电气参数计算、PCB设计实战技巧以及3D验证与生产输出。通过将绕组直接集成到PCB层中,配合嵌入式磁芯,实现了小型化、高功率密度的电源设计,适用于中低电流、高频应用场景。附3D模型,帮助读者快速掌握这一创新设计流程。

weixin_33716154的博客 442

BGE-M3 文本情感分类实战:预训练模型微调,导出ONNX并测试

本文介绍了如何基于BGE-M3开源模型实现一个简单的二分类情感分析任务,展示了NLP中经典的“预训练 + 微调”范式。首先,加载预训练模型和分词器,并构建分类头整合到模型中。接着,进行数据预处理并构建DataLoader。然后,定义优化器、损失函数和训练循环,进行模型微调。微调过程中,可以选择基于[CLS] token的单特征提取或基于池化策略的多特征融合。最后,通过验证与推理评估模型性能,并导出ONNX模型以适应生产环境。BGE-M3在语义表征任务中表现优异,适合作为文本分类、语义搜索等下游任务的基础模型

大鹏的专栏 1403

LangChain 与 LangGraph 深度解析报告:核心定位、架构差异、场景选型与生态关系

LangChain 与 LangGraph 并非替代关系,而是由 LangChain Inc. 推出的两套面向不同复杂度 LLM 应用的互补开源框架,共同组成从轻量化原型到复杂生产级智能体的完整技术栈: LangChain 是模块化组件工具箱,将大模型开发常用的模型调用、提示词模板、向量检索、工具封装等能力标准化,通过 LCEL 链式编排快速搭建线性流程应用,大幅降低大模型开发入门门槛。 LangGraph 是低层状态图编排引擎,专门解决 LangChain 在复杂场景下无法支撑的多分支、循环迭

DS1367780968的博客 788

数据结构与算法 —— 最短路径Dijkstra算法(迪杰斯特拉)详细图解以及python实现

前两章我们讲到了关于图的基本知识,和广度/深度优先搜索。本章,我们将介绍加权图和最短路径的相关知识。最短路径和最小生成树是图论中常见的问题。最短路径是指在一个图中找到两个节点之间的最短路径,最小生成树是指在一个图中找到一个连通子图,使得所有节点都能够互相到达,且总权值最小。最短路径算法常见的有floyd算法(弗洛伊德算法)和 dijkstra算法(迪杰斯特拉)。本文只介绍dijkstra算法。最短路径运用非常广泛,比如在导航系统中,确定两个地点间哪条路线最短;

‘’ 2万+

LangChain 与 LangGraph 深度解析:从线性流水线到智能体编排引擎

在大语言模型(LLM)应用开发领域,LangChain 和 LangGraph 是两个绕不开的名字。许多开发者在入门时习惯使用 LangChain,但随着项目向“智能体(Agent)”演进,往往会遭遇循环逻辑难写、状态管理混乱等瓶颈。实际上,两者并非竞争关系,而是互补关系。本文将结合现实案例,系统性地剖析两者的核心差异与选型策略。

casually的博客 741

【硬件相关】IB网与以太网核心技术解析及高性能网络部署指南

本文深入解析了IB网与以太网的核心技术差异,包括协议栈、流量控制机制及硬件架构,并提供了高性能网络部署的实战指南。通过对比测试和调优案例,展示了IB网在低延迟和高负载下的优势,以及混合组网中的创新应用,助力超算集群和高效网络部署。

weixin_29311017的博客 99

STM32cubemx配置驱动DHT11模块

本篇文章将带大家学习使用DHT11湿温度模块,使用这个模块可以获取当前的温度和湿度数据。DHT11可以用于智能家居,蔬菜大棚等项目当中适用范围广。DHT11 是一种数字式温湿度传感器,由杜邦公司推出。它可以测量环境中的温度和湿度,并将测量结果以数字形式传输给微控制器或其他电子设备,适用于通过数字信号读取环境温湿度的应用场景。DHT11 传感器使用单总线数据交换协议,可以通过一个 I/O 引脚进行控制和数据传输。

m0_49476241的博客 5912

从零构建LangGraph智能体:基于状态与图的工作流编排实战

在构建复杂的大模型应用时,任务编排与状态管理是核心挑战。传统的单次API调用难以处理多步骤、带条件的决策流程,这催生了对智能体(Agent)框架的需求。其原理在于将业务逻辑抽象为有向图,通过节点(执行单元)和边(流转条件)来定义工作流,状态(State)则作为贯穿始终的上下文容器,记录对话历史、中间结果等信息。这种架构的技术价值在于实现了清晰的关注点分离,使复杂逻辑的构建和维护变得模块化、可视化。它广泛应用于需要多轮交互、工具调用和记忆能力的场景,如对话助手、自动化流程和复杂决策系统。本文聚焦的LangGr

weixin_34378969的博客 679

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1320

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

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

ciqiaofu0192的博客 389

Kubernetes(K8s)从入门到精通系列之一:一篇文章了解K8s全部核心知识点

Kubernetes(K8s)从入门到精通系列之一:一篇文章了解K8s全部核心知识点

zhengzaifeidelushang的博客 849

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LangChain与LangGraph深度对比:从链式执行到状态图编排的AI应用架构演进

在构建基于大语言模型(LLM)的应用时,工作流编排与状态管理是核心工程挑战。传统链式执行模型适用于顺序任务,但在处理复杂、多步骤的智能决策时,需要更强大的流程控制能力。状态图(State Graph)作为一种显式的工作流编排范式,通过节点、边和集中状态对象,原生支持循环、条件分支和持久化,极大地提升了复杂Agent任务的可控性与可调试性。这一技术价值在需要长期运行、多轮交互的应用场景中尤为突出,例如对话系统、游戏NPC和业务流程自动化。本文聚焦于LangChain与LangGraph的架构差异,深入解析链式

weixin_34109408的博客 400

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

下一篇: LangChain 中间件与人工介入:构建可控的智能客服系统
shiyibushiqi
博客等级 码龄3年 3粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值