LangChain MCP代理演示
该项目演示了使用LangChain.js、LangGraph.js和模型上下文协议(MCP)构建的几个多工具代理。这些文件中的代理可以与多个独立的MCP服务器交互,这些服务器为不同的功能提供工具。
项目概述
此存储库包含一组Node.js脚本,展示了如何构建MCP服务器并与之交互。这些服务器提供以下工具:
- 数学: 加法和乘法。
- 天气: 获取某个地点的天气。
- 内存: 存储和回忆事实。
- Git: 检查Git存储库的状态、差异和日志。
该代理使用LangGraph.js构建,可以连接到Langsmith Studio进行调试和跟踪。
设置
- 安装依赖关系:
npm install- 设置环境变量:
cp .env.example .env您需要将Gemini API密钥添加到 .env 文件。
可用脚本
math_server.js
此脚本启动MCP服务器,该服务器提供 add 和 multiply 工具。服务器通过stdio进行通信。
要运行:
node math_server.jsmemory_server.js
此脚本启动MCP服务器,该服务器提供 remember_fact 和 recall_facts 工具。服务器通过stdio进行通信,并使用本地矢量存储(.vectra)以及一个JSON文件(brain.json)为了坚持。
要运行:
node memory_server.jsgit_server.js
此脚本启动MCP服务器,该服务器提供 git_status, git_diff,以及 git_log 工具。服务器通过stdio进行通信。
要运行:
node git_server.jsmulti_server_mcp_client.js
此脚本是一个命令行客户端,用于连接 math, weather,以及 memory 服务器。它通过运行一些测试演示了如何使用这些服务器提供的工具。
要运行:
node multi_server_mcp_client.jsmcp_agent_memory.js
此脚本创建了一个交互式命令行代理,该代理连接到 math, weather,以及 memory 服务器。代理使用本地SQLite数据库(memory.db)长期记忆。
要运行:
node mcp_agent_memory.jsweather_server.js
此脚本启动一个MCP服务器,该服务器提供 get_weather 工具。服务器运行在 http://localhost:8000 并且它使用SSE传输方法。
要运行:
node weather_server.jsconcatenate_string_mcp_server.js
此脚本启动一个MCP服务器,该服务器提供 concatenate_two_strings 工具。服务器运行在 http://localhost:3000 它使用“Streamable HTTP”传输方法。这是SSE传输方法(现在被许多开发人员认为是传统方法)的一个更稳健的替代方案,因为它在整个会话中使用单个POST端点。
要运行:
node concatenate_string_mcp_server.jsagent_graph.js
此脚本定义了一个连接到的LangGraph代理 math, weather,以及 memory 服务器。这是Langsmith Studio集成的入口点。
Langsmith工作室集成
Langsmith Studio允许您调试、跟踪和可视化您的LangGraph代理。要将其用于此项目,您可以使用 langgraphjs dev 命令。
- 安装
langgraphjsCLI工具全球
npm install -g @langchain/langgraph-cli
- 启动LangGraph开发服务器:
langgraphjs dev此命令将启动一个开发服务器,监视您的 agent_graph.js 文件,并提供与代理交互的UI。
- 打开朗史密斯工作室:
该命令将输出一个指向Langsmith Studio UI的URL。在浏览器中打开此URL,开始与您的代理进行交互。
