小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
22
最近更新:26天前

使用LangGraph和MCP实现多智能体系统

LangGraph 编码代理团队与 MCP 技术实现

在 LangGraph Studio 中打开

本项目使用 LangGraph模型上下文协议 (MCP) 实现了一个小型编码代理团队。这些代理通过 MCP 服务器提供的统一网关访问工具和能力。

该代理团队的核心目标是:根据需求说明和代码上下文,创建多个功能实现方案;然后由人工操作者选择首选方案并推进,同时舍弃其他方案。

本项目起源于 2024 年 12 月 11 日在纽约举办的 Anthropic MCP 黑客松,现已发展为一个独立的项目。

架构设计

系统包含三个主要组件:

  1. MCP 网关服务器

    • 管理多个 MCP 服务器进程
    • 提供访问工具的统一 API
    • 处理与 MCP 服务器的通信
    • 通过简单 HTTP 接口暴露工具
  2. MCP 服务器

    • GitHub 服务器:仓库操作(读取、写入、列表、搜索、创建分支、创建 PR 等)
    • 可添加更多服务器扩展能力
  3. 编码代理(三个协作代理):

    • 协调器:从人工消息中收集上下文,通过 MCP 服务器访问 Linear 和 GitHub,根据需要调度规划器和编码器
    • 规划器:根据需求和代码上下文创建包含多个实现建议的方案(不使用 MCP)
    • 编码器:基于代码上下文和提案,在独立 GitHub 分支上实现所有方案

快速开始

1. 安装依赖

bash 复制代码
# 安装代理包
pip install -e .

# 安装网关包
cd gateway
pip install -e .
cd ..

2. 配置环境变量

代理支持通过环境变量配置多种 LLM 提供商:

bash 复制代码
# LLM 配置 - 支持多提供商:
LLM_MODEL=provider/model-name

# 支持的提供商及示例模型:
# - Anthropic: anthropic/claude-3-5-sonnet-20240620
# - OpenAI: openai/gpt-4
# - OpenRouter: openrouter/openai/gpt-4o-mini
# - Google: google/gemini-1.5-pro

# 各提供商的 API 密钥
OPENAI_API_KEY=your_openai_api_key
ANTHROPIC_API_KEY=your_anthropic_api_key
OPENROUTER_API_KEY=your_openrouter_api_key
GOOGLE_API_KEY=your_google_api_key

# OpenRouter 配置(如使用)
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1

3. 配置 MCP 服务器

通过 gateway/config.json 配置网关服务器,默认启动两个 MCP 服务器:

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

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

4. 启动网关服务器

bash 复制代码
cd gateway
python -m mcp_gateway.server

默认在 8808 端口启动服务。

5. 配置代理

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

json 复制代码
{
  "dependencies": ["."],
  "graphs": {
    "agent": "./src/react_agent/graph.py:graph"
  },
  "env": ".env",
  "mcp": {
    "gateway_url": "http://localhost:8808"
  }
}

6. 使用代理

在 LangGraph Studio 中打开项目文件夹!代理将自动:

  1. 连接网关服务器
  2. 发现可用工具
  3. 在对话中启用工具

可用工具

代理可访问 MCP 服务器提供的工具:

文件系统工具

  • read_file:读取文件内容
  • write_file:创建/更新文件
  • list_directory:列出目录内容
  • search_files:按模式搜索文件
  • 以及其他...

内存工具

  • create_entities:向知识图谱添加实体
  • create_relations:建立实体关联
  • search_nodes:查询知识图谱
  • 以及其他...

开发指南

添加新 MCP 服务器

  1. MCP 服务器仓库 选择服务器
  2. 将其配置添加到 gateway/config.json
  3. 代理将自动发现其工具

自定义代理

  • 修改 src/react_agent/prompts.py 中的系统提示
  • src/react_agent/graph.py 中更新代理推理逻辑
  • 通过包含更多 MCP 服务器扩展能力

文档资源

许可协议

本项目采用 MIT 许可证 - 详见 LICENSE 文件。