一文入门LangChain:从框架认知到构建你的第一个AI Agent

个人主页:夏天拐跑了西瓜

专栏传送门:《Redis入门到精通》、《Spring 生态全家桶体系化实战》、《Python AI Agent开发实战》

学习方向:Java 后端|AI‑Agent 大模型应用开发爱好者

⭐人生格言:路虽远,行则将至


【Python AI Agent实战01】LangChain入门:核心概念+天气查询Agent完整实现

🔥 本文是《Python AI Agent开发实战》系列教程的第一篇,带你全面了解LangChain框架的前世今生、核心能力和适用场景,并通过一个完整的Agent实战案例快速上手。

一、LangChain是什么?

LangChain是一个用于开发由大语言模型(LLM)驱动的应用程序的开源框架。

它并非仅是对模型API的简单封装,而是提供了一套完整的智能体(Agent)架构和丰富的工具集成,使开发者无需从零搭建复杂架构,就能快速构建基于LLM的高级AI应用。

1.1 诞生背景

LangChain诞生于2022年10月 ,由哈佛大学的 Harrison Chase(哈里森·蔡斯)创建。

其名称来源于 "Language"(语言模型)+ "Chain"(链式连接) 的组合,体现了核心设计理念------将大语言模型与外部计算资源和数据源以链式方式连接,构建功能更强大的AI应用。

1.2 为什么需要LangChain?

单一的大语言模型虽然能力强大,但在实际应用中存在明显局限:

局限性 说明
知识时效性 LLM的知识受限于训练数据,无法获取训练时点之后的信息
无法交互外部系统 模型无法直接与数据库、API等外部系统交互
无状态 模型本身不具备状态保持能力,难以进行连贯的多轮对话

因此,要构建真正实用的AI应用,必须将大语言模型与外部工具、数据源和记忆机制有机结合------这正是LangChain框架诞生的原因。

1.3 发展历程

  • 2022年10月:Harrison Chase 创建 LangChain 开源项目
  • 2024年:推出 LangGraph 作为底层智能体编排框架,原有链和智能体标记为弃用
  • 2025年10月20日 :正式发布 LangChain v1.0.0 与 LangGraph v1.0.0,标志着框架成熟和标准化

📚 官方文档地址


二、LangChain核心特点

2.1 统一的模型接口

各大模型提供商(OpenAI、Anthropic、DeepSeek、Google等)都有各自独特的API接口和参数规范。

LangChain通过统一的API抽象层解决了这个问题:

  • 开发者可以无缝切换不同模型而无需重写大量代码
  • 降低技术锁定风险
  • 轻松利用最新最先进的模型,加速实验和创新

2.2 模块化架构

LangChain采用高度模块化架构,核心组件包括:

开发者可以像搭积木一样组合各种功能,快速构建AI应用。

组件的可组合性体现在 LCEL(LangChain表达式语言) 中,允许通过管道操作符 | 将多个组件连接成复杂工作流:

python 复制代码
# LCEL 示例:检索增强生成流程
chain = retriever | prompt_template | llm

这种方式代码简洁,且天然支持流式输出、异步调用和并行执行。

2.3 智能体与工具调用

智能体(Agent)是LangChain最强大的特性之一,它将LLM从被动的文本生成器转变为能够主动决策和执行任务的智能系统。

核心机制:

智能体支持集成丰富的外部工具:搜索引擎、数据库、API接口等。工具是标准的函数接口,包含名称、描述和执行函数三个基本要素。

2.4 记忆管理机制

LangChain的记忆系统解决了纯LLM应用的无状态性问题:

  • 短期记忆:维护当前会话上下文
  • 长期记忆:记住用户偏好和历史交互
  • 多种存储后端:内存、文件、数据库

开发者可以根据应用需求灵活选择记忆类型和检索策略。


三、LangChain使用场景

3.1 检索增强生成(RAG)

LangChain最经典的应用场景,解决了大模型知识滞后和幻觉问题。

原理: 将外部知识源(文档、数据库等)向量化存储,在生成答案前先检索相关信息,使模型基于最新、最相关的数据生成回答。

3.2 Agent智能体构建

将LLM作为推理引擎,自主规划并执行复杂任务。

典型应用:

  • 🧳 智能旅行规划:依次调用航班查询、酒店预订、景点推荐等工具
  • 📊 市场调研:自动搜索行业报告、分析数据并生成简报
  • 🗄️ 数据分析:连接数据库,根据自然语言生成SQL并执行分析

3.3 对话系统与聊天机器人

通过记忆管理系统构建上下文感知的对话应用:

  • 电商客服:连接订单数据库,提供个性化推荐和售后支持
  • 教育助手:结合教材内容,解答学生学习问题

3.4 数据连接与处理

使LLM能够与各种数据源交互:

  • 从PDF合同中自动提取关键信息(各方、金额、条款)
  • 将自然语言转换为SQL查询数据库
  • 基于Excel数据生成趋势分析和报告

3.5 内容生成与自动化写作

通过提示模板和输出解析器确保生成内容符合特定格式:

  • 周报生成:从业务系统提取数据,按固定格式生成报告
  • 法律文书:基于模板和用户输入,产出符合规范的法律文件

3.6 多模态应用开发

处理图像、音频、视频等非文本数据:

  • 图像分析:上传图片 → 图像识别API → LLM基于描述回答问题
  • 语音交互:语音转文本 → LLM处理 → 文本转语音输出

四、快速上手实战

4.1 Python环境准备

LangChain 1.2版本要求 Python 3.10+。这里使用 Anaconda 来创建和管理Python环境。

bash 复制代码
# 创建名为 langchain_v1.2 的环境,指定Python版本3.13
conda create --name langchain_v1.2 python=3.13.11

# 查看已安装的Python环境
conda env list

# 切换到目标环境
conda activate langchain_v1.2

# 验证Python版本
python -V
# 输出: Python 3.13.11

# 退出当前环境
conda deactivate

# 删除环境(如需要)
conda remove --name langchain_v1.2 --all

4.2 创建项目及配置

Step 1:安装必要依赖
bash 复制代码
# 确保已切换到目标环境
conda activate langchain_v1.2

# 安装核心依赖
pip install langchain==1.2.0 langchain-deepseek==1.0.1 dotenv==0.9.9 -i https://pypi.tuna.tsinghua.edu.cn/simple

💡 依赖说明:

  • langchain:LangChain核心框架
  • langchain-deepseek:DeepSeek大模型集成包
  • dotenv:从项目根目录 .env 文件加载环境变量
Step 2:创建 .env 配置文件

在项目根目录下创建 .env 文件,配置大模型的API密钥:

env 复制代码
DEEPSEEK_API_KEY=sk-xxxx
DEEPSEEK_BASE_URL=https://api.deepseek.com
Step 3:创建 env_utils.py(环境变量加载工具)
python 复制代码
import os
from dotenv import load_dotenv

# override=True 确保.env文件中的值优先
load_dotenv(override=True)

# 从环境变量读取配置
DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY")
DEEPSEEK_BASE_URL = os.getenv("DEEPSEEK_BASE_URL")
Step 4:创建 my_llm.py(模型初始化)
python 复制代码
from langchain_deepseek import ChatDeepSeek
from env_utils import DEEPSEEK_API_KEY, DEEPSEEK_BASE_URL

# 创建DeepSeek LLM实例
deepseek_llm = ChatDeepSeek(
    api_key=DEEPSEEK_API_KEY,
    api_base=DEEPSEEK_BASE_URL,
    model="deepseek-chat",
)

4.3 实战案例:Agent查询天气

下面通过一个完整的案例,使用LangChain创建一个能查询天气的Agent。

python 复制代码
from langchain.agents import create_agent
from my_llm import deepseek_llm


def get_weather(city: str) -> str:
    """获取给定城市的天气。"""
    # 模拟天气查询(实际项目中可接入真实天气API)
    return f"{city} 天气晴朗!"


# 创建Agent
agent = create_agent(
    model=deepseek_llm,
    tools=[get_weather],
    system_prompt="你是一个助手,你可以查询城市的天气。",
)

# 调用Agent
resp = agent.invoke(
    {"messages": [{"role": "user", "content": "查询北京的天气"}]}
)

print(resp)
运行结果解读

Agent执行完成后,返回的 messages 列表记录了完整的交互过程:

python 复制代码
# 1️⃣ 用户消息 - 用户的原始查询
HumanMessage(content='查询北京的天气')

# 2️⃣ AI决策 - LLM分析后决定调用天气工具
AIMessage(
    content='我来帮您查询北京的天气。',
    tool_calls=[{'name': 'get_weather', 'args': {'city': '北京'}}]
)

# 3️⃣ 工具执行结果 - get_weather函数的返回值
ToolMessage(content='北京 天气晴朗!', name='get_weather')

# 4️⃣ AI最终回复 - 基于工具结果生成自然语言回答
AIMessage(content='根据查询结果,北京今天的天气是晴朗的!')

🎯 关键观察: Agent自动完成了"理解意图 → 选择工具 → 执行调用 → 生成回答"的完整流程,开发者只需定义工具和提示词即可。


五、项目结构总览

完成以上步骤后,项目结构如下:

复制代码
LangchainProject/
├── .env              # 环境变量配置(API密钥等)
├── env_utils.py      # 环境变量加载工具
├── my_llm.py         # LLM模型初始化
└── quick_start.py    # Agent实战案例

六、总结

本文介绍了LangChain框架的核心知识:

模块 要点
框架定位 用于开发LLM驱动应用的开源框架
核心理念 Language + Chain,链式连接LLM与外部资源
四大特点 统一模型接口、模块化架构、智能体工具调用、记忆管理
适用场景 RAG、Agent、对话系统、数据处理、内容生成、多模态
快速上手 环境配置 → 依赖安装 → 模型初始化 → Agent创建

下一篇预告: 我们将深入LangChain的模型调用机制,学习如何使用统一接口对接多种大模型。


参考资料


📝 作者注: 本系列基于 LangChain v1.2 + Python 3.13 编写,所有代码均已验证可运行。如果对你有帮助,欢迎点赞收藏关注!有问题评论区交流~

相关推荐
魔猴疯猿2 小时前
从0到1用Python开发第一个智能体
人工智能·python·深度学习·神经网络·机器学习
xiaoqi01953 小时前
机器学习因子分析实战:从量化特征到可视化决策
人工智能·python·机器学习
Escalating_xu3 小时前
【Python】基础语法(1):常量、变量、类型、输入输出与运算符
开发语言·python
weixin_461769404 小时前
机械臂SDK运行日志
conda·sdk
happylifetree4 小时前
Python14:核心语法-数据存储与运算-字符串定义
python
hhb_6184 小时前
AIRAGDebug:一键定位RAG链路异常
人工智能·python·算法
小静AI工程实验室4 小时前
asyncio.Queue 有界队列实战:背压、task_done、join 与异常收尾
python
小凡geo4 小时前
本地商家 GEO:用脚本一键生成 FAQPage 结构化数据,让 AI 切片更稳
开发语言·人工智能·python·microsoft·搜索引擎·ai
Zhou1411364 小时前
SpringBoot_03_Web开发
前端·spring boot·python