SuperAPI AI 工具集

AgentRun

AgentRun 是一个 Python 库,用于安全地运行大语言模型(LLM)生成的 Python 代码。它基于 Docker Python SDK 和 RestrictedPython 构建,提供单行代码即可执行隔离代码的 API。主要功能包括:执行前检查代码安全性、在完全隔离的 Docker 容器中运行、可配置资源限制(CPU、内存、超时)、依赖自动安装与卸载、依赖缓存、自动清理生成的文件,并支持 REST API 自托管。该库具有 97% 测试覆盖率、完整静态类型,仅两个依赖。适用于需要让 LLM 执行代码的场景,如数学计算、数据分析等,同时防止危险代码执行。

访问官网

工具介绍

AgentRun 是一个 Python 库,旨在让大语言模型(LLM)生成的 Python 代码能够安全、快速地运行。它基于 Docker Python SDK 和 RestrictedPython 构建,提供简单、透明且用户友好的 API 来管理隔离的代码执行。

用途

赋予 LLM 代码执行能力可以显著提升其回答准确性,例如计算 12345 * 54321 或分析股票走势。然而,直接执行不可信代码存在安全风险。AgentRun 解决了这一问题,让任何 LLM 都能通过单行代码获得代码执行能力,同时防止危险代码。

主要能力

  • 安全代码执行:执行前检查生成的代码是否包含危险元素。
  • 隔离环境:代码在完全隔离的 Docker 容器中运行。
  • 可配置资源管理:可设置代码可消耗的计算资源,并提供合理默认值。
  • 超时控制:设置脚本运行的时间限制。
  • 依赖管理:完全控制允许安装的依赖。
  • 依赖缓存:可预先在 Docker 容器中缓存依赖以优化性能。
  • 自动清理:清理生成代码创建的任何产物。
  • REST API:提供预配置的 Docker 设置,支持自托管。
  • 透明异常处理:返回与本地运行 Python 完全相同的输出,包括异常和回溯信息,无晦涩的 Docker 消息。

使用方式

有两种使用方式:

  1. 作为独立 REST API 服务(推荐):克隆 GitHub 仓库并启动,即可获得完整的代码执行 API。示例请求:

    curl -X POST http://localhost:8000/v1/run/ -H "Content-Type: application/json" -d '{"code": "print(\'hello, world!\')"}'
    
  2. 通过 pip 安装,配合自己的 Docker 设置:

    pip install agentrun
    

    然后初始化 AgentRun 并连接运行中的 Docker 容器。

适用场景

  • 让 LLM 执行代码以回答数学计算、数据分析等问题。
  • 构建需要代码解释器功能的 AI 应用。
  • 与任何 LLM(如 Groq、OpenAI、Anthropic 或通过 litellm 包装)配合使用,只需 LLM 返回代码片段。

限制

  • 需要 Docker 环境。
  • 默认配置下,依赖安装可能成为性能瓶颈,执行时间中位数在无依赖时小于 200 毫秒,有一个平均依赖(如 requests)时约 400 毫秒。
  • 默认资源限制:CPU 配额 50000(约 50% 单核)、超时 20 秒、内存 100MB、内存+交换 512MB,均可自定义。
  • 依赖白名单默认允许任何可通过 pip 安装的包。

其他信息

  • 测试覆盖率 97%,完整静态类型,仅两个依赖。
  • 项目地址:https://github.com/tjmlabs/AgentRun