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命令让您轻松创建、测试和部署新环境。
典型工作流程
- 选择或创建环境 – 使用目录中的环境(例如
Echo、Coding、BrowserGym)或运行openenv init my_env创建新环境。 - 部署 –
openenv push将 Docker 镜像发送到 Hugging Face Space 或云端沙盒。 - 从代码连接 – 安装客户端包(
pip install git+https://huggingface.co/spaces/openenv/echo_env)并使用异步或同步上下文管理器调用reset()和step()。 - 训练 – 将
environment_factory传递给 TRL 训练器(例如GRPOTrainer)或使用 Harbor 集成来捕获每个模型调用作为TrainingTrace,以进行 RL-从-人类-反馈风格的训练。 - 评估 – 组合奖励评分标准并运行 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;未添加任何外部假设。
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- 项目