Task 1 · LangChain 与 LangGraph 框架认知

Easy-Langent × DataWhale 智能体开发教程
任务笔记 | 前言 + 第一章


本任务学什么

层级 内容
前言 为什么学这个课、Lang 系列定位、三个底层核心
第一章 LangChain 与 LangGraph 各自是什么、环境搭建、Hello World
学完目标 能区分两个框架、能跑通基础案例、理解底层核心在后续的延伸

一、langent 是什么

langent = Lang(框架)+ agent(智能体)

打破"理论"与"实战"的壁垒,实现从懂概念到会开发的跨越。

学这门课,不是为了背概念,而是为了能真正动手写出 Agent 应用。


二、Lang 系列 vs 低代码平台

LangChain + LangGraph Dify / Coze
定位 生产级、定制化开发 原型验证、轻量应用
核心能力 状态机 + 复杂流程编排 拖拽模板
适用边界 多智能体协作、私有化部署 简单对话机器人

简单场景用低代码快速验证,复杂生产场景用 Lang 系列。


三、LangChain vs LangGraph 核心对比 ⭐

两者的关系:不是竞争,而是互补。一个帮你快速搭基础,一个帮你管控复杂流程。

LangChain LangGraph
一句话定位 大模型应用的"基础设施工具箱" 复杂应用的"架构设计框架"
类比 乐高积木 建筑设计图
擅长 快速搭简单~中等复杂度应用 多步骤流程、状态协作、人机交互
核心能力 组件拼接 State + Node + Edge
代表场景 文本生成、简单 RAG、单步工具调用 论文多步总结、多 Agent 协作、用户确认流程
难度 低,上手快 中,结构清晰但概念多

一句话记住

  • 简单任务 → LangChain(快)
  • 复杂流程 → LangGraph(稳)
  • 实际开发 → 融合用

四、LangChain 1.0 三层架构

langchain_core   ──→  地基:核心抽象(Runnable、BaseParser)
       ↓
   langchain      ──→  房间:高级组件(Chains、Memory)
       ↓
langchain_openai ──→  门窗:第三方模型适配

分层目的(关注点分离)

  • 核心团队专注 langchain_core,不疲于维护第三方 API 变更
  • 社区可自由开发自己的集成包(langchain-google-genailangchain-community
  • 开发者按需安装,不用装一个巨大单体包

五、LangGraph 五大核心概念 ⭐

概念 作用 一句话
State 贯穿工作流的数据容器,保存中间结果 "流水线上的传送带"
Node 每个节点 = 一个函数 = 一个具体任务 "工厂里的各道工序"
Edge 定义节点之间的执行顺序 "工序之间的流向图"
compile 把图定义编译成可执行实例 "图纸变成工厂"
invoke 传入初始状态,按顺序执行节点 "启动工厂生产"

State 是关键:LangChain 没有显式状态管理,LangGraph 的 State 让多步骤任务的中间结果自动传递——这是两者最核心的区别。


六、三个底层核心(贯穿全课程)⭐

💡 后续所有章节都在围绕这三个核心展开,这里先建立感知,后续会反复用到。

核心 含义 本章关联
状态机设计 流程怎么走、何时循环、何时停止 LangGraph 的 State + Edge = 状态机实现载体
工具调用逻辑 智能体与外界交互的桥梁 LangChain 的工具生态(后续章节深入)
多智能体协作 多个智能体如何分工、协调 LangGraph 多 Node 分工(后续章节深入)

七、环境搭建要点

Python:≥ 3.10(推荐 3.10)
LangChain & LangGraph:必须 ≥ 1.0.0  ⚠️
虚拟环境:venv / Conda / uv(推荐 uv,快 10-100 倍)

安装命令

# pip / conda
pip install langchain langgraph langchain-openai python-dotenv ipykernel

# uv(推荐)
uv add langchain langchain-openai langgraph langchain-community ipykernel

三个必须记住的坑

  1. 版本 < 1.0.0 的旧教程直接跳过,API 已不兼容
  2. API 密钥绝不写进代码,必须用 .env + load_dotenv()
  3. 依赖装不上 → 加国内源:pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple

八、代码核心模板

LangChain 最简模板(3步走)

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-chat",   # 切换模型只需改这里
    temperature=0.3
)
response = llm.invoke("你的提示词")
print(response.content)

LangGraph 最简模板(5步走)

# 1. 定义 State(数据容器)
class WorkflowState(TypedDict, total=False):
    中间结果: str

# 2. 定义 Node(任务函数)
def my_node(state: WorkflowState):
    result = llm.invoke("处理逻辑")
    return {"中间结果": result.content}

# 3. 构建图
workflow = StateGraph(WorkflowState)
workflow.add_node("任务名", my_node)
workflow.add_edge(START, "任务名")
workflow.add_edge("任务名", END)

# 4. 编译
app = workflow.compile()

# 5. 执行
result = app.invoke({"初始数据": 值})

九、自检清单

学完 Task 1,用这个清单判断是否真正掌握:

前言部分

  • 能说出 langent 是什么、课程目标是什么
  • 能区分 LangChain 和 LangGraph 的分工
  • 能说清楚三个底层核心是什么
  • 能判断一个场景用低代码还是 Lang 系列

第一章部分

  • 能画出 LangChain 三层架构(core / langchain / openai)
  • 能默写 LangGraph 五大核心概念(State / Node / Edge / compile/invoke)
  • 能说清楚两者关系:从属 + 互补,实际开发融合用
  • 能区分:简单任务 → LangChain,复杂流程 → LangGraph
  • 环境能跑通:虚拟环境 + 依赖安装 + .env 配置 + 两个案例运行
  • 知道版本坑:LangChain/LangGraph ≥ 1.0.0,旧教程直接跳过

十、你可能没想到的几个点

1. 为什么 LangGraph 不是独立框架?
因为它依赖 LangChain 的组件(模型调用、工具),是站在 LangChain 肩膀上的进阶层,不是在造新轮子。

2. State 为什么用 TypedDict?
LangGraph 的状态必须是 dict 类型,TypedDict 让类型提示更清晰,方便调试和维护,减少隐式 bug。

3. 为什么 model 写死了 deepseek-chat
课程统一用 DeepSeek 做演示。切换模型只需改一个参数——这就是 LangChain 封装的价值:统一接口,切换底座模型零感知

4. 前言和第一章的关系?
前言解决"为什么要学",第一章解决"学什么 + 怎么入门"。学完本章才算真正把脚迈进 Agent 开发的大门。


笔记整理:Easy-Langent × DataWhale · 第一周任务

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐