mcpField
L
LangGraph ReAct Agent with MCP

LangGraph ReAct Agent with MCP

github.com/nachoal框架与 SDK588 周前更新

关于 LangGraph ReAct Agent with MCP

这是一个使用 LangGraph 和 MCP 实现的 ReAct Agent 模板。Agent 通过 MCP 网关访问多个 MCP 服务,获得文件系统和内存知识图操作能力。

主要功能

  1. 01MCP 网关统一管理多个服务
  2. 02文件系统工具和知识图谱操作
  3. 03自动工具发现和集成
  4. 04ReAct 推理循环

适用场景

  1. 01通过 MCP 服务扩展 Agent 能力
  2. 02文件操作和知识管理任务自动化
  3. 03多服务协调工作流程

MCP 相关

该客户端通过本地 MCP 网关连接多个 MCP 服务,自动发现并整合这些服务暴露的工具供 ReAct Agent 使用。

详细介绍

LangGraph ReAct Agent with MCP

CI Integration Tests Open in - LangGraph Studio

本模板展示了一个使用 LangGraph 和 Model Context Protocol (MCP) 实现的 ReAct Agent。该 Agent 通过统一的网关使用 MCP 服务来提供工具和功能。

架构

该系统由三个主要组件组成:

  1. MCP 网关服务:一个服务,用于:

    • 管理多个 MCP 服务进程
    • 提供统一的 API 来访问工具
    • 处理与 MCP 服务的通信
    • 通过简单的 HTTP 接口暴露工具
  2. MCP 服务:提供特定功能的独立服务:

    • 文件系统服务:文件操作(读取、写入、列表、搜索)
    • 内存服务:知识图谱操作(实体、关系、查询)
    • 可添加更多服务以获取更多功能
  3. ReAct Agent:该 Agent:

    • 连接到 MCP 网关
    • 发现可用工具
    • 使用工具完成任务
    • 组合多个服务的功能

快速开始

1. 安装依赖
# Install the agent package
pip install -e .

# Install the gateway package
cd gateway
pip install -e .
cd ..
2. 配置 MCP 服务

网关服务通过 gateway/config.json 进行配置。默认情况下,它启动两个 MCP 服务:

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "/path/to/directory"
        ]
      },
      "memory": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-memory"
        ]
      }
    }
  }
}

您可以从 官方 MCP 服务仓库 添加更多服务。

3. 启动网关服务
cd gateway
python -m mcp_gateway.server

服务将默认在端口 8808 启动。

4. 配置 Agent

Agent 与网关的连接在 langgraph.json 中配置:

{
  "dependencies": ["."],
  "graphs": {
    "agent": "./src/react_agent/graph.py:graph"
  },
  "env": ".env",
  "mcp": {
    "gateway_url": "http://localhost:8808"
  }
}
5. 使用 Agent

在 LangGraph 中打开您的应用!安装指南 在此。

这将打开一个新的浏览器窗口,Agent 正在运行。该 Agent 将自动:

  1. 连接到本地网关服务
  2. 发现可用工具
  3. 在对话中提供可用的工具

可用工具

该 Agent 可以访问来自两个 MCP 服务的工具:

文件系统工具
  • read_file: 读取文件内容
  • write_file: 创建或更新文件
  • list_directory: 列出目录内容
  • search_files: 查找匹配模式的文件
  • 等等...
内存工具
  • create_entities: 向知识图谱添加实体
  • create_relations: 链接实体
  • search_nodes: 查询知识图谱
  • 等等...

开发

添加新的 MCP 服务
  1. 在 MCP 服务仓库 中找到一个服务
  2. 将其配置添加到 gateway/config.json
  3. Agent 将自动发现其工具
定制 Agent
  • 修改 src/react_agent/prompts.py 中的系统提示词
  • 更新 src/react_agent/graph.py 中 Agent 的推理逻辑
  • 通过包含更多 MCP 服务来添加新功能

文档

许可证

本项目根据 MIT 许可证授权 - 详见 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。