huggingface/OpenEnv

An interface library for RL post training with environments.

OpenEnv – 代理执行环境

它是什么 – OpenEnv 是一个 Python 库,让您能运行隔离的强化学习环境(每个环境打包为 Docker 镜像),并通过简单的 Gymnasium 风格 API(reset()、step()、state())与之交互。环境可以托管在本地、云端沙盒或 Hugging Face Space 中,并通过 WebSockets 通信,支持异步和同步使用。

为何重要 – 现代 RL 用于 LLM 驱动的代理,需要安全、可重现的沙盒,让代理能调用工具、接收观察并获得奖励。OpenEnv 提供了一种统一的方式来创建、分享和训练此类沙盒,内置奖励组合、评估工具,并与流行的 RL 框架(TRL、ART、SkyRL 等)紧密集成。

主要功能

  • 单一 API – reset()、step()、state() 对每个环境都相同,无论异步或同步。
  • Docker 隔离环境 – 每个环境在自己的容器中运行,使其能安全地执行代码、运行浏览器或模拟金融任务。
  • 40+ 个现成环境目录 – 游戏(Wordle、OpenSpiel)、代码沙盒、浏览器导航(BrowserGym)、金融模拟器,以及用于代码代理数据集的 Harbor 工具。
  • 框架无关的训练 – 与 TRL、Unsloth、SkyRL、ART、Miles、Oumi、torchforge 等兼容;示例包括 GRPO 训练器和异步 harness 训练。
  • 暴露工具的环境 – MCP 环境暴露工具端点(/mcp)供生产环境中的代理使用,同时仍使用标准的 step() 循环进行训练。
  • 奖励与评估辅助工具 – 使用评分标准组合奖励,并使用 Inspect AI 套件进行评估。
  • CLI 与 SDK – openenv init、validate、push 和 import 命令让您轻松创建、测试和部署新环境。

典型工作流程

  1. 选择或创建环境 – 使用目录中的环境(例如 Echo、Coding、BrowserGym)或运行 openenv init my_env 创建新环境。
  2. 部署 – openenv push 将 Docker 镜像发送到 Hugging Face Space 或云端沙盒。
  3. 从代码连接 – 安装客户端包(pip install git+https://huggingface.co/spaces/openenv/echo_env)并使用异步或同步上下文管理器调用 reset() 和 step()。
  4. 训练 – 将 environment_factory 传递给 TRL 训练器(例如 GRPOTrainer)或使用 Harbor 集成来捕获每个模型调用作为 TrainingTrace,以进行 RL-从-人类-反馈风格的训练。
  5. 评估 – 组合奖励评分标准并运行 Inspect AI 评估。

快速开始

pip install openenv                     # 核心 SDK
pip install git+https://huggingface.co/spaces/openenv/echo_env  # 示例客户端
import asyncio
from echo_env import CallToolAction, EchoEnv

async def main():
    async with EchoEnv(base_url="https://openenv-echo-env.hf.space") as env:
        await env.reset()
        res = await env.step(CallToolAction(tool_name="echo_message",
                                            arguments={"message": "Hello"}))
        print(res.observation.result["data"])  # → Hello
        print(res.reward)

asyncio.run(main())

对于同步代码,使用 .sync() 包装客户端。

文档与社区 – 完整文档、教程和 Discord 链接在 README 中。项目采用 BSD-3-Clause 许可证,目前处于早期阶段,API 可能会有变动。


以上所有信息直接取自存储库的 README;未添加任何外部假设。

相关