项目简介

'langgraph_distributed_agent' 是一个构建在 LangGraph 之上的分布式AI代理框架。它通过Redis实现多代理间的无缝协作,支持状态持久化和人工介入安全控制。这个仓库中包含一个示例MCP服务器实现,该服务器提供了一个“执行Python代码并捕获标准输出”的工具,允许外部LLM应用或Agent安全地调用Python执行环境。

主要功能点

  • Python代码执行工具: 允许大型语言模型(LLM)通过调用MCP服务器来执行任意Python代码,并获取其标准输出,实现动态编程和计算能力。
  • 安全控制: 提供了日志和错误捕获机制,确保代码执行的隔离性和健壮性,防止恶意代码对服务器造成影响。
  • 标准协议: 基于JSON-RPC的MCP协议,方便与各种LLM客户端和服务集成,提供统一的通信接口。

安装步骤

  1. 克隆仓库: 首先,将 'langgraph_distributed_agent' 仓库克隆到本地:
    git clone https://github.com/SelfRefLab/langgraph_distributed_agent.git
    cd langgraph_distributed_agent
  2. 安装依赖: 接着,安装项目所需的所有Python依赖包。这会包括 'fastmcp' 等用于构建MCP服务器的库。
    pip install -e .

服务器配置

MCP客户端需要配置此MCP服务器的连接信息。以下是JSON格式的配置示例,包含了MCP客户端所需的所有关键参数及注释:

{
  "server_name": "PythonCodeExecutor",
  "command": ["python", "-m", "examples.agent_demo.demo_mcp_server"],
  "args": {
    "--port": "8000"
  },
  "description": "一个提供Python代码执行能力的MCP服务器。",
  "url": "http://localhost:8000/demo/mcp",
  "transport": "http"
}

参数注释:

  • 'server_name': 为这个MCP服务器指定一个简短、可读的名称,用于在客户端识别。
  • 'command': 启动MCP服务器的命令行指令,通常是一个Python脚本及其模块路径。
  • 'args': 启动命令的额外参数,例如指定服务器监听的端口号。
  • 'description': 对该MCP服务器所提供功能的简要描述,帮助用户理解其用途。
  • 'url': MCP服务器的访问URL地址,MCP客户端通过此URL与服务器建立连接并发送请求。
  • 'transport': 传输协议类型,此处为HTTP。

基本使用方法

  1. 启动MCP服务器: 在一个独立的终端中运行以下命令来启动Python代码执行MCP服务器:

    python -m examples.agent_demo.demo_mcp_server --port 8000

    服务器启动后,将会在 'http://0.0.0.0:8000/demo/mcp' 地址上监听来自MCP客户端的请求。

  2. 集成到LLM应用或Agent: MCP客户端(例如基于LangChain或LangGraph构建的代理)可以通过上述配置中的 'url' 地址连接到此服务器。一旦连接成功,客户端即可加载并使用服务器提供的 'run_python_code_and_gather_stdout' 工具。

    以 'langgraph_distributed_agent' 为例,可以在其 'AgentRunner' 中通过以下代码集成此MCP服务器提供的工具:

    from langgraph_distributed_agent.agent_runner import AgentRunner
    # ... 其他初始化代码 ...
    
    runner = AgentRunner(
        # ... 配置AgentRunner ...
    )
    # 通过MCP服务器的URL加载工具
    await runner.add_mcp_server("http://localhost:8000/demo/mcp")
    # ... 启动AgentRunner ...

    集成后,LLM即可在需要执行Python代码时调用该工具,从而扩展其功能。

信息

分类

AI与计算