项目简介

LLM Sandbox 提供了一个安全、隔离的环境,用于执行大型语言模型(LLM)生成的代码。它支持多种编程语言和容器后端(如Docker、Kubernetes、Podman),并能自动捕获代码执行过程中生成的图表和可视化内容。通过其内置的Model Context Protocol (MCP) 服务器,它可以无缝集成到LLM应用中,为AI助手提供强大的代码执行能力。

主要功能点

  • 安全隔离执行: 在独立容器中运行LLM生成的代码,确保主机系统安全,防止恶意代码对系统造成影响。
  • 多语言支持: 支持Python、JavaScript、Java、C++、Go、R和Ruby等多种主流编程语言的代码执行。
  • 自动可视化捕获: 自动检测并捕获代码运行中生成的图表和可视化输出,方便LLM理解和分析数据。
  • 按需库管理: 动态安装代码所需的库和依赖项,无需预先配置容器镜像。
  • 灵活的容器后端: 可选择使用Docker、Podman或Kubernetes作为底层容器技术,适应不同的部署环境。
  • MCP服务器集成: 作为一个符合Model Context Protocol (MCP) 标准的服务器,为MCP客户端(如AI助手)提供标准化的代码执行服务。

安装步骤

首先,确保您的系统已安装Python和pip。然后,根据您希望使用的容器后端,通过pip安装LLM Sandbox:

  • 使用Docker后端 (推荐):
    pip install 'llm-sandbox[mcp-docker]'
  • 使用Podman后端:
    pip install 'llm-sandbox[mcp-podman]'
  • 使用Kubernetes后端:
    pip install 'llm-sandbox[mcp-k8s]'

服务器配置

MCP服务器需要与MCP客户端配合使用。您需要在MCP客户端的配置文件(例如,Claude Desktop的'claude_desktop_config.json')中添加以下服务器配置。请根据您选择的容器后端和您的具体环境修改'env'部分。

以下是一个配置示例,您可以直接复制并根据自己的需求进行修改:

{
  "mcpServers": {
    "llm-sandbox-code-executor": { // 您可以为这个MCP服务器指定一个易于识别的名称
      "command": "python3", // 启动服务器的命令
      "args": ["-m", "llm_sandbox.mcp_server.server"], // 启动服务器所需的参数
      "env": {
        // 根据您选择的容器后端设置环境变量:

        // --- Docker 后端配置示例 ---
        "BACKEND": "docker",
        "DOCKER_HOST": "unix:///var/run/docker.sock" // 如果Docker守护进程不在默认位置,请修改此项

        // --- Podman 后端配置示例 ---
        // "BACKEND": "podman",
        // "DOCKER_HOST": "unix:///var/run/podman/podman.sock" // 如果Podman套接字不在默认位置,请修改此项

        // --- Kubernetes 后端配置示例 ---
        // "BACKEND": "kubernetes",
        // "KUBECONFIG": "/path/to/your/kubeconfig" // 如果您的kubeconfig文件不在默认位置,请修改此项
      }
    }
  }
}

配置说明:

  • 'mcpServers': 这是一个顶级JSON对象,包含所有MCP服务器的配置。
  • 'llm-sandbox-code-executor': 这是您为当前LLM Sandbox MCP服务器定义的名称。请确保其在您的MCP客户端配置中是唯一的。
  • 'command': 指定用于启动服务器进程的可执行文件,通常是'python3'。
  • 'args': 一个字符串数组,包含传递给'command'的参数。'["-m", "llm_sandbox.mcp_server.server"]' 指示Python运行LLM Sandbox库中的MCP服务器模块。
  • 'env': 一个JSON对象,用于设置服务器进程启动时所需的环境变量。这是配置不同容器后端(Docker、Podman、Kubernetes)的关键:
    • 'BACKEND': 必需。指定LLM Sandbox将使用的容器后端,可选值有 '"docker"'、'"podman"' 或 '"kubernetes"'。
    • 'DOCKER_HOST': 仅在选择'"docker"'或'"podman"'后端时可能需要。它指定了Docker/Podman守护进程的连接地址。
    • 'KUBECONFIG': 仅在选择'"kubernetes"'后端时可能需要。它指定了Kubernetes配置文件(kubeconfig)的路径。

基本使用方法

配置完成后,当您在MCP客户端中与AI助手交互时,可以直接请求它执行代码。例如:

  • "使用matplotlib创建一个散点图,展示x和y数据点之间的关系。"
  • "用Python计算列表'[1, 2, 3, 4, 5]'的平均值。"
  • "使用Node.js打印'Hello from Sandbox!'"

AI助手将通过LLM Sandbox MCP服务器在安全的沙盒环境中执行这些代码,并返回结果,包括任何自动捕获的图表或可视化内容。

信息

分类

AI与计算