Token导航 LogoToken导航TokenDH.com
Langchain Vllm Workshop logo
数据服务stdio官方级别未说明来源级核验

Langchain Vllm Workshop

MCP Server

基于LangGraph和vLLM的智能职业转型顾问,具备PostgreSQL持久化记忆和多轮推理能力,适用于职业规划与技能发展咨询。

工具数

0

提示词数

0

GitHub Stars

9

资源数

0
Jupyter NotebookPostgreSQL数据分析

安装说明

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

作者 / 组织

vrknetha

提供方

vrknetha

最后核验

2026/5/17 20:20

快速接入

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

命令预览

pip install -r requirements.txt

详细介绍

LangGraph+vLLM:PostgreSQL内存职业顾问

使用LangGraph构建的智能职业过渡顾问,具有由PostgreSQL和vLLM推理支持的生产就绪持久内存。

概述

该项目演示了一个具有对话记忆的有状态AI代理:

  • PostgreSQL持久性 -使用AsyncPostgresSaver进行生产就绪对话存储
  • 多回合推理 -在会话切换和服务器重启过程中保持上下文
  • 网络研究工具 -通过Firecrawl MCP搜索和抓取功能
  • 实时API+聊天界面 -内置LangGraph Studio界面
  • 生产准备就绪 -vLLM后端用于快速推理+PostgreSQL用于可扩展持久性

关键技术

  • LangGraph -内置内存的状态机框架
  • PostgreSQL -生产级持久对话存储
  • AsyncPostgresSaver -带连接池的异步检查指针
  • vLLM -GPU上的快速LLM推理(比HuggingFace快4-24x)
  • Hermes-2-Pro-Mistral-7B -7B参数模型,具有出色的工具调用能力
  • Firecrawl MCP -通过模型上下文协议进行生产网络抓取
  • LangGraph 界面 -内置API服务器和Studio UI

建筑

User Query → LangGraph Agent → [Memory Check] → vLLM + Tools → Response
                                      ↓
                            PostgreSQL Checkpointer
                            (Persistent Memory)
                                      ↓
                            Docker Container
                            (postgres:16-alpine)

主要特点:

  • 有状态的对话 -每条消息都保存在PostgreSQL中
  • 基于线程的内存 -具有单独内存的多个并发对话
  • 跨重启持续 -会话历史记录在服务器重启后仍然有效
  • 多回合推理 -Agent记住前几回合的上下文
  • 工具集成 -通过Firecrawl MCP进行网络搜索和抓取
  • 自动创建表格 -首次运行时自动创建的数据库架构

快速开始

1.克隆存储库

git clone 
cd langchain-vllm

2.启动PostgreSQL数据库

# Start PostgreSQL in Docker
docker-compose up -d

# Verify it's running
docker-compose ps

这将创建一个PostgreSQL 16容器,其中包含:

  • 数据库: langchain_db
  • 用户: langchain
  • 端口: 5432
  • 持续体积: postgres_data

3.安装依赖项

uv pip install -r requirements.txt

或者使用pip:

pip install -r requirements.txt

4.配置环境

cp .env.example .env
# Edit .env with your API keys, RunPod endpoint, and PostgreSQL credentials

所需变量:

  • FIRECRAWL_API_KEY -从 firecrawl.dev
  • RUNPOD_ENDPOINT_URL -您的RunPod vLLM端点
  • RUNPOD_API_KEY -您的RunPod API密钥
  • POSTGRES_PASSWORD -设置为 langchain_dev_password (匹配docker compose.yml)

5.在RunPod上部署vLLM

选项A:使用预构建的Docker镜像(最快):

  1. 转到RunPod控制台→ 部署Pod
  2. 选择GPU(建议使用A4000或更高版本)
  3. 在“容器图像”下,输入: vrknetha/langchain-vllm-workshop:latest
  4. 设置容器磁盘:50GB+
  5. 暴露端口:8000
  6. 部署并等待启动
  7. 将端点URL复制到 .env

选项B:构建自定义映像:

# Build vLLM Docker image
docker build -f Dockerfile.vllm -t your-dockerhub-username/vllm-hermes:latest .

# Push to Docker Hub
docker push your-dockerhub-username/vllm-hermes:latest

# Deploy on RunPod using your custom image

部署.md 详细说明。

6.启动LangGraph服务器

用于开发(热重新加载,内存中):

langgraph dev --port 2024
# Uses in-memory storage, conversation history lost on restart

对于生产环境(PostgreSQL持久性):

langgraph up --port 2024
# Reads POSTGRES_URI from .env automatically
# Conversation history persists across restarts

替代方案(显式postgres-uri):

langgraph up --port 2024 --postgres-uri "postgresql://langchain:langchain_dev_password@localhost:5432/langchain_db"

这两种模式现在都使用PostgreSQL进行持久化。服务器将在以下时间启动:

  • API: http://localhost:2024
  • 工作室UI: http://localhost:2024(内置聊天界面)

在第一次运行时,代理会自动创建PostgreSQL表:

  • checkpoints -对话状态快照
  • checkpoint_blobs -大型二进制数据
  • checkpoint_writes -检查点写入操作

🎯 演示:职业转型顾问

该项目展示了 职业转型顾问 -一个引人注目的演示,通过一个真实的用例演示了LangGraph v1的内存和状态管理功能。

它做什么

职业顾问通过以下方式帮助专业人士进行职业转型:

  • 理解上下文:通过对话捕捉背景、技能和目标
  • 实时研究:使用Firecrawl搜索就业市场、要求和学习资源
  • 技能差距分析:将当前技能与目标角色要求进行比较
  • 个性化指导:创建量身定制的学习路径和工作目标
  • 持久存储器:在一个线程内的多个对话回合中保持完整的上下文

为什么它很有吸引力

  1. 普遍呼吁 -每个人都在考虑职业成长和技能发展
  2. 情感共鸣 -职业焦虑和不确定性有着广泛的相关性
  3. 多转弯智能 -展示持久对话记忆的力量
  4. 实用价值 -解决人们每天面临的实际问题
  5. 技术展示 -优雅地演示了LangGraph v1的所有关键功能

演示脚本

DEMO_CAREER.md 完整的10分钟演示脚本,包括:

  • 演示前检查表
  • 具有预期行为的逐段对话流
  • 每一步要强调什么
  • LangGraph Studio用户界面演练
  • 线程隔离演示
  • 常见问题排查
  • 问答准备

快速演示示例

Turn 1: "I'm Sarah, a Python developer with 5 years experience, wanting to transition into AI/ML"
→ Agent: Acknowledges background, begins building relationship

Turn 2: "What skills am I missing?"
→ Agent: Searches job requirements, analyzes skills gap, leverages Python as foundation

Turn 3: "Find me courses for those skills"
→ Agent: Remembers specific skills from Turn 2, finds relevant learning resources

Turn 4: "What jobs can I target in 6 months?"
→ Agent: Synthesizes full conversation context, suggests realistic targets

Thread Isolation Test:
→ New thread: "What's my name?" → "I don't have that information"
→ Original thread: "What's my name?" → "You're Sarah, the Python developer..."

演示的主要功能

  • 消息状态 -LangGraph v1的预构建状态类(不需要自定义类)
  • 工具_条件 -自动布线(替换18行自定义逻辑)
  • 平台持久性 -由LangGraph CLI管理的基于线程的内存
  • 异步模式 -使用ainvoke()提高I/O性能
  • MCP集成 -Firecrawl的标准化工具协议

替代演示:短期记忆研究助理

有关更简单、通用的研究演示,请参阅下文。

对话流程示例

以下是如何演示内存功能:

第1回合:设置上下文

User: "My name is Alex and I'm interested in electric vehicles"
Agent: "Nice to meet you, Alex! I'd be happy to help you learn about electric vehicles..."

第二回合:跟进(使用记忆)

User: "What are the top 3 options?"
Agent: [Searches for electric vehicles, remembers Alex is interested in EVs]

第三回合:深入学习(使用完整上下文)

User: "Which one is best for long road trips?"
Agent: [Analyzes previous search results, considers Alex's needs, provides recommendation]

第4回合:新螺纹测试

User: [In a new thread] "What's my name?"
Agent: "I don't have that information yet..."
[Demonstrates thread isolation - each conversation has separate memory]

演示内存功能

  1. 对话连续性 -特工记得讨论的内容
  2. 线程隔离 -每个对话线程都有单独的内存
  3. 持久性 -内存在服务器重启后仍然存在( langgraph up)
  4. 状态检测 -在Studio UI中查看完整的对话历史记录

你将学到什么

  1. LangGraph状态机 -使用StateGraph构建代理
  2. 检查点 -基于SQLite的持久内存
  3. 多回合推理 -上下文感知对话
  4. MCP集成 -直接使用工具进行网络搜索/抓取
  5. 生产部署 -带有LangGraph CLI的API+用户界面

需求

  • Python 3.10+
  • Docker和Docker Compose(用于PostgreSQL数据库)
  • Node.js(适用于npx/Firecrawl MCP)
  • Firecrawl API密钥(免费获取: firecrawl.dev)
  • 拥有GPU积分的RunPod帐户

了解记忆模式

开发模式: langgraph dev

  • 记忆:内存存储(langgraph_runtime_inmem)
  • 持久性:非持久性-重新启动时对话历史记录丢失
  • 重新加载:代码更改时热重新加载
  • 用例:快速开发迭代

生产模式: langgraph up --postgres-uri

  • 记忆:PostgreSQL检查指针
  • 持久性:服务器重启后仍能存活(存储在PostgreSQL中)
  • 重新加载:需要重新生成以进行代码更改
  • 用例:开发和测试
  • 优点:快速迭代+持久内存
  • 需要:PostgreSQL正在运行(docker-compose up -d)

生产模式: langgraph up

  • 记忆:PostgreSQL检查指针
  • 持久性:PostgreSQL中的完全生产持久性
  • 重新加载:需要手动重新启动
  • 用例:生产部署和演示
  • 优点:生产就绪,具有持久内存
  • 需要:PostgreSQL正在运行(docker-compose up -d)

独立模式: python src/agent.py

  • 记忆:PostgreSQL检查指针
  • 持久性:PostgreSQL数据库
  • 用例:测试代理初始化和表创建
  • 备注:此模式初始化代理并显示配置信息
  • 需要:PostgreSQL正在运行(docker-compose up -d)

数据库管理

查看对话历史记录:

docker exec -it langchain-postgres psql -U langchain -d langchain_db

# List tables
\dt

# View checkpoints
SELECT thread_id, checkpoint_id FROM checkpoints;

# Exit
\q

重置所有对话:

docker-compose down -v  # Removes volumes
docker-compose up -d    # Fresh database

停止PostgreSQL:

docker-compose down  # Data persists in volume

项目结构

langchain-vllm/
├── src/
│   └── career_advisor/     # LangGraph agent package
│       ├── __init__.py     # Package exports
│       ├── config.py       # Configuration management
│       ├── checkpointer.py # PostgreSQL persistence
│       ├── tools.py        # MCP tools setup
│       ├── prompts.py      # System prompts
│       ├── nodes.py        # Graph nodes
│       └── agent.py        # Graph construction
├── docker-compose.yml      # PostgreSQL database configuration
├── langgraph.json          # LangGraph CLI configuration
├── requirements.txt        # Python dependencies (includes postgres libs)
├── .env                    # Environment variables (API keys + DB config)
├── start_vllm.sh           # vLLM startup script
└── README.md               # This file

故障排除

PostgreSQL问题

“POSTGRES_PASSWORD环境变量是必需的”

  • 复制 .env.example.env
  • POSTGRES_PASSWORD=langchain_dev_password

拒绝连接到本地主机:5432

  • 启动PostgreSQL: docker-compose up -d
  • 检查状态: docker-compose ps
  • 查看日志: docker-compose logs -f postgres

关系“检查点”不存在

  • 表在第一次运行时通过自动创建 checkpointer.setup()
  • 验证代理初始化成功
  • 检查PostgreSQL权限问题的日志

记忆不持久?

  • PostgreSQL必须正在运行(docker-compose up -d)
  • 验证相同 thread_id 跨请求使用
  • 检查PostgreSQL表是否存在: docker exec -it langchain-postgres psql -U langchain -d langchain_db -c "\dt"

vLLM问题

模型加载缓慢?

  • 第一个请求需要2-3分钟才能将模型加载到vLLM中
  • 在演示之前,使用测试查询对端点进行预热

“模型不存在”404错误

  • 检查中的型号名称是否匹配 src/agent.py vLLM服务器
  • 验证vLLM是否已完成加载(2-3分钟)
  • 测试: curl https://your-pod-8000.proxy.runpod.net/v1/models

MCP/工具问题

Firecrawl搜索错误?

  • 如果您看到“源参数验证失败”,这是意料之中的——系统提示指示LLM避免使用 sources 参数
  • 验证 FIRECRAWL_API_KEY 已设置 .env
  • 检查是否安装了Node.js(需要 npx)
  • 确保 npx -y firecrawl-mcp 可以手动运行

工具不工作?

  • 验证是否在中设置了所有必需的环境变量 .env
  • 检查是否安装了Node.js(需要 npx)
  • 查看服务器日志,查看是否有任何MCP连接错误

服务器问题

服务器未启动?

  • 验证已安装的所有依赖项: uv pip install -r requirements.txt
  • 确保PostgreSQL正在运行: docker-compose ps
  • 检查端口8123是否尚未使用
  • 查找控制台输出中的错误

资源

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!请打开问题或PR。

致谢

  • LangChain团队为优秀框架
  • vLLM团队致力于快速推理
  • Hermes-2-Pro-Mistral-7B的名词研究
  • Firecrawl用于生产就绪的web抓取

目录标签

目录标签

Jupyter NotebookPostgreSQL数据分析本地部署职业规划AI顾问多轮对话vLLM推理

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP