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