OpenSource-Hub

OpenEnv

框架

huggingface/OpenEnv

用于强化学习训练的智能体执行环境框架。

项目简介

OpenEnv 通过类似 Gymnasium 的 API 提供了与智能体执行环境交互的标准。它包含环境创建工具和用于部署的命令行界面,支持隔离、安全且易于使用的 RL 后训练环境。

README 预览

#  OpenEnv: Agentic Execution Environments\n\nAn e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.\n\n\n    \n    \n    \n    \n    \n    \n\n\n---\n\n**Featured Example:** Train LLMs to play BlackJack using [torchforge](https://meta-pytorch.org/torchforge/) (PyTorch's agentic RL framework): [`examples/grpo_blackjack/`](examples/grpo_blackjack/)\n\n**Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.\n\n## Quick Start\n\nInstall the OpenEnv package:\n\n```bash\npip install openenv\n```\n\nInstall an environment client (e.g., Echo):\n\n```bash\npip install git+https://huggingface.co/spaces/openenv/echo_env\n```\n\nThen use the environment:\n\n```python\nimport asyncio\nfrom echo_env import CallToolAction, EchoEnv\n\nasync def main():\n    # Connect to a running Space (async context manager)\n    async with EchoEnv(base_url="https://openenv-echo-env.hf.space") as client:\n        # Reset the environment\n        result = await client.reset()\n        print(result.observation.echoed_message)  # "Echo environment ready!"\n\n        # Send messages\n        result = await client.step(\n            CallToolAction(\n                tool_name="echo_message",\n                arguments={"message": "Hello, World!"},\n            )\n        )\n        print(result.observation.result)  # "Hello, World!"\n        print(result.reward)\n\nasyncio.run(main())\n```\n\n**Synchronous usage** is also supported via the `.sync()` wrapper:\n\n```python\nfrom echo_env import CallToolAction, EchoEnv\n\n# Use .sync() for synchronous context manager\nwith EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:\n    result = client.reset()\n    result = client.step(\n        CallToolAction(\n            tool_name="echo_message",\n            arguments={"message": "Hello, World!"},\n        )\n    )\n    print(result.obse