【agent篇】Langchain入门

发布时间:2026/8/14 17:01:42
【agent篇】Langchain入门 一.介绍1.1 定义LangChain开源 LLM 应用开发框架Python/JS 双版本用来串联大模型、私有文档、向量库、工具、API快速搭建 RAG、对话机器人、Agent 智能体。LangChain官网https://www.langchain.comhttps://www.langchain.comhttps://www.langchain.comhttps://www.langchain.com1.2 Agent1.2.1 定义Agent 会思考、能自主规划、主动调用工具完成复杂任务的大模型。1.2.2 四要素感知观察拿到用户目标、历史对话、工具返回结果。思考推理 / Thought我现在拥有哪些信息信息够不够回答缺什么行动Action调用工具搜索、读取文件、执行代码、查询数据库、调用 API。记忆Memory记住之前做过什么、工具返回了什么避免重复操作。1.2.3 agent工作流程图1.3 LangChain、Chain、Agent 的核心区别概念LangChainChainAgent角色舞台提供场地、灯光、道具剧本固定的台词和走位演员根据剧情即兴发挥决策权无是环境无按剧本走有自主决定灵活性高提供各种组件低步骤固定极高动态规划复杂度框架复杂度任务复杂度智能体复杂度关键区别是什么框架怎么做固定流程谁来做怎么做自主流程二.开发准备2.1 Langchainuv add langchain不同模型的安装依赖# 集成 DeepSeek uv add langchain-deepseek 集成 OpenAI uv add langchain-openai 集成 Anthropic uv add langchain-anthropic包名作用langchainLangChain 核心框架提供 Chain、Agent、Memory 等功能langchain-openai接入 OpenAI 接口python-dotenv读取.env文件里的 API Key不用把密钥写死在代码里jupyterlab网页版笔记本可以边写边跑代码适合学习和实验2.2 uvuv是一个用 Rust 编写的极速 Python 包管理器和解析器由 Astral 团队开发也是 Ruff 的开发者。它旨在替代 pip、pip-tools、pipenv、poetry、virtualenv 等工具提供更快的依赖安装和虚拟环境管理。为什么选择 uv极速安装比 pip 快 10-100 倍比 poetry 快 5-50 倍统一工具链一个工具替代多个 Python 包管理工具兼容性好完全兼容 pip 和 pip-tools 的工作流跨平台支持 Windows、macOS、Linux现代化设计内置虚拟环境管理、依赖锁定、项目脚手架等功能2.2.1 安装方法方法一使用 pip 安装推荐# 使用 pip 安装 uv pip install uv 验证安装 uv --version方法二使用安装脚本Linux/macOS# 使用 curl 安装 curl -LsSf https://astral.sh/uv/install.sh | sh 或者使用 wget wget -qO- https://astral.sh/uv/install.sh | sh 安装后需要重启终端或运行 source ~/.bashrc # 或 source ~/.zshrc方法三Windows 安装# 使用 pip推荐 pip install uv 或者使用 PowerShell powershell -c irm https://astral.sh/uv/install.ps1 | iexWindows 用安装脚本装完后当前终端的 PATH 不会立即生效可以新开一个终端2.2.2 uv 与 pip 命令对比功能pip 命令uv 命令说明安装包pip install langchainuv add langchainuv add 会自动更新 pyproject.toml批量安装pip install -r requirements.txtuv pip install -r requirements.txtuv 兼容 pip 命令创建虚拟环境python -m venv .venvuv venvuv 更简洁快速列出依赖pip listuv pip listuv 通过 uv pip 子命令兼容生成锁文件pip freeze requirements.txtuv lockuv 生成 uv.lock 文件三.项目创建3.1 创建项目目录首先目录下右键创建文件并命名PyCharm 打开项目的正确方式PyCharm 新建项目向导不支持 uv正确流程是先在终端用uv init创建项目再用 PyCharm → File → Open → 打开项目文件夹配置解释器选.venv\Scripts\python.exe3.2 初始化 uv 项目uv init --python 3.123.3 安装相应的包uv add langchain langchain-openai python-dotenv jupyterlab3.4 配置 API Key3.4.1 创建.env文件右键创建时容易建成文件夹。确认.env是一个文件不是文件夹。3.4.2 输入相应信息OPENAI_API_KEYsk-你的key OPENAI_BASE_URLhttps://api.openai.com/v1 DEEPSEEK_API_KEYsk-你的deepseek-key ANTHROPIC_API_KEYsk-你的claude-key.gitignore里有这两行防止密钥泄露.env.ipynb_checkpoints/3.5 启动 JupyterLabuv run jupyter lab3.5 代码实例# 1.加载环境变量自动找项目根目录的 .env from pathlib import Path from dotenv import load_dotenv from datetime import datetime import os load_dotenv(Path(__file__).parent.parent / .env) # 检查 key 是否加载成功 if not os.getenv(OPENAI_API_KEY): raise SystemExit(❌ 未找到 OPENAI_API_KEY请确认项目根目录下有 .env 文件) # 2.导入依赖 from langchain_core.tools import tool from langchain.agents import create_agent from langchain_openai import ChatOpenAI # 3.定义工具 tool def get_current_time() - str: 获取当前系统时间 return datetime.now().strftime(%Y-%m-%d %H:%M:%S) # 4.创建模型用 DeepSeek 走 OpenAI 兼容接口key 和 base_url 从 .env 读取 llm ChatOpenAI(modeldeepseek-v4-flash) # 5.定义Agent工具必须在创建 Agent 之前定义好 agent create_agent( llm, # 传入 LLM 对象 tools[get_current_time], # 工具集 ) # 6.调用模型 print( 正在调用大模型...) response agent.invoke({ messages: [ {role: user, content: 今天几月几日} ] }) # 7.打印结果只输出最终回复不输出内部调试信息 print(response[messages][-1].content)结果