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

LangChain + LangGraph 环境搭建与快速入门:从零构建你的第一个 AI Agent
图片来源网络,侵权联系删。
在这里插入图片描述

文章目录

引言:为什么这个问题值得关心?

你是否曾想过,如何让大模型(LLM)不只是“回答问题”,而是能像人一样分步骤思考、调用工具、循环修正?2024 年起,LangChain 生态中的 LangGraph 正在成为构建复杂 AI Agent 的标准范式。它基于状态机(State Machine)模型,让开发者能清晰定义“推理-行动-反思”的闭环流程。然而,许多工程师卡在第一步:环境配置混乱、示例跑不通、日志看不懂。本文将带你用最简路径完成 LangChain + LangGraph 的本地部署,并运行你的第一个可调试的智能体程序。


在这里插入图片描述

背景与挑战

LangChain 早期版本以链式调用(Chains)为主,适合线性任务。但真实场景中,AI 需要循环决策(如:查天气 → 发现下雨 → 建议带伞 → 用户追问品牌 → 调用电商 API)。传统 Chains 无法表达这种图结构逻辑。

LangGraph(由 LangChain 官方于 2024 年初推出)正是为解决此问题而生——它将工作流建模为有向图,每个节点是函数,边代表状态转移。但新手常遇到三大障碍:

  1. 依赖冲突:LangChain v0.2+ 与旧版不兼容,且需特定 Pydantic 版本
  2. 概念混淆:StateGraph、CompiledGraph、Node 等抽象层级不清
  3. 调试困难:默认日志过于简略,难以追踪状态变化

💡 专家点评:LangGraph 的核心价值不是“更强大”,而是“更可控”。它把 LLM 的黑盒行为转化为可审计、可中断、可重试的状态机,这对金融、医疗等高风险场景至关重要。


在这里插入图片描述

核心机制解析

1. 环境安装要点(Python ≥ 3.9)

# 创建干净虚拟环境(强烈推荐) python -m venv langchain-env source langchain-env/bin/activate # Linux/Mac# langchain-env\Scripts\activate # Windows# 安装核心库(截至 2025 年 11 月,LangChain v0.2.13 + LangGraph v0.1.8) pip install langchain-core langchain-community langgraph # 若需使用 OpenAI 模型(示例所需) pip install openai 
⚠️ 注意:避免同时安装 langchain 全家桶(含 deprecated 模块),应按需引入子包以减少依赖冲突。

2. 最小验证示例(Hello World)

from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, END # 定义状态结构(使用 TypedDict 更安全)from typing import TypedDict classState(TypedDict): message:str# 定义节点函数defgreet(state: State)->dict:return{"message":f"Hello, {state['message']}!"}# 构建图 builder = StateGraph(State) builder.add_node("greet", greet) builder.set_entry_point("greet") builder.add_edge("greet", END)# 编译并运行 graph = builder.compile() result = graph.invoke({"message":"Alice"})print(result)# 输出: {'message': 'Hello, Alice!'}

💡 关键原理StateGraph 是一个声明式构建器compile() 后生成可执行的 CompiledGraph。每次 .invoke() 都会完整走完图流程,状态在节点间传递。


在这里插入图片描述

实战演示:构建一个带循环的简单 Agent

我们扩展上例,实现“用户输入名字 → 模型问候 → 若名字含数字则重试”:

from langgraph.graph import StateGraph, END from typing import TypedDict, Annotated import re classState(TypedDict): name:str attempts:intdefvalidate_name(state: State):if re.search(r'\d', state["name"]):return{"name":"INVALID","attempts": state["attempts"]+1}return{"name": state["name"],"attempts": state["attempts"]}defrespond(state: State):if state["name"]=="INVALID":return{"name":"Please enter a valid name (no digits):"}return{"name":f"Hi {state['name']}!","attempts": state["attempts"]}defshould_retry(state: State)->str:return"respond"if state["name"]!="INVALID"or state["attempts"]>=3else"respond"# 构建图 builder = StateGraph(State) builder.add_node("validate", validate_name) builder.add_node("respond", respond) builder.set_entry_point("validate") builder.add_conditional_edges("validate",lambda s:"retry"if s["name"]=="INVALID"and s["attempts"]<3else"done",{"retry":"respond","done": END}) builder.add_edge("respond","validate")# 形成循环 graph = builder.compile()# 测试 result = graph.invoke({"name":"Alice123","attempts":0})print(result)
日志输出将显示多次状态流转,直到达到最大尝试次数或成功。
---

最佳实践与避坑指南

  1. 状态设计原则
    • 使用 TypedDict 明确字段类型,避免运行时错误
    • 状态应包含所有决策所需信息(如 attempts 计数器)
  2. Jupyter 集成技巧
    在 Notebook 中运行 .compile().get_graph().draw_mermaid_png() 可可视化流程图(需安装 pygraphviz 或使用 Mermaid Live Editor)。

调试利器:Rich Logger
安装 pip install rich,并在代码开头加入:

from rich.logging import RichHandler import logging logging.basicConfig(level="INFO", handlers=[RichHandler()])

可清晰看到每一步的输入/输出状态。

⚠️ 常见坑

  • 忘记 set_entry_point() 导致图无起点
  • 条件边返回值必须严格匹配目标节点名
  • 状态更新必须返回完整新状态字典,而非增量
在这里插入图片描述

总结

LangGraph 正快速演进:2025 年 Q3 将支持异步节点外部事件触发,使 Agent 能响应实时数据流。国内阿里通义实验室已在其 Qwen-Agent 框架中集成类似图引擎,用于电商客服场景。

下一步建议

  • 尝试集成 Tool Calling(如 TavilySearchAPIWrapper
  • 探索 Checkpointing 机制实现对话持久化
  • 关注 LangGraph 官方文档 获取最新模式
技术的本质不是炫技,而是可控的智能。从今天这个“Hello World”开始,你已站在构建下一代 AI 应用的起跑线上。

Read more

ChatGPT平替!LocalAI+cpolar让大模型在笔记本电脑跑起来,数据全程不联网

ChatGPT平替!LocalAI+cpolar让大模型在笔记本电脑跑起来,数据全程不联网

文章目录 * 前言 * 【视频教程】 * 1. Docker部署 * 2. 简单使用演示 * 3. 安装cpolar内网穿透 * 4. 配置公网地址 * 5. 配置固定公网地址 前言 当你需要处理商业合同却担心GPT泄露机密时,LocalAI给出了完美解决方案——这个开源项目让Llama、Stable Diffusion等大模型直接运行在个人设备上,所有数据处理全程不离开本地网络。最令人惊喜的是它突破性地支持CPU推理,我的四年老笔记本也能流畅运行7B参数模型,彻底消除了AI使用的硬件门槛。现在我用它处理客户合同,再也不用担心敏感信息上传云端,这种"隐私安全感"是商业AI服务无法比拟的。 在法律文书处理场景中,LocalAI的"私有化部署"特性展现出独特优势——我将客户的保密协议导入本地模型,让AI辅助生成条款建议,整个过程文档从未离开办公电脑。而"模型切换"功能则让我能随时在法律专用模型和通用写作模型间切换,这种灵活性比单一功能的AI工具实用得多。记得有次周末在家加班,通过LocalAI的"离线语音转写"

2026年1月16日- 白嫖Claude Opus 4.5!Kiro + AIClient-2-API 让你免费用上顶级AI

2026年1月16日- 白嫖Claude Opus 4.5!Kiro + AIClient-2-API 让你免费用上顶级AI

前言 在AI辅助开发工具快速发展的今天,各大厂商纷纷推出自己的AI编程助手。好家伙,继GitHub Copilot、Cursor、Claude Code之后,AWS也按捺不住了,在2025年7月正式推出了自家的AI IDE——Kiro。这款工具不仅支持Claude Sonnet 4、Claude Opus 4.5等顶级大模型,而且新用户注册就送550积分,相当于白嫖数百次高质量AI对话,这对于想要体验顶级AI编程能力的小伙伴来说简直是福音。 但问题来了,Kiro目前只能在其IDE内部使用,如果我们想在其他工具比如Cherry Studio、Claude Code中使用这些免费额度怎么办?这就需要借助一个神器——AIClient-2-API。这个开源项目可以将Kiro等AI客户端的能力转换为标准的OpenAI API格式,让我们能够在任何支持OpenAI API的第三方工具中使用Kiro的免费额度,实现真正的"白嫖"顶级大模型。 最近两天我解锁了 Kiro 搭配 AIClient-2-API 的 “邪修玩法”,今天就手把手带大家实操:从注册 Kiro 账号、

【全网最详细!十万字解析】SpringAI+Deepseek大模型应用开发实战笔记-上半(进阶+详细+完整代码)

【全网最详细!十万字解析】SpringAI+Deepseek大模型应用开发实战笔记-上半(进阶+详细+完整代码)

前言         全网目前最完整的针对黑马程序员的SpringAI+Deepseek大模型应用课程的学习笔记         在课程的基础之上进行了许多的拓展和延伸         相信一定可以帮到你更好的学习和掌握大模型应用的开发和SpringAI的运用         希望觉得有用的小伙伴可以点赞收藏关注!!!         目前文章还剩一点没更新完,后续会把完整前后端开发好的代码传上去,现在因为还没有完全改好,怕涉及侵权文档,不敢直接发,后续我把前端也做一定修改之后,会打包一起分享出来        下半部分链接:【全网最详细!十万字解析】黑马SpringAI+Deepseek大模型应用开发实战笔记-下半(进阶+详细+完整代码)-ZEEKLOG博客        后端完整代码:GM828/HFUT-AIChat: SpringAI实战项目,实现了Prompt+FunctionCalling+RAG的功能,通过MySQL和Redis进行数据持久化操作 目录 前言 1.对话机器人 1.1对话机器人-初步实现 1.1.1引入依赖 1.1.2配置模型信息

人工智能:多模态大模型原理与跨模态应用实战

人工智能:多模态大模型原理与跨模态应用实战

人工智能:多模态大模型原理与跨模态应用实战 1.1 本章学习目标与重点 💡 学习目标:掌握多模态大模型的核心原理、跨模态特征融合方法,以及基于多模态模型的图文生成与理解任务实战流程。 💡 学习重点:理解多模态模型的架构设计,学会使用 Hugging Face 生态工具调用 CLIP 与 BLIP-2 模型,完成图文检索与图像描述生成任务。 1.2 多模态大模型的核心概念与发展背景 1.2.1 什么是多模态大模型 💡 多模态大模型是指能够同时处理文本、图像、音频、视频等多种不同类型数据的人工智能模型。它打破了传统单模态模型的信息壁垒,实现了跨模态的理解与生成。 多模态大模型的核心能力体现在两个方面: * 跨模态理解:实现不同模态数据之间的关联分析,例如根据文本描述查找对应图像、根据图像内容生成文字摘要。 * 跨模态生成:以一种模态数据为输入,生成另一种模态的数据,例如文本生成图像、图像生成文本、语音生成视频等。 与单模态大模型相比,多模态大模型更贴近人类的认知方式。人类在认识世界的过程中,本身就是通过视觉、听觉、语言等多种感官渠道接收和处理信息的。