Token导航 LogoToken导航TokenDH.com
Langchain Agent Demo logo
AI代理stdio官方级别未说明来源级核验

Langchain Agent Demo

MCP Server

LangChain和LangGraph的全面教育演示,涵盖从基础概念到高级多代理系统的AI应用开发,包括MCP集成和LangSmith监控。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理PythonRAG

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Pierre-Clayton

提供方

Pierre-Clayton

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python setup.py

详细介绍

🤖 LangChain & LangGraph - 完整的AI代理演示

完整文档 - 您开始学习并掌握LangChain所需的一切

📚 本项目是对LangChain和LangGraph的全面教学演示,涵盖了从基础概念到高级多智能体系统的知识,并集成了MCP(可能是指某种机器学习或计算平台)以及使用LangSmith进行监控。

______________________________________________________________________

📑 目录

  1. 引言
  2. 完整安装
  3. 配置
  4. 快速入门
  5. 项目结构
  6. 详细示例
  7. 建筑
  8. MCP集成
  9. 使用LangSmith进行监控
  10. 学习路径
  11. 生产
  12. 故障排除

______________________________________________________________________

🎯 介绍

这个项目是什么?

这个演示是一个 完整的教育指南 使用LangChain和LangGraph构建AI应用。它包含 60多个实操示例 覆盖:

  • 基础原理/基本要素链条、提示、大型语言模型(LLM)交互模式
  • 智能代理工具,ReAct模式
  • 对话记忆背景与历史
  • ✅(对号,表示正确、确认或完成) 状态机使用LangGraph处理复杂工作流
  • 多智能体系统协调与合作
  • RAG(检索增强生成)语义搜索与文档问答
  • MCP(根据上下文,MCP可能代表多个含义,如“最小化成本生产”、“多协议转换器”等,具体翻译需结合语境)实际生产服务器(Fetch 和 Canva)
  • ✅ 翻译为中文是:“正确”或“对”。 监测使用LangSmith进行可观测性和调试

为什么要使用这个项目?

  • 📖(书) 教育学的;教学的每个示例都有文档记录和详细解释
  • 🎯(目标/靶心) 渐进式的;进步的从初学者到专家
  • 💻(电脑) 实用的可运行代码
  • 🏭 表示“工厂”或“工业建筑”。 生产最佳实践包括
  • 🎨 表示“美术”或“艺术创作”的相关符号。 互动的漂亮的命令行界面

______________________________________________________________________

🚀 完整安装

先决条件

在开始之前,请确保你已具备:

  • Python 3.10或更高版本下载Python)
  • 一个OpenAI API密钥拿到钥匙
  • Git(版本控制系统) (可选,用于克隆项目)

步骤1:准备环境

选项A:自动化设置(推荐)

# 1. Navigate into the project folder
cd langchain-agent-demo

# 2. Run the setup script
python setup.py

该脚本将:

  • ✅ 验证您的Python版本
  • ✅ 创建 .env 文件
  • ✅ 创建所需的目录
  • ✅ 提供安装依赖项的服务

选项B:手动设置

# 1. Navigate into the project folder
cd langchain-agent-demo

# 2. Create a virtual environment (recommended)
python -m venv venv

# 3. Activate the virtual environment
# macOS/Linux:
source venv/bin/activate
# Windows:
venv\Scripts\activate

# 4. Install dependencies
pip install -r requirements.txt

# 5. Create the configuration file
cp .env.example .env

步骤2:验证安装

# Verify installation
python -c "import langchain; import langgraph; print('✅ Installation successful!')"

如果你看到“✅ 安装成功!”那就表示一切就绪,可以开始了!

______________________________________________________________________

⚙️ 配置

基本配置(必需)

1. 设置您的OpenAI API密钥

打开 .env 文件并添加您的API密钥:

# .env
OPENAI_API_KEY=sk-your-api-key-here

如何获取OpenAI API密钥:

  1. 访问 https://platform.openai.com/
  2. 创建账户或登录
  3. 前往“API密钥”
  4. 点击“创建新的密钥”
  5. 复制密钥并粘贴到 .env

2. 选择模型(可选)

默认情况下,该项目使用 gpt-4o-mini你可以改变它:

# .env
DEFAULT_MODEL=gpt-4o-mini  # Cost-effective
# Or use:
# DEFAULT_MODEL=gpt-4o      # More powerful, higher cost

高级配置(可选)

1. LangSmith(监控)

如果您想启用监控和追踪功能:

# .env
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=your-langsmith-key
LANGCHAIN_PROJECT=langchain-agent-demo

如何获取LangSmith:

  1. 访问 https://smith.langchain.com/
  2. 创建一个免费账户
  3. 创建一个项目
  4. 复制您的API密钥

2. 其他大型语言模型(LLM)提供商(可选)

# .env
ANTHROPIC_API_KEY=your-anthropic-key
COHERE_API_KEY=your-cohere-key

验证配置

# Test that configuration is valid
python -c "from config.settings import validate_api_keys; validate_api_keys()"

______________________________________________________________________

🎮 快速入门

方法1:交互式界面(推荐)

交互界面是 最容易的 探索所有示例的方法:

python main.py

你会看到一个简洁的菜单:

🤖 LangChain & LangGraph Educational Demo

📚 Example Categories
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
No.  Category                Description
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1    Basic Chains           Learn fundamental concepts
2    Prompt Engineering     Master prompt templates
3    LLM Interactions       Explore LLM patterns
...

导航:

  • 输入 数字;号码 你想要尝试的那个例子
  • 类型 帮助 作为快速指南
  • 类型 关于 如需更多信息
  • 类型 0 退出

方法2:运行所有示例

按顺序运行所有示例:

python run_all_examples.py

⚠️(警告或注意的符号) 这可能会花费一些时间并消耗API积分!

方法3:运行一个具体示例

直接运行特定模块:

# Example: Basic chains
python -m src.01_basics.chains

# Example: Simple agent
python -m src.02_agents.simple_agent

# Example: LangGraph
python -m src.04_langgraph.simple_graph

# Example: Multi-agent system
python -m src.05_multi_agent.research_team

# Example: RAG (document Q&A)
python -m src.06_rag.qa_system

# Example: MCP Integration
python -m src.07_mcp.mcp_integration

# Example: LangSmith Monitoring
python -m src.08_monitoring.langsmith_monitoring

快速测试

快速验证一切是否正常工作:

# Simple test
python -c "from langchain_openai import ChatOpenAI; from config.settings import settings; llm = ChatOpenAI(model=settings.default_model); print(llm.invoke('Hello!').content)"

如果你看到回复,那就万事大吉了! 🎉

______________________________________________________________________

📁 项目结构

概述

langchain-agent-demo/
│
├── 📄 README.md                    # This file - Complete documentation
├── 📦 requirements.txt             # Python dependencies
├── ⚙️  .env.example                # Configuration template
├── 🚀 main.py                      # Interactive interface (ENTRY POINT)
├── 🏃 run_all_examples.py          # Run all examples
├── 🔧 setup.py                     # Setup script
│
├── 📂 config/                      # Configuration
│   ├── __init__.py
│   └── settings.py                 # Environment variables management
│
├── 📂 src/                         # Source code (8 modules)
│   ├── __init__.py
│   │
│   ├── 01_basics/                  # MODULE 1: Fundamentals
│   │   ├── chains.py               # Basic chains (7 examples)
│   │   ├── prompts.py              # Prompt engineering (5 examples)
│   │   └── llm_examples.py         # LLM interactions (7 examples)
│   │
│   ├── 02_agents/                  # MODULE 2: Agents
│   │   ├── custom_tools.py         # Custom tools
│   │   ├── simple_agent.py         # Basic agents (4 examples)
│   │   └── react_agent.py          # ReAct pattern (4 examples)
│   │
│   ├── 03_memory/                  # MODULE 3: Memory
│   │   └── conversation_memory.py  # Conversation memory (6 examples)
│   │
│   ├── 04_langgraph/               # MODULE 4: State Machines
│   │   ├── simple_graph.py         # Simple graphs (5 examples)
│   │   └── conditional_graph.py    # Conditional routing (4 examples)
│   │
│   ├── 05_multi_agent/             # MODULE 5: Multi-Agents
│   │   └── research_team.py        # Team workflows (4 examples)
│   │
│   ├── 06_rag/                     # MODULE 6: RAG
│   │   └── qa_system.py            # Q&A system (5 examples)
│   │
│   ├── 07_mcp/                     # MODULE 7: MCP Integration
│   │   └── mcp_integration.py      # MCP protocol (5 examples)
│   │
│   ├── 08_monitoring/              # MODULE 8: Monitoring
│   │   └── langsmith_monitoring.py # LangSmith (6 examples)
│   │
│   └── utils/                      # Utilities
│       ├── display.py              # Rich terminal UI
│       └── helpers.py              # Common helpers
│
└── 📂 examples/                    # Sample data
    └── sample_documents/
        └── sample.txt              # Example doc for RAG

模块拆解

模块文件示例描述
(翻译结果)--------------------------------------(此行内容为表格分隔线,无实际翻译意义) **** 01_基础
319基本链、提示和大型语言模型(LLM)交互**** 02_代理
38携带工具的代理,ReAct模式**** 03_内存
16会话内存管理**** 04_langgraph
29状态机和工作流**** 05_多智能体
14协调多智能体系统**** 06_rag
15语义搜索与问答**** 07_mcp(这个翻译保持了原样的形式,因为“07_mcp”可能是一个特定的代码、标识或缩写,没有具体的上下文难以给出更准确的翻译,所以直接保留了原样。)
15模型上下文协议集成**** 08_监控
16监控和可观测性** 总计 13 六十二 ** 完整、可运行的示例

______________________________________________________________________

|

📖 详细示例

模块1:基础(01_基础知识/)

📝 chains.py - 基本链(或“基本链条”)

  • 你将学到:
  • 如何构建一个简单的链表
  • LCEL(LangChain 表达式语言)语法
  • 顺序链组合
  • 结构化输出解析(JSON)

处理多个输入

  1. 包含的示例:简单链 prompt | llm | output_parser
   prompt = ChatPromptTemplate.from_template("Tell a joke about {topic}")
   chain = prompt | llm | StrOutputParser()
   response = chain.invoke({"topic": "programming"})
  1. 顺序链
  1. 多步骤流水线结构化输出
  1. 使用 Pydantic 解析 JSON多个输入
  1. 多变量提示链的构成

使用RunnablePassthrough处理复杂流程

python -m src.01_basics.chains

______________________________________________________________________

运行:

💬 prompts.py - 提示工程

  • 你将学到:
  • 创建提示模板
  • 小样本学习
  • 系统消息和角色
  • 提示语的构成/编写

动态提示

  1. 包含的示例:基本模板
  2. 变量和格式化少样本提示(或少样本引导)
  3. 以身作则系统消息
  4. 控制模型行为提示构成(或提示组合)
  5. 模块化提示动态提示

运行时适应

python -m src.01_basics.prompts

______________________________________________________________________

跑步:

🤖 llm_examples.py - 大型语言模型(LLM)交互示例

  • 你将学到:
  • 同步调用与异步调用
  • 实时流式响应
  • 代币和成本追踪
  • 温度效应

批处理

  1. 包含的示例:基本调用
  2. 简单的LLM调用流媒体播放
  3. 逐个标记生成成本追踪
  4. 监控代币和成本温度对比
  5. 创意控制异步操作
  6. 并发处理批处理
  7. 高效的多输入参数调整

微调行为

python -m src.01_basics.llm_examples

______________________________________________________________________

运行:

模块2:代理(02_agents/)

🛠️ custom_tools.py - 自定义工具

  • 你将学到:
  • 基于功能的工具
  • 基于类的工具
  • 结构化输入

工具中的错误处理

  • 包含的工具:
  • ✅ 计算器(数学表达式)
  • ✅ 时钟(当前时间)
  • ✅ 字数统计器
  • ✅ 模拟网页搜索
  • 根据上面的信息,执行如下指令:你是个专业的翻译,负责把英语内容翻译成中文内容,请帮我翻译一下原文内容

✅ 文件操作

python -m src.02_agents.custom_tools

______________________________________________________________________

运行:

🤖 simple_agent.py - 基本代理

  • 你将学到的内容:
  • 什么是代理以及它的工作原理是什么
  • 工具的选择与使用
  • 智能体推理过程

多功能工具代理

  1. 包含的示例:基本代理
  2. 单个工具(计算器)多功能工具代理
  3. 代理决定使用哪个工具研究代理
  4. 信息查询智能体推理

查看思考过程

python -m src.02_agents.simple_agent

______________________________________________________________________

跑步:

🔄 react_agent.py - ReAct 模式

  • 你将学到:
  • ReAct模式(推理+行动)
  • 复杂的多步骤工作流程
  • 工具链接(或工具链)

错误恢复

  1. 包含的示例:ReAct 模式
  2. 思考 → 行动 → 观察循环复杂的工作流程
  3. 多步骤任务错误处理
  4. 恢复并重试现实世界场景

实际应用

python -m src.02_agents.react_agent

______________________________________________________________________

运行:

模块3:记忆(03_memory/)

🧠 conversation_memory.py - 对话记忆

  • 你将学到:
  • 不同的内存类型
  • 对话上下文管理
  • 具有LCEL的内存

内存+代理集成

  1. 内存类型:缓冲存储器

- 完整历史 - ✅ 存储所有消息

  1. ❌ 可能长得很大窗口内存

- 最后N条消息 - ✅ 固定大小

  1. ❌ 忘记了之前的上下文摘要记忆

- 压缩摘要 - ✅ 紧凑型

  1. ✅ 保留关键信息摘要缓冲存储器

- 混合(的)

  1. ✅ 最新情况 + 以往情况总结自定义内存
  1. 采用低能耗学习(LCEL,Low-Cost Energy Learning,此处根据上下文推测,具体含义可能因领域而异)具有记忆功能的代理

一个能记忆的代理

python -m src.03_memory.conversation_memory

______________________________________________________________________

运行:

模块4:LangGraph(04_langgraph/)

📊 simple_graph.py - 简单图表

  • 你将学到的内容:
  • 什么是状态图
  • 节点和边
  • 管理节点之间的状态

由大型语言模型(LLM)驱动的节点

  1. 包含的示例:线性图
  2. 开始 → A → B → C → 结束LLM 节点
  3. 内容生成管道“State Accumulation”可以翻译为“国家积累”或“国家蓄积”,具体取决于上下文和语境。在经济学或社会学领域,这个术语可能指的是一个国家在资源、财富、技术或知识等方面的长期积累和增长
  4. 在节点间建立状态流式执行
  5. 实时查看每一步图形可视化

理解结构

START
  ↓
Node A (Process input)
  ↓
Node B (Transform)
  ↓
Node C (Finalize)
  ↓
END

图表:

python -m src.04_langgraph.simple_graph

______________________________________________________________________

运行:

🔀 conditional_graph.py - 条件路由

  • 你将学到:
  • 条件边
  • 基于状态的动态路由
  • 循环工作流(循环)

结合并行+条件(处理/分析)

  1. 包含的示例:简单条件句
  2. 偶数/奇数路由多路径路由
  3. 情感分析 → 3条路径循环工作流程
  4. 迭代改进并行 + 条件

复杂的工作流程

        START
          ↓
    ┌─────────┐
    │Decision │
    └─────────┘
          ↓
    ┌─────┴─────┐
    ↓           ↓
  Path A      Path B
    ↓           ↓
    └─────┬─────┘
          ↓
         END

图表:

python -m src.04_langgraph.conditional_graph

______________________________________________________________________

运行:

模块5:多智能体(05_multi_agent/)

👥 research_team.py - 研究团队

  • 你将学到:
  • 协调专业人员
  • 监督者模式
  • 协作工作流程

并行代理执行

  1. 包含的示例:专业代理
  2. 研究员 → 分析师 → 作家监督者模式(或 监控者模式)
  3. 一名主管负责协调代理人员协作代理(或协作智能体)
  4. 反馈与修订并行代理

多个代理同时工作

         Supervisor
              ↓
    ┌─────────┼─────────┐
    ↓         ↓         ↓
Researcher  Analyst   Writer
    ↓         ↓         ↓
    └─────────┴─────────┘
              ↓
        Final Result

多智能体架构:

python -m src.05_multi_agent.research_team

______________________________________________________________________

运行:

模块6:RAG(06_rag/)

📄 qa_system.py - 问答系统

  • 你将学到:
  • 加载文档并分块处理
  • 向量嵌入
  • 语义搜索

构建一个完整的RAG(检索增强生成)流水线

  1. 包含的示例:基本RAG(检索增强生成)
  2. 端到端的流水线自定义RAG链
  3. 采用LCEL(低电耗激光技术/低能耗激光技术,具体含义根据上下文确定)带有来源的RAG(检索增强生成)
  4. 来源引用语义搜索
  5. 相似性探索高级RAG(检索增强生成)

最大边缘相关性(MMR)

Question
    ↓
Embeddings
    ↓
Vector Search
    ↓
Relevant Documents
    ↓
Context + Prompt
    ↓
LLM
    ↓
Answer with Context

RAG架构:

python -m src.06_rag.qa_system

______________________________________________________________________

运行:

模块7:MCP(07_mcp/)

🔌 mcp_integration.py - 实际MCP服务器集成

什么是MCP? 这个(或“它”) 模型上下文协议(MCP)

这是一个开放标准,使大型语言模型(LLMs)能够安全地连接到数据源和工具。

  1. 集成真实服务器:

- 🌐 获取MCP服务器 - 检索和处理网页内容 - 将HTML转换为Markdown 仓库:

  1. 模型上下文协议/服务器/获取

- 🎨 Canva 开发者 MCP 服务器 - AI赋能的Canva开发辅助 - Canva应用开发指南 文档:

canva.dev/mcp-server(该网址可直接翻译为“Canva.dev 的 MCP 服务器”,但通常网址无需翻译,直接使用原样即可,这里提供的是其含义的中文表述)

  • 关键概念:资源
  • 只读数据访问工具
  • 通过 JSON-RPC 执行操作服务器
  • 实际生产的MCP服务器协议

基于Stdio的通信

  • 你将学到:
  • 连接到真实的MCP服务器
  • 使用Fetch服务器处理网页内容
  • 集成Canva开发工具
  • 多服务器协调

生产最佳实践

  1. 包含的示例:MCP基础
  2. 连接到真实服务器(Fetch 和 Canva)代理中的获取工具
  3. 网页抓取功能多个MCP服务器
  4. 结合Fetch + Canva最佳实践
  5. 安全与生产模式现实世界场景

具有网络访问权限的研究助理

LangChain Agent
      ↓
MCP Tools
      ↓
MCP Protocol (JSON-RPC)
      ↓
  ┌───┴────┐
  ↓        ↓
Fetch    Canva
Server   Server
  ↓        ↓
Web      Canva
Content   API

MCP(多控制器协议)架构:

# Fetch server
pip install mcp-server-fetch

# Canva server (requires Node.js and npm)
node --version  # v20+
npm --version

先决条件:

python -m src.07_mcp.mcp_integration

运行: 📖(书本)完整设置指南

______________________________________________________________________

MCP_SERVERS_SETUP.md 翻译为中文是:“MCP服务器设置.md”

模块8:监测(08_monitoring/)

📈 langsmith_monitoring.py - LangSmith 监控

什么是LangSmith? LangSmith

  • 是LangChain的可观测性平台,用于:
  • 🔍 追踪所有大型语言模型(LLM)调用
  • 📊 分析性能
  • 💰 跟踪成本
  • 🐛 调试问题

📈 提高质量

  • 你将学到:
  • 追踪设置
  • 自定义回调函数
  • 成本和代币追踪
  • 调试失败

性能指标

  1. 包含的示例:启用追踪
  2. LangSmith 设置监控代理执行
  3. 追踪完整执行过程追踪成本
  4. 实时标记和成本调试失败
  5. 捕获并分析性能指标
  6. 延迟,吞吐量生产监控

完整检查清单

📊 Real-time metrics
💰 Cost analytics
🐛 Debug traces
⚠️  Alerts
📈 Historical trends

LangSmith 控制台:

python -m src.08_monitoring.langsmith_monitoring

______________________________________________________________________

运行:

🏗️ 建筑学

┌─────────────────────────────────────────────┐
│               INTERFACE LAYER               │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │   CLI    │  │Interactive│  │  Batch   │  │
│  │ main.py  │  │  Prompts  │  │ Runner   │  │
│  └──────────┘  └──────────┘  └──────────┘  │
└─────────────────┬───────────────────────────┘
                  │
┌─────────────────┴───────────────────────────┐
│             APPLICATION LAYER               │
│  ┌─────┐ ┌─────┐ ┌──────┐ ┌─────────────┐  │
│  │01-03│ │04-05│ │  06  │ │   07-08     │  │
│  │Basic│ │Graph│ │ RAG  │ │ MCP/Monitor │  │
│  └─────┘ └─────┘ └──────┘ └─────────────┘  │
└─────────────────┬───────────────────────────┘
                  │
┌─────────────────┴───────────────────────────┐
│              UTILITIES LAYER                │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │ Display  │  │ Helpers  │  │  Config  │  │
│  │  (Rich)  │  │ (Common) │  │(Settings)│  │
│  └──────────┘  └──────────┘  └──────────┘  │
└─────────────────┬───────────────────────────┘
                  │
┌─────────────────┴───────────────────────────┐
│              LANGCHAIN LAYER                │
│  ┌──────┐ ┌──────┐ ┌───────┐ ┌──────────┐  │
│  │Chains│ │Agents│ │Memory │ │  Graphs  │  │
│  └──────┘ └──────┘ └───────┘ └──────────┘  │
└─────────────────┬───────────────────────────┘
                  │
┌─────────────────┴───────────────────────────┐
│              EXTERNAL SERVICES              │
│  ┌────────┐ ┌──────┐ ┌──────────┐ ┌──────┐ │
│  │ OpenAI │ │FAISS │ │LangSmith │ │ MCP  │ │
│  └────────┘ └──────┘ └──────────┘ └──────┘ │
└─────────────────────────────────────────────┘

全球架构

User Input
        ↓
  Prompt Template
        ↓
   Format with Variables
        ↓
       LLM (OpenAI)
        ↓
    Output Parser
        ↓
       Result

简单链式流动

User Question
        ↓
   ┌────────────┐
   │   Agent    │
   │ (Thinking) │
   └─────┬──────┘
         │
    ┌────┴────┐
    │Decision │
    └────┬────┘
         │
    ┌────┴────────┐
    │             │
   TOOL        ANSWER
    │             │
┌───┴───┐         │
│Execute│         │
└───┬───┘         │
    │             │
┌───┴────┐        │
│Observe │        │
└───┬────┘        │
    │             │
    └──► LOOP ◄───┘

代理流

     START
       ↓
   Node A (Initial State)
       ↓
     Condition?
       ↓
   ┌───┴───┐
   │       │
 Node B  Node C
   │       │
   └───┬───┘
       ↓
   Node D (Merge)
       ↓
      END

LangGraph 流程(或“LangGraph 流”)

Question
    ↓
Question Embedding
    ↓
Vector Database Search
    ↓
Top-K Similar Documents
    ↓
Context Formatting
    ↓
Prompt = Context + Question
    ↓
LLM Generates Answer
    ↓
Answer with Sources

______________________________________________________________________

RAG 流程

🔌 MCP(多功能控制器/平台)集成

什么是MCP? 这个(或:该) 模型上下文协议

  • 是一种标准协议,允许大型语言模型(LLMs)访问: 📁 代表文件夹的图标或符号,中文可直接表述为“文件夹”。在需要具体描述或解释时,可以翻译为“文件夹(📁)”或“一个文件夹图标”。在日常交流中,通常直接使用“文件夹”一词即可。
  • 文件系统 💾 代表“软盘”或“存储设备”的符号。
  • 数据库 🌐 代表“互联网”或“全球网络”的符号。
  • 外部API 🔧 修理工具或螺丝刀的符号,常用于表示需要修理或调整的物品或情境。

定制服务

┌────────────────────────────────────┐
│           LangChain Agent          │
│   • Reasoning logic                │
│   • Tool selection                 │
└─────────────┬──────────────────────┘
              │
┌─────────────┴──────────────────────┐
│          MCP Tools Layer           │
│  ┌──────┐  ┌──────┐  ┌──────────┐ │
│  │ Read │  │Query │  │  List    │ │
│  └──────┘  └──────┘  └──────────┘ │
└─────────────┬──────────────────────┘
              │
┌─────────────┴──────────────────────┐
│          MCP Protocol              │
│  • JSON-RPC messages               │
│  • Resource URIs                   │
└─────────────┬──────────────────────┘
              │
┌─────────────┴──────────────────────┐
│          MCP Servers               │
│  ┌────────┐ ┌────────┐ ┌────────┐ │
│  │ Files  │ │Database│ │  APIs  │ │
│  └────────┘ └────────┘ └────────┘ │
└────────────────────────────────────┘

MCP建筑事务所(或译为:MCP建筑设计公司)

# 1. Connect to the MCP server
mcp_server = SimulatedMCPServer("filesystem")

# 2. Create a LangChain tool
def read_file(path: str) -> str:
    return mcp_server.call_tool("read_file", {"path": path})

tool = Tool(
    name="read_file",
    func=read_file,
    description="Read a file via MCP"
)

# 3. Use in an agent
agent = create_agent_with_tools([tool])

基本用法

关键概念

  • 资源
  • 只读访问 file://标准URI(统一资源标识符): db://api://

包含元数据

  • 工具
  • 改变状态或进行计算的操作
  • 结构化论点

打字结果

  • 服务器
  • 一台服务器 = 多种资源/工具
  • JSON-RPC通信

______________________________________________________________________

隔离与安全

📈 使用LangSmith进行监控

LangSmith 设置

  1. 获取API密钥
  2. 访问 https://smith.langchain.com/
  3. 创建一个(免费)账户
  4. 创建一个项目

复制您的API密钥

# .env
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_pt_your_key_here
LANGCHAIN_PROJECT=my-project

2. 配置

import os
print("Tracing enabled:", os.getenv("LANGCHAIN_TRACING_V2"))

3. 验证

特点/特性

  • 1\. 自动追踪
  • 所有大型语言模型(LLM)调用都被追踪
  • 所有代理执行

所有工具的使用

  • 2\. 仪表盘
  • 实时指标
  • 轨迹可视化

成本分析

  • 3\. 调试
  • 重播请求
  • 检查提示

分析错误

  • 4\. 优化
  • 找出瓶颈
  • 降低成本

优化提示(或指令)

# Tracing is automatic once configured
llm = ChatOpenAI()
response = llm.invoke("Hello")
# ✅ Automatically traced in LangSmith!

# For custom cost tracking
from langchain.callbacks import get_openai_callback

with get_openai_callback() as cb:
    response = chain.invoke(input)
    print(f"Tokens: {cb.total_tokens}")
    print(f"Cost: ${cb.total_cost:.4f}")

______________________________________________________________________

使用方法

🎓 学习路径

适合初学者(6–8小时)

1️⃣ chains.py         (1h)  → Understand chains
2️⃣ prompts.py        (1h)  → Master prompts
3️⃣ llm_examples.py   (1h)  → LLM interactions

第一天:基础概念

4️⃣ simple_agent.py   (1h)  → First agent
5️⃣ conversation_memory.py (1h) → Add memory
6️⃣ simple_graph.py   (2h)  → State machines

第二天:代理与国家 目标:

______________________________________________________________________

理解基础知识并构建一个简单的代理

对于中间产品(4–6小时)

7️⃣ react_agent.py         (1.5h) → Advanced reasoning
8️⃣ conditional_graph.py   (1.5h) → Complex workflows
9️⃣ qa_system.py           (2h)   → RAG system

第一会话:高级概念

🔟 research_team.py       (2h)   → Multi-agents

第二场会议:复杂系统 目标:

______________________________________________________________________

掌握高级模式

针对高级用户(3–4小时)

1️⃣1️⃣ mcp_integration.py       (1.5h) → MCP integration
1️⃣2️⃣ langsmith_monitoring.py  (1.5h) → Monitoring

生产与集成 个人项目

  • (2小时)
  • 构建你自己的系统
  • 整合您的数据

部署到生产环境 目标:

______________________________________________________________________

创建可投入生产的系统

学习技巧

  • 从基础开始(简单链表)
  • 运行每个示例
  • 阅读代码注释
  • 修改示例以进行实验

使用你自己的数据进行测试 ❌(这个符号在中文中没有直接对应的翻译,它通常表示“错误”或“取消”等意思,具体含义需根据上下文判断。)

  • 不要
  • 跳过基础部分
  • 不理解地复制粘贴
  • 忽略冗长的输出
  • 忽视错误处理

______________________________________________________________________

忘掉成本监控

🏭 生产

生产检查清单

  • 安全
  • \[ \] 安全存储API密钥(切勿在代码中存储!)
  • \[ \] 验证用户输入
  • \[ \] PII(个人身份信息)过滤
  • \[ \] 配置MCP权限

\[ \] 启用审计日志

  • 演出
  • \[ \] 使用异步进行并发操作
  • \[ \] 缓存频繁请求
  • \[ \] 数据库连接池
  • \[ \] 限速

\[ \] 设置适当的超时时间

  • 可观测性
  • \[ \] LangSmith 跟踪已启用
  • \[ \] 收集到的指标
  • \[ \] 已配置警报
  • \[ \] 已构建仪表板

\[ \] 集中日志

  • 成本
  • \[ \] 预算已定义
  • \[ \] 成本提醒
  • \[ \] 提示优化
  • \[ \] 使用适当的模型

\[ \] 已启用缓存

  • 可靠性
  • \[ \] 实现了重试逻辑
  • \[ \] 配置了断路器
  • \[ \] 已实施健康检查
  • \[ \] 备用机制

\[ \] 已执行负载测试

# config/production.py

import os
from pathlib import Path

class ProductionConfig:
    # API
    OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
    DEFAULT_MODEL = "gpt-4o-mini"  # More cost-effective
    
    # Limits
    MAX_TOKENS = 2000
    TIMEOUT = 30
    MAX_RETRIES = 3
    
    # Monitoring
    LANGSMITH_ENABLED = True
    LANGSMITH_SAMPLING = 1.0  # 100% in prod
    
    # Cache
    CACHE_ENABLED = True
    CACHE_TTL = 3600
    
    # Rate Limiting
    RATE_LIMIT = "100/minute"
    
    # Alerts
    ERROR_THRESHOLD = 0.05  # 5%
    COST_ALERT_THRESHOLD = 10.0  # $10/hour

生产配置

生产模式

from tenacity import retry, stop_after_attempt, wait_exponential

@retry(
    stop=stop_after_attempt(3),
    wait=wait_exponential(multiplier=1, min=4, max=10)
)
def call_llm_with_retry(prompt):
    return llm.invoke(prompt)

1. 带退避重试

class CircuitBreaker:
    def __init__(self, failure_threshold=5):
        self.failure_count = 0
        self.threshold = failure_threshold
        self.is_open = False
    
    def call(self, func):
        if self.is_open:
            raise Exception("Circuit breaker is open")
        
        try:
            result = func()
            self.failure_count = 0
            return result
        except Exception as e:
            self.failure_count += 1
            if self.failure_count >= self.threshold:
                self.is_open = True
            raise e

2. 保险丝(或断路器)

from langsmith import Client
import time

class ProductionMonitoring:
    def __init__(self):
        self.client = Client()
        
    def execute_with_monitoring(self, agent, input):
        start = time.time()
        
        try:
            # Execute
            result = agent.invoke(input)
            
            # Log success
            self.log_success(
                duration=time.time() - start,
                tokens=result.get('tokens', 0)
            )
            
            return result
            
        except Exception as e:
            # Log error
            self.log_error(
                error=str(e),
                duration=time.time() - start
            )
            raise

______________________________________________________________________

3. 全面监控

🔧 故障排除

常见问题

❌ “ModuleNotFoundError: 没有名为 'langchain' 的模块” 原因:

未安装的依赖项

pip install -r requirements.txt

______________________________________________________________________

解决方案:

OPENAI_API_KEY 未设置 原因:

API密钥未配置

  1. 解决方案: .env 创建
  2. 文件 OPENAI_API_KEY=your-key
  3. 添加: cat .env

______________________________________________________________________

验证:

❌ “速率限制错误:您已超出当前配额” 原因:

API配额已超出

  1. 解决方案:
  2. 检查使用情况:https://platform.openai.com/usage
  3. 添加积分 gpt-4o-mini 或者使用

______________________________________________________________________

(更便宜)

❌“ImportError: 无法导入名称 'ChatOpenAI'” 原因:

版本不兼容

pip install --upgrade langchain langchain-openai

______________________________________________________________________

解决方案:

❌ 示例程序卡住或运行缓慢 原因:

可能的网络或API问题

  • 解决方案:
  • 检查你的网络连接
  • 尝试使用较短的超时时间

______________________________________________________________________

检查OpenAI状态:https://status.openai.com/

加载文档时出现“UnicodeDecodeError” 原因:

文件编码

# Use UTF-8 encoding
with open(file, 'r', encoding='utf-8') as f:
    content = f.read()

______________________________________________________________________

解决方案:

高级调试

import logging
logging.basicConfig(level=logging.DEBUG)

启用详细日志:

# Turn on verbose in agents
agent_executor = AgentExecutor(
    agent=agent,
    tools=tools,
    verbose=True  # ✅ See all steps
)

查看API请求:

from langchain_openai import ChatOpenAI

try:
    llm = ChatOpenAI()
    response = llm.invoke("test")
    print("✅ API works!")
except Exception as e:
    print(f"❌ Error: {e}")

______________________________________________________________________

测试API连接性:

📊 指标与性能

预估成本

按模块划分(使用gpt-4o-mini进行近似):

模块示例预估成本时间
01_基础19约0.50美元30分钟
02_代理8约0.80美元20分钟
03_内存6约0.40美元15分钟
04_langgraph9约0.60美元25分钟
05_多智能体4约1.00美元20分钟
06_rag5约0.70美元20分钟
07_mcp5约0.50美元20分钟
08_监控6约0.30美元15分钟** 总计 六十二 大约4.80美元 ** 约3小时

| 💡(这个符号在中文中通常表示“灵感”或“想法”,但直接翻译时无具体文字对应,故保留原样或根据上下文解释为“灵感”或“想法”等) 提示: gpt-4o-mini 使用

______________________________________________________________________

用于学习(比GPT-4便宜10倍)

🎯 快速总结

# 1. Install
cd langchain-agent-demo
pip install -r requirements.txt

# 2. Configure
cp .env.example .env
# Edit .env and add OPENAI_API_KEY=your-key

# 3. Launch
python main.py

# 4. Pick an example and explore!

5分钟内开始

📦 8 Modules
📝 62 Examples
🎓 3 Levels (Beginner, Intermediate, Advanced)
⏱️  ~3 hours of content
💰 ~$5 API costs (gpt-4o-mini)

代码结构

  1. 下一步行动 安装
  2. 这个项目 配置
  3. 你的API密钥 python main.py
  4. 开始
  5. 包含基础选项(选项1) 进展
  6. 到高级概念 构建

______________________________________________________________________

你自己的项目!

📞 支持与资源

  • 官方文档LangChain
  • https://python.langchain.com/ (可翻译为):https://python.langchain.com/(注:网址本身通常不翻译,保持原样,此处仅说明翻译操作,实际网址内容不变)LangGraph
  • https://langchain-ai.github.io/langgraph/(可译为):https://langchain-ai.github.io/langgraph/(注:该网址本身为英文,直接作为翻译结果,中文环境下通常直接使用原网址)OpenAI API
  • https://platform.openai.com/docs 的中文翻译为:https://platform.openai.com/(OpenAI平台)文档LangSmith
  • https://docs.smith.langchain.com/ (中文可表述为:“https://docs.smith.langchain.com/(官方文档链接)” 或根据具体语境简化为 “https://docs.smith.langchain.com/(链接)”)MCP(可能指多种概念或缩写,具体含义需根据上下文确定,如“最小代价路径”、“多层感知器”等)

https://modelcontextprotocol.io/(该网址可直接翻译为“模型上下文协议.io”,但通常网址不做具体翻译,保持原样使用)

  • 社区LangChain Discord
  • https://discord.gg/langchain(中文可表述为:“访问 LangChain 的 Discord 链接”)GitHub

https://github.com/langchain-ai/langchain(中文可表述为:“GitHub上的langchain-ai组织的langchain项目”)

  • 在这个项目中
  • 所有示例均包含详细注释
  • 每个模块都包含内联文档
  • 错误信息中包含有用提示 help CLI(命令行界面)包括一个

______________________________________________________________________

选项

🎉 结论 你现在拥有 你所需要的一切

收件人: ✅ 理解LangChain和LangGraph ✅ 构建智能代理 ✅ 创建多智能体系统 ✅ 将数据与RAG(检索增强生成)和MCP(可能是指某种特定的模型或系统,但具体需根据上下文确定,此处直译为“MCP”)集成 ✅ 监控并优化您的应用程序

✅ 部署到生产环境

python main.py

立即开始:

______________________________________________________________________

*学习快乐,编码愉快! 🚀🤖(火箭和机器人的表情符号,无直接对应中文翻译,可理解为“火箭+机器人”的意象)* *最后更新时间:2025* *版本:2.0*

目录标签

目录标签

AI代理PythonRAG本地部署多代理系统状态机LangSmith监控

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP