# AI 智能体开发(LangChain + LangGraph) ## 课程简介 本课程面向具备 Python 基础语法的大学生和 AI 应用开发初学者,系统讲解如何使用 **大语言模型 API、LangChain、RAG、向量数据库、LangGraph** 构建 AI 智能体应用。 课程不是停留在“调用大模型聊天”,而是围绕真实智能体开发流程,帮助学习者理解并实践:如何把大模型、Prompt、工具、知识库、状态管理、流程控制、人机协作、评估与部署组织成一个可运行、可测试、可交付的 AI 应用系统。 课程主线如下: ```text 开发环境 → 大模型 API 调用 → LangChain 基础组件 → Prompt / Chain / Parser / Tool → RAG 与向量数据库 → LangGraph 状态图 → 对话代理、任务调度、多智能体、人机协作 → 综合项目实战 → 部署、评估与课程总结 ``` ## 课程定位 本课程定位为 **AI 智能体开发入门到项目实战课程**,重点培养以下能力: - 能够独立搭建 Python + Jupyter + LangChain + LangGraph 开发环境; - 能够通过 OpenAI 兼容 API 调用大语言模型; - 能够使用 Prompt、链式组合、输出解析器构建稳定的大模型应用; - 能够定义工具,并让模型根据任务调用工具; - 能够使用 RAG 和向量数据库构建知识库问答系统; - 能够使用 LangGraph 构建有状态、可分支、可循环、可记忆的智能体流程; - 能够理解多智能体协作、任务调度和人机协作机制; - 能够完成从需求分析、MVP 实现到部署评估的完整项目闭环。 ## 适合人群 适合以下学习者: - 具备 Python 基础语法的大学生; - 想从大模型 API 调用进入 AI 应用开发的初学者; - 想系统学习 LangChain、RAG、LangGraph 的开发者; - 希望完成 AI 智能体项目作品的学生或工程实践者; - 对工具调用、多智能体、人机协作、任务自动化感兴趣的学习者。 ## 先修要求 建议学习者具备: - Python 基础语法; - 函数、列表、字典、类、异常处理等基础知识; - 基本命令行使用能力; - Jupyter Notebook 基础使用经验; - 对 HTTP API、JSON、环境变量有初步了解更佳。 ## 技术栈 - **开发工具**:VS Code - **编程语言**:Python 3.12.11 - **虚拟环境**:venv - **Notebook 环境**:Jupyter Notebook / ipykernel - **主要框架**:LangChain、LangGraph - **向量数据库**:ChromaDB - **大语言模型**:`qwen3.6-35b-A3b` - **向量模型**:`qwen3-embedding` - **API 方式**:OpenAI 兼容 API - **包管理**:pip + 清华大学 TUNA 镜像源 - **部署与评估**:FastAPI、Docker、日志、评估集、LangSmith 概念 ## 环境要求 - Python 3.10 及以上版本,推荐 Python 3.12.11 - 已安装 pip - 已安装 VS Code 和 Jupyter 相关插件 - 具备 OpenAI 兼容 API 访问权限 - 已获取可用的 `OPENAI_BASE_URL` 和 `OPENAI_API_KEY` ## 默认模型配置 本课程默认统一使用以下模型: | 类型 | 默认模型 | 用途 | | --- | --- | --- | | 大语言模型 | `qwen3.6-35b-A3b` | 对话、生成、推理、工具调用、智能体节点 | | 向量模型 | `qwen3-embedding` | 文档向量化、相似度检索、RAG 知识库 | 如实际 API 服务不支持上述模型,可根据服务提供方说明替换为等价模型,但建议在整门课程中保持模型名称统一,避免调试混乱。 ## 快速开始 ### 1. 克隆本仓库 ```bash git clone <仓库地址> cd AI智能体开发 ``` ### 2. 创建虚拟环境 ```bash python -m venv .venv ``` ### 3. 激活虚拟环境 Windows PowerShell: ```powershell .venv\Scripts\Activate.ps1 ``` macOS / Linux: ```bash source .venv/bin/activate ``` ### 4. 安装依赖 ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ### 5. 配置环境变量 在项目根目录创建 `.env` 文件: ```bash OPENAI_BASE_URL=https://your-base-url.com/v1 OPENAI_API_KEY=sk-your-api-key ``` ### 6. 选择 Jupyter 内核 在 VS Code 中选择 `.venv` 对应的 Python 解释器或 Jupyter Kernel,然后按顺序打开 `.ipynb` 课件学习。 ## 学习目标 完成课程后,学习者应能够: 1. 搭建 Python、VS Code、venv、Jupyter 的 AI 应用开发环境; 2. 使用 OpenAI 兼容 API 调用 `qwen3.6-35b-A3b`; 3. 掌握 PromptTemplate、ChatPromptTemplate、Few-shot Prompt 等提示模板方法; 4. 使用 LangChain 构建 LLM 链、结构化输出链和复杂 Runnable 链; 5. 定义计算、查询、文件处理等工具,并实现模型驱动的工具调用; 6. 使用 `qwen3-embedding`、ChromaDB 构建向量检索系统; 7. 构建完整 RAG 知识库问答应用; 8. 使用 LangGraph 构建状态图、节点、边、条件边、循环与记忆; 9. 实现对话代理、任务调度、多智能体协作和人机协作流程; 10. 完成知识库问答助手、多工具协作智能体、交互式智能体项目; 11. 理解智能体项目的部署、评估、日志、追踪和上线检查方法。 ## 推荐学习路径 ```text 01-02:环境准备 03-04:大模型 API 与 LangChain 入门 05-08:Prompt、LLM 链、输出解析器、链式组合 09-10:工具定义与工具调用 11-13:RAG、Embedding、向量数据库、知识库问答 14-19:LangGraph 状态图基础 20-23:高级智能体编排 24-26:综合项目实战 27-28:部署评估与课程总结 ``` > 注:从认知顺序看,建议学习者在学习第 05 课 LLM 链时,同时回看第 06 课 Prompt 模板。后续课程维护时,可考虑将 Prompt 模板提前到 LLM 链之前。 ## 详细课程大纲 ### 模块一:开发环境与 Python 项目配置 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 01 | `01_开发环境搭建.ipynb` | 开发环境搭建 | 可运行的本地 Python 虚拟环境 | | 02 | `02_Python环境配置.ipynb` | Python 环境配置 | 可复现的 Notebook 开发环境 | 本模块帮助学习者完成 VS Code、Python、venv、pip、Jupyter、依赖管理等基础准备,为后续运行大模型和智能体课件打好环境基础。 ### 模块二:大模型 API 与 LangChain 入门 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 03 | `03_大模型API调用.ipynb` | 大模型 API 调用 | 可调用 `qwen3.6-35b-A3b` 的 Python 示例 | | 04 | `04_LangChain概述.ipynb` | LangChain 概述 | 第一个 LangChain 调用链 | 本模块介绍 OpenAI 兼容 API、环境变量配置、单轮对话、多轮对话、流式输出,以及 LangChain 的框架定位和组件化开发思想。 ### 模块三:LangChain 核心组件 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 05 | `05_LLM链.ipynb` | LLM 链 | Prompt + LLM + Parser 基础链 | | 06 | `06_Prompt模板.ipynb` | Prompt 模板 | 可复用的 Prompt 模板 | | 07 | `07_输出解析器.ipynb` | 输出解析器 | 稳定结构化输出链 | | 08 | `08_链式组合.ipynb` | 链式组合 | 多步骤、多分支 Runnable 流程 | 本模块学习 LangChain 应用开发的核心组件,包括 Prompt 模板、模型调用、输出解析、Runnable、并行链、分支链和复杂链式组合。 ### 模块四:工具定义与工具调用 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 09 | `09_工具定义.ipynb` | 工具定义 | 自定义工具集合 | | 10 | `10_工具调用.ipynb` | 工具调用 | 能自动选择并调用工具的智能体 | 本模块从 `@tool` 工具定义开始,逐步学习计算工具、查询工具、文件工具、多工具注册、模型选择工具、工具执行与最终答案生成。 建议在学习本模块后重点理解 Agent 的基本循环: ```text 观察任务 → 思考方案 → 选择工具 → 执行工具 → 观察结果 → 生成答案 ``` ### 模块五:RAG 与向量数据库 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 11 | `11_检索增强.ipynb` | 检索增强 | 简单本地 RAG 问答链 | | 12 | `12_向量数据库.ipynb` | 向量数据库 | 基于 ChromaDB 的本地知识库检索 | | 13 | `13_RAG构建.ipynb` | RAG 构建 | 多文档知识库问答系统 | 本模块学习 RAG 的完整流程:文档加载、文本切分、`qwen3-embedding` 向量化、向量数据库存储、相似度检索、上下文构造、答案生成和检索效果评估。 推荐理解路径: ```text 为什么需要 RAG → 文档如何切分 → 文本如何变成向量 → 向量数据库如何检索 → 检索结果如何交给大模型回答 → 如何评估 RAG 效果 ``` ### 模块六:LangGraph 状态图基础 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 14 | `14_LangGraph概述.ipynb` | LangGraph 概述 | 最小 LangGraph 状态图 | | 15 | `15_图结构.ipynb` | 图结构 | StateGraph 总体结构示例 | | 16 | `16_状态管理.ipynb` | 状态管理 | 多字段业务状态设计 | | 17 | `17_节点与边.ipynb` | 节点与边 | 多节点顺序执行图 | | 18 | `18_条件边.ipynb` | 条件边 | 带条件判断的状态图 | | 19 | `19_循环与记忆.ipynb` | 循环与记忆 | 支持循环和持久化状态的智能体流程 | 本模块学习 LangGraph 的核心思想:用状态图管理复杂智能体流程。学习者将掌握 State、Node、Edge、START、END、条件边、循环、MemorySaver 和 thread_id 等关键概念。 ### 模块七:高级智能体编排 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 20 | `20_多智能体架构.ipynb` | 多智能体架构 | 多智能体协作工作流 | | 21 | `21_对话代理.ipynb` | 对话代理 | 支持上下文记忆的对话机器人 | | 22 | `22_任务调度.ipynb` | 任务调度 | 自动化任务调度智能体 | | 23 | `23_人机协作.ipynb` | 人机协作 | 带人工审批环节的智能体工作流 | 本模块从单智能体流程扩展到多智能体协作,学习监督者模式、流水线模式、辩论模式、对话代理、任务拆解、任务调度、人机确认与审批流程。 ### 模块八:综合项目实战 | 序号 | 课件 | 项目 | 核心产出 | | --- | --- | --- | --- | | 24 | `24_项目实战一.ipynb` | 个人知识库问答助手 | 知识库问答助手 MVP | | 25 | `25_项目实战二.ipynb` | 多工具协作型智能体 | 多工具智能体 | | 26 | `26_项目实战三.ipynb` | 带交互界面的学习任务助手 | 可交互智能体项目 | 三个项目形成如下递进: 1. **项目一:个人知识库问答助手** 聚焦 RAG 思想,完成文档准备、检索、答案生成和参考资料返回。 2. **项目二:多工具协作型智能体** 聚焦工具调用,完成搜索、计算、文件读取、工具选择、工具执行和结果汇总。 3. **项目三:带交互界面的学习任务助手** 聚焦项目封装和交互体验,完成意图识别、条件路由、历史记录和命令行交互。 后续可将项目三进一步升级为综合收官项目:整合 RAG、多工具、记忆、条件路由、CLI / Web 交互和自动评估用例。 ### 模块九:部署、评估与课程总结 | 序号 | 课件 | 主题 | 核心产出 | | --- | --- | --- | --- | | 27 | `27_部署与评估.ipynb` | 部署与评估 | 智能体上线检查与评估流程 | | 28 | `28_课程总结.ipynb` | 课程总结 | 后续学习路线与完整知识框架 | 本模块帮助学习者理解智能体应用如何从 Notebook Demo 走向工程交付,包括函数封装、命令行运行、API 服务、Docker、云部署、评估集、日志、追踪和上线检查清单。 ## 实践项目列表 | 项目 | 对应课件 | 项目类型 | 关键能力 | | --- | --- | --- | --- | | 第一个大模型 API 对话程序 | `03_大模型API调用.ipynb` | API 入门 | 环境变量、单轮/多轮/流式调用 | | 第一个 LangChain 程序 | `04_LangChain概述.ipynb` | 框架入门 | ChatOpenAI、Prompt、LCEL | | 结构化输出链 | `07_输出解析器.ipynb` | 输出解析 | JSON、Pydantic、格式约束 | | 智能客服工单处理链 | `08_链式组合.ipynb` | 链式组合 | 分类、摘要、并行分析、回复建议 | | 多功能工具集合 | `09_工具定义.ipynb` | 工具定义 | 计算、查询、文件处理工具 | | 工具调用型助手 | `10_工具调用.ipynb` | 工具智能体 | 工具选择、工具执行、结果汇总 | | 私有文档问答系统 | `11_检索增强.ipynb` | RAG 入门 | 文档加载、切分、检索、生成 | | ChromaDB 知识库 | `12_向量数据库.ipynb` | 向量数据库 | 持久化、相似度检索、元数据过滤 | | 多文档 RAG 系统 | `13_RAG构建.ipynb` | 完整 RAG | 多文档加载、检索评估、问答生成 | | 多智能体协作流程 | `20_多智能体架构.ipynb` | 多智能体 | 监督者、流水线、辩论、协作 | | 对话代理机器人 | `21_对话代理.ipynb` | 对话智能体 | messages、检查点、多轮记忆 | | 任务调度智能体 | `22_任务调度.ipynb` | 工作流智能体 | 任务拆解、执行、汇总 | | 人工审批工作流 | `23_人机协作.ipynb` | Human-in-the-loop | interrupt、resume、人工确认 | | 个人知识库问答助手 | `24_项目实战一.ipynb` | 综合项目一 | RAG、检索、回答、依据展示 | | 多工具协作型智能体 | `25_项目实战二.ipynb` | 综合项目二 | 搜索、计算、文件读取、工具选择 | | 学习任务助手 | `26_项目实战三.ipynb` | 综合项目三 | 意图识别、条件路由、历史记录、交互 | | 智能体部署与评估流程 | `27_部署与评估.ipynb` | 工程化项目 | API、评估集、日志、追踪、上线检查 | ## 课程优化说明 本课程已按以下原则进行优化: - 统一课程主线模型:LLM 使用 `qwen3.6-35b-A3b`,Embedding 使用 `qwen3-embedding`; - 清理 Notebook 已保存运行输出,避免残留报错、API Key 前缀和本地运行结果干扰学习; - 补齐 `requirements.txt` 中课程实际使用的关键依赖; - 将 Claude / Anthropic 调用作为扩展阅读,不作为课程主线默认运行内容; - 修正项目实战中的模型注释示例,避免出现与课程默认模型不一致的示例; - README 课程目录与实际项目内容保持一致。 ## 学习建议 1. 先完成 01-02 环境配置,确保 `.venv` 和 Jupyter Kernel 正确; 2. 学习 03 时重点确认 `.env` 中的 API 配置是否可用; 3. 学习 05-08 时重点掌握 Prompt、链、解析器和 Runnable 的组合方式; 4. 学习 09-10 时重点理解“工具让模型获得外部能力”; 5. 学习 11-13 时重点理解 RAG 的每个环节,而不是只运行最终代码; 6. 学习 14-19 时建议画流程图辅助理解 LangGraph 的状态、节点和边; 7. 学习 20-23 时关注单智能体到多智能体、人机协作的演进; 8. 学习 24-26 时建议主动扩展项目数据和功能,形成自己的项目作品; 9. 学习 27-28 时重点整理项目部署、评估、日志和后续学习路线。 ## 注意事项 - 每份课件都是独立的 `.ipynb` 文件,建议按顺序学习; - 运行课件前请确保虚拟环境已激活,并且 Jupyter 内核选择为 `.venv`; - 涉及大模型 API 的课件需要正确配置 `OPENAI_BASE_URL` 和 `OPENAI_API_KEY`; - 涉及 RAG 和向量数据库的课件默认使用 `qwen3-embedding`; - 如果 API 服务不支持工具调用、流式输出或指定模型,请根据服务商文档调整对应参数; - 项目实战中的部分案例为了教学稳定性使用规则模拟,学习者可在掌握流程后替换为真实 API 或真实数据源。 ## 后续拓展方向 完成本课程后,可以继续学习: - 更复杂的 ReAct Agent 和规划型 Agent; - 多模态智能体; - 企业知识库 RAG 优化; - Agent 评估体系与自动化测试; - LangGraph 生产级工作流; - MCP 工具生态; - Streamlit / Gradio / FastAPI 智能体 Web 应用; - 智能体权限控制、审计、安全与成本优化。