easy-langent Task01
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-genai、langchain-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.0.0 的旧教程直接跳过,API 已不兼容
- API 密钥绝不写进代码,必须用
.env+load_dotenv() - 依赖装不上 → 加国内源:
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 · 第一周任务
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)