openenv 0.3.1__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openenv-0.4.0/LICENSE +28 -0
- {openenv-0.3.1/src/openenv.egg-info → openenv-0.4.0}/PKG-INFO +52 -88
- {openenv-0.3.1 → openenv-0.4.0}/README.md +42 -55
- {openenv-0.3.1 → openenv-0.4.0}/pyproject.toml +17 -37
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/_discovery.py +23 -25
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/auto_action.py +6 -10
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/auto/auto_env.py +21 -13
- openenv-0.4.0/src/openenv/cli/__init__.py +5 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/__main__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/_cli_utils.py +23 -9
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/_validation.py +32 -30
- openenv-0.4.0/src/openenv/cli/commands/__init__.py +7 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/build.py +38 -36
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/collect.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/fork.py +7 -32
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/init.py +5 -2
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/push.py +20 -52
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/serve.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/skills.py +19 -16
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/commands/validate.py +4 -5
- openenv-0.4.0/src/openenv/cli/templates/__init__.py +3 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/README.md +1 -1
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/client.py +3 -6
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/models.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/pyproject.toml +3 -7
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/Dockerfile +2 -6
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/__ENV_NAME___environment.py +1 -5
- openenv-0.4.0/src/openenv/cli/templates/openenv_env/server/__init__.py +7 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/app.py +1 -5
- openenv-0.4.0/src/openenv/cli/templates/openenv_env/server/requirements.txt +6 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/__init__.py +1 -5
- openenv-0.4.0/src/openenv/core/client_types.py +29 -0
- openenv-0.4.0/src/openenv/core/containers/__init__.py +3 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/containers/runtime/__init__.py +6 -5
- openenv-0.4.0/src/openenv/core/containers/runtime/aca_provider.py +690 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/containers/runtime/daytona_provider.py +28 -14
- openenv-0.4.0/src/openenv/core/containers/runtime/hf_sandbox_provider.py +328 -0
- openenv-0.4.0/src/openenv/core/containers/runtime/modal_provider.py +735 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/containers/runtime/providers.py +128 -70
- openenv-0.4.0/src/openenv/core/containers/runtime/uv_provider.py +309 -0
- openenv-0.4.0/src/openenv/core/env_client.py +797 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/base_transforms.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/exceptions.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/gradio_theme.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/gradio_ui.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/http_server.py +160 -134
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/interfaces.py +84 -64
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/mcp_environment.py +64 -55
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/mcp_types.py +3 -8
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/route_config.py +17 -17
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/serialization.py +52 -48
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/types.py +7 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/env_server/web_interface.py +12 -17
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/base.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/inspect_harness.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/evals/types.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/generic_client.py +56 -49
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/harness/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/harness/collect.py +17 -32
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/llm_client.py +75 -47
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/mcp_client.py +128 -100
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/base.py +44 -23
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/containers.py +64 -173
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/llm_judge.py +17 -13
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/rubrics/trajectory.py +29 -21
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/sync_client.py +82 -40
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/__init__.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/git_server_client.py +43 -30
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/tools/local_python_executor.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/utils.py +1 -5
- {openenv-0.3.1 → openenv-0.4.0/src/openenv.egg-info}/PKG-INFO +52 -88
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/SOURCES.txt +3 -0
- openenv-0.4.0/src/openenv.egg-info/requires.txt +31 -0
- {openenv-0.3.1 → openenv-0.4.0}/tests/test_line_endings.py +1 -5
- openenv-0.3.1/LICENSE +0 -28
- openenv-0.3.1/src/openenv/cli/__init__.py +0 -9
- openenv-0.3.1/src/openenv/cli/commands/__init__.py +0 -11
- openenv-0.3.1/src/openenv/cli/templates/__init__.py +0 -7
- openenv-0.3.1/src/openenv/cli/templates/openenv_env/server/__init__.py +0 -11
- openenv-0.3.1/src/openenv/cli/templates/openenv_env/server/requirements.txt +0 -6
- openenv-0.3.1/src/openenv/core/client_types.py +0 -23
- openenv-0.3.1/src/openenv/core/containers/__init__.py +0 -7
- openenv-0.3.1/src/openenv/core/containers/runtime/uv_provider.py +0 -224
- openenv-0.3.1/src/openenv/core/env_client.py +0 -484
- openenv-0.3.1/src/openenv.egg-info/requires.txt +0 -57
- {openenv-0.3.1 → openenv-0.4.0}/MANIFEST.in +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/setup.cfg +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/__init__.py +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/openenv.yaml +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv/core/containers/test_local_docker_provider.py +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/dependency_links.txt +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/entry_points.txt +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv.egg-info/top_level.txt +0 -0
- {openenv-0.3.1 → openenv-0.4.0}/src/openenv_core/__init__.py +0 -0
openenv-0.4.0/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026, Hugging Face, Inc.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
6
|
+
are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its contributors
|
|
16
|
+
may be used to endorse or promote products derived from this software without
|
|
17
|
+
specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
20
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
21
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
23
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
24
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
25
|
+
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
26
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
27
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
28
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openenv
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: A unified framework for reinforcement learning environments
|
|
5
|
+
License-Expression: BSD-3-Clause
|
|
5
6
|
Requires-Python: >=3.10
|
|
6
7
|
Description-Content-Type: text/markdown
|
|
7
8
|
License-File: LICENSE
|
|
8
|
-
Requires-Dist: fastapi>=0.
|
|
9
|
+
Requires-Dist: fastapi>=0.116.0
|
|
9
10
|
Requires-Dist: pydantic>=2.0.0
|
|
11
|
+
Requires-Dist: typing_extensions>=4.0.0
|
|
10
12
|
Requires-Dist: uvicorn>=0.24.0
|
|
11
13
|
Requires-Dist: requests>=2.25.0
|
|
12
14
|
Requires-Dist: typer>=0.9.0
|
|
@@ -20,58 +22,37 @@ Requires-Dist: websockets>=15.0.1
|
|
|
20
22
|
Requires-Dist: fastmcp>=3.0.0
|
|
21
23
|
Requires-Dist: gradio>=4.0.0
|
|
22
24
|
Requires-Dist: httpx>=0.28.1
|
|
23
|
-
Provides-Extra: core
|
|
24
|
-
Requires-Dist: fastapi>=0.104.0; extra == "core"
|
|
25
|
-
Requires-Dist: pydantic>=2.0.0; extra == "core"
|
|
26
|
-
Requires-Dist: uvicorn>=0.24.0; extra == "core"
|
|
27
|
-
Requires-Dist: requests>=2.25.0; extra == "core"
|
|
28
|
-
Requires-Dist: websockets>=15.0.1; extra == "core"
|
|
29
|
-
Provides-Extra: cli
|
|
30
|
-
Requires-Dist: typer>=0.9.0; extra == "cli"
|
|
31
|
-
Requires-Dist: rich>=13.0.0; extra == "cli"
|
|
32
|
-
Requires-Dist: pyyaml>=6.0; extra == "cli"
|
|
33
|
-
Requires-Dist: huggingface_hub>=0.20.0; extra == "cli"
|
|
34
|
-
Requires-Dist: openai>=2.7.2; extra == "cli"
|
|
35
|
-
Requires-Dist: tomli>=2.3.0; extra == "cli"
|
|
36
|
-
Requires-Dist: tomli-w>=1.2.0; extra == "cli"
|
|
37
|
-
Provides-Extra: docs
|
|
38
|
-
Requires-Dist: sphinx==7.2.6; extra == "docs"
|
|
39
|
-
Requires-Dist: pytorch-sphinx-theme2; extra == "docs"
|
|
40
|
-
Requires-Dist: sphinxcontrib.katex==0.9.11; extra == "docs"
|
|
41
|
-
Requires-Dist: docutils<0.23,>=0.18.1; extra == "docs"
|
|
42
|
-
Requires-Dist: sphinx-design==0.6.1; extra == "docs"
|
|
43
|
-
Requires-Dist: sphinxcontrib-mermaid==2.0.2; extra == "docs"
|
|
44
|
-
Requires-Dist: myst-parser; extra == "docs"
|
|
45
|
-
Requires-Dist: sphinxext-opengraph; extra == "docs"
|
|
46
|
-
Requires-Dist: sphinx-sitemap==2.9.0; extra == "docs"
|
|
47
|
-
Requires-Dist: sphinx-gallery>=0.14.0; extra == "docs"
|
|
48
|
-
Requires-Dist: matplotlib; extra == "docs"
|
|
49
|
-
Requires-Dist: nest-asyncio; extra == "docs"
|
|
50
|
-
Requires-Dist: smolagents; extra == "docs"
|
|
51
|
-
Provides-Extra: all
|
|
52
|
-
Requires-Dist: openenv[core]; extra == "all"
|
|
53
|
-
Requires-Dist: openenv[cli]; extra == "all"
|
|
54
25
|
Provides-Extra: daytona
|
|
55
26
|
Requires-Dist: daytona>=0.136.0; extra == "daytona"
|
|
56
27
|
Requires-Dist: pyyaml>=6.0; extra == "daytona"
|
|
28
|
+
Provides-Extra: aca
|
|
29
|
+
Requires-Dist: azure-containerapps-sandbox<0.2.0,>=0.1.0b2; extra == "aca"
|
|
30
|
+
Requires-Dist: azure-identity>=1.23.0; extra == "aca"
|
|
31
|
+
Provides-Extra: modal
|
|
32
|
+
Requires-Dist: modal>=1.4.0; extra == "modal"
|
|
33
|
+
Requires-Dist: pyyaml>=6.0; extra == "modal"
|
|
57
34
|
Provides-Extra: inspect
|
|
58
35
|
Requires-Dist: inspect-ai>=0.3.0; extra == "inspect"
|
|
59
36
|
Dynamic: license-file
|
|
60
37
|
|
|
61
|
-
#
|
|
38
|
+
# OpenEnv: Agentic Execution Environments
|
|
62
39
|
|
|
63
40
|
An e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.
|
|
64
41
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
42
|
+
<p align="center">
|
|
43
|
+
<a href="https://pypi.org/project/openenv/"><img alt="PyPI" src="https://img.shields.io/pypi/v/openenv?color=blue"/></a>
|
|
44
|
+
<a href="https://github.com/huggingface/OpenEnv/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"/></a>
|
|
45
|
+
<a href="https://huggingface.co/docs/openenv"><img alt="Docs" src="https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white"/></a>
|
|
46
|
+
<a href="https://huggingface.co/openenv"><img alt="Hugging Face" src="https://img.shields.io/badge/🤗%20Hugging%20Face-OpenEnv-yellow"/></a>
|
|
47
|
+
<a href="https://discord.gg/YsTYBh6PD9"><img alt="Discord" src="https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white"/></a>
|
|
48
|
+
<a href="https://colab.research.google.com/github/huggingface/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a>
|
|
49
|
+
</p>
|
|
69
50
|
|
|
70
51
|
---
|
|
71
52
|
|
|
72
|
-
|
|
53
|
+
**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/)
|
|
73
54
|
|
|
74
|
-
|
|
55
|
+
**Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
|
|
75
56
|
|
|
76
57
|
## Quick Start
|
|
77
58
|
|
|
@@ -130,15 +111,7 @@ with EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:
|
|
|
130
111
|
print(result.observation.result)
|
|
131
112
|
```
|
|
132
113
|
|
|
133
|
-
For a detailed quick start, check out the [docs page](https://
|
|
134
|
-
|
|
135
|
-
## OpenEnv on partner platforms:
|
|
136
|
-
|
|
137
|
-
- [Lightning AI Studio](https://lightning.ai/environments?section=featured)
|
|
138
|
-
- [TRL example](https://huggingface.co/docs/trl/openenv)
|
|
139
|
-
- [Unsloth Google Colab](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
|
|
140
|
-
- [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
141
|
-
- [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb)
|
|
114
|
+
For a detailed quick start, check out the [docs page](https://huggingface.co/docs/openenv/getting-started).
|
|
142
115
|
|
|
143
116
|
## Overview
|
|
144
117
|
|
|
@@ -148,8 +121,6 @@ In addition to making it easier for researchers and RL framework writers, we als
|
|
|
148
121
|
|
|
149
122
|
The OpenEnv CLI (`openenv`) provides commands to initialize new environments and deploy them to Hugging Face Spaces.
|
|
150
123
|
|
|
151
|
-
OpenEnv is openly governed by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. The committee coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process.
|
|
152
|
-
|
|
153
124
|
> ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
|
|
154
125
|
> stage. You should expect bugs, incomplete features, and APIs that may change
|
|
155
126
|
> in future versions. The project welcomes bugfixes, but significant changes
|
|
@@ -162,11 +133,13 @@ OpenEnv is openly governed by a technical committee that includes Hugging Face,
|
|
|
162
133
|
|
|
163
134
|
Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
|
|
164
135
|
|
|
165
|
-
- [RFC
|
|
166
|
-
- [RFC
|
|
167
|
-
- [RFC
|
|
168
|
-
- [RFC
|
|
169
|
-
- [RFC
|
|
136
|
+
- [RFC 000: Project Phases and Design Principles](https://github.com/huggingface/OpenEnv/pull/44)
|
|
137
|
+
- [RFC 001: Baseline API and Interface Specifications](https://github.com/huggingface/OpenEnv/pull/26)
|
|
138
|
+
- [RFC 002: Discoverability of environment tools by agents](https://github.com/huggingface/OpenEnv/pull/32)
|
|
139
|
+
- [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/huggingface/OpenEnv/pull/224)
|
|
140
|
+
- [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/huggingface/OpenEnv/pull/337)
|
|
141
|
+
- [RFC 005: Agentic Harness Integration](https://github.com/huggingface/OpenEnv/pull/387)
|
|
142
|
+
- [RFC 010: Env-token World Modeling (ECHO)](https://github.com/huggingface/OpenEnv/pull/819)
|
|
170
143
|
|
|
171
144
|
## Architecture
|
|
172
145
|
|
|
@@ -238,7 +211,9 @@ Base class for environment communication:
|
|
|
238
211
|
#### 4. Container Providers
|
|
239
212
|
Manage container deployment:
|
|
240
213
|
- `LocalDockerProvider`: Run containers on local Docker daemon
|
|
241
|
-
- `
|
|
214
|
+
- `DockerSwarmProvider`: Deploy to Docker Swarm clusters
|
|
215
|
+
- `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
|
|
216
|
+
- `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
|
|
242
217
|
|
|
243
218
|
#### 5. Models
|
|
244
219
|
Type-safe data structures:
|
|
@@ -300,18 +275,12 @@ uv pip install -e .
|
|
|
300
275
|
uv run server --host 0.0.0.0 --port 8000
|
|
301
276
|
```
|
|
302
277
|
|
|
303
|
-
**Benefits:**
|
|
304
|
-
- ✅ **Client-side extensions**: Modify client classes locally without repo changes
|
|
305
|
-
- ✅ **Better dependency management**: Clear separation between environments
|
|
306
|
-
- ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
|
|
307
|
-
- ✅ **CI/CD ready**: Automated dependency generation and validation
|
|
308
|
-
|
|
309
278
|
See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
|
|
310
279
|
|
|
311
280
|
### For Environment Users
|
|
312
281
|
|
|
313
282
|
To use an environment:
|
|
314
|
-
1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/
|
|
283
|
+
1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo_env`
|
|
315
284
|
2. Import: `from echo_env import CallToolAction, EchoEnv`
|
|
316
285
|
3. Use async (recommended) or sync API:
|
|
317
286
|
|
|
@@ -337,6 +306,10 @@ The OpenEnv CLI provides commands to manage environments:
|
|
|
337
306
|
|
|
338
307
|
- **`openenv init <env_name>`** - Initialize a new environment from template
|
|
339
308
|
- **`openenv push [--repo-id <repo>] [--private]`** - Deploy environment to Hugging Face Spaces
|
|
309
|
+
- **`openenv serve`** - Serve an environment locally with optional auto-reload
|
|
310
|
+
- **`openenv build`** - Build the Docker image for an environment
|
|
311
|
+
- **`openenv fork <space-id>`** - Fork a Space from HF Hub to your account
|
|
312
|
+
- **`openenv validate`** - Validate an environment configuration
|
|
340
313
|
|
|
341
314
|
### Quick Start
|
|
342
315
|
|
|
@@ -349,14 +322,7 @@ cd my_game_env
|
|
|
349
322
|
openenv push
|
|
350
323
|
```
|
|
351
324
|
|
|
352
|
-
For detailed options
|
|
353
|
-
|
|
354
|
-
## Design Principles
|
|
355
|
-
|
|
356
|
-
1. **Separation of Concerns**: Clear client-server boundaries
|
|
357
|
-
2. **Type Safety**: Strongly-typed actions, observations, and state
|
|
358
|
-
3. **Container Isolation**: Each environment runs in its own container
|
|
359
|
-
4. **Simple APIs**: Minimal, intuitive interfaces
|
|
325
|
+
For detailed options run any command with `--help`.
|
|
360
326
|
|
|
361
327
|
## Development
|
|
362
328
|
|
|
@@ -364,7 +330,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
|
|
|
364
330
|
|
|
365
331
|
```bash
|
|
366
332
|
# Clone the repository
|
|
367
|
-
git clone https://github.com/
|
|
333
|
+
git clone https://github.com/huggingface/OpenEnv.git
|
|
368
334
|
cd OpenEnv
|
|
369
335
|
|
|
370
336
|
# Install core package in editable mode
|
|
@@ -400,24 +366,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
|
|
|
400
366
|
|
|
401
367
|
Tests will be automatically skipped if their required dependencies aren't installed.
|
|
402
368
|
|
|
403
|
-
##
|
|
369
|
+
## Integrations
|
|
404
370
|
|
|
405
|
-
|
|
406
|
-
- Docker Desktop or Docker Engine
|
|
407
|
-
- FastAPI >= 0.104.0
|
|
408
|
-
- Uvicorn >= 0.24.0
|
|
409
|
-
- Requests >= 2.25.0
|
|
410
|
-
- Environment-specific dependencies (e.g., smolagents for coding_env)
|
|
371
|
+
OpenEnv works with a growing ecosystem of RL frameworks and platforms. If your project supports OpenEnv, open a PR to add it here.
|
|
411
372
|
|
|
412
|
-
|
|
413
|
-
|
|
373
|
+
### TRL
|
|
374
|
+
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
414
375
|
|
|
415
376
|
### torchforge
|
|
416
377
|
See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
|
|
417
378
|
|
|
418
|
-
### TRL
|
|
419
|
-
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
420
|
-
|
|
421
379
|
### Unsloth
|
|
422
380
|
See the 2048 game example based on gpt-oss: [Colab notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
|
|
423
381
|
|
|
@@ -430,6 +388,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
|
430
388
|
### Oumi
|
|
431
389
|
See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb) on how OpenEnv environments can be used to train models with Oumi.
|
|
432
390
|
|
|
391
|
+
### Lightning AI
|
|
392
|
+
[Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
|
|
393
|
+
|
|
433
394
|
## Example Environments
|
|
434
395
|
|
|
435
396
|
| Environment | Description |
|
|
@@ -440,12 +401,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
|
|
|
440
401
|
| [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
|
|
441
402
|
| [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
|
|
442
403
|
|
|
443
|
-
> Browse the full catalog of community environments at [
|
|
404
|
+
> Browse the full catalog of community environments at [huggingface.co/docs/openenv/environments](https://huggingface.co/docs/openenv/environments).
|
|
444
405
|
|
|
445
406
|
## Community Support & Acknowledgments
|
|
446
|
-
This is an open and community-centric project, governed in public by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. If you would like to add your project or organization here, please open a pull request for maintainer review.
|
|
447
407
|
|
|
448
|
-
|
|
408
|
+
OpenEnv is governed by a technical committee that coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process. Current committee members: Meta-PyTorch, Reflection, Unsloth, Modal, Prime Intellect, Nvidia, Mercor, Fleet AI, Microsoft, Hugging Face, and RadixArk.
|
|
409
|
+
|
|
410
|
+
The project is also supported by a broader community of organizations. If you would like to add your project or organization here, please open a pull request for maintainer review.
|
|
411
|
+
|
|
412
|
+
Supporters include: [Meta-PyTorch](https://github.com/meta-pytorch), [Hugging Face](https://huggingface.co), [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), [Unsloth](https://unsloth.ai), [Reflection](https://reflection.ai), [vLLM](https://vllm.ai), [SkyRL](https://skyrl.readthedocs.io) (UC-Berkeley), [Lightning AI](https://lightning.ai), [Axolotl AI](https://github.com/axolotl-ai-cloud/axolotl), [Stanford Scaling Intelligence Lab](https://scalingintelligence.stanford.edu/), [Mithril](https://mithril.ai), [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/), [Snorkel AI](https://snorkel.ai/), [SGLang](https://github.com/sgl-project/sglang), [Miles](https://github.com/radixark/miles)
|
|
449
413
|
|
|
450
414
|
And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
|
|
451
415
|
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
#
|
|
1
|
+
# OpenEnv: Agentic Execution Environments
|
|
2
2
|
|
|
3
3
|
An e2e framework for creating, deploying and using isolated execution environments for agentic RL training, built using Gymnasium style simple APIs.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://pypi.org/project/openenv/"><img alt="PyPI" src="https://img.shields.io/pypi/v/openenv?color=blue"/></a>
|
|
7
|
+
<a href="https://github.com/huggingface/OpenEnv/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"/></a>
|
|
8
|
+
<a href="https://huggingface.co/docs/openenv"><img alt="Docs" src="https://img.shields.io/badge/Docs-Explore-blue?logo=readthedocs&logoColor=white"/></a>
|
|
9
|
+
<a href="https://huggingface.co/openenv"><img alt="Hugging Face" src="https://img.shields.io/badge/🤗%20Hugging%20Face-OpenEnv-yellow"/></a>
|
|
10
|
+
<a href="https://discord.gg/YsTYBh6PD9"><img alt="Discord" src="https://img.shields.io/badge/Discord-OpenEnv-7289da?style=flat&logo=discord&logoColor=white"/></a>
|
|
11
|
+
<a href="https://colab.research.google.com/github/huggingface/OpenEnv/blob/main/examples/OpenEnv_Tutorial.ipynb"><img alt="Open In Colab" src="https://colab.research.google.com/assets/colab-badge.svg"/></a>
|
|
12
|
+
</p>
|
|
9
13
|
|
|
10
14
|
---
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
**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/)
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
**Zero to Hero Tutorial:** End to end tutorial from our [GPU Mode](tutorial/README.md) lecture and other hackathons.
|
|
15
19
|
|
|
16
20
|
## Quick Start
|
|
17
21
|
|
|
@@ -70,15 +74,7 @@ with EchoEnv(base_url="https://openenv-echo-env.hf.space").sync() as client:
|
|
|
70
74
|
print(result.observation.result)
|
|
71
75
|
```
|
|
72
76
|
|
|
73
|
-
For a detailed quick start, check out the [docs page](https://
|
|
74
|
-
|
|
75
|
-
## OpenEnv on partner platforms:
|
|
76
|
-
|
|
77
|
-
- [Lightning AI Studio](https://lightning.ai/environments?section=featured)
|
|
78
|
-
- [TRL example](https://huggingface.co/docs/trl/openenv)
|
|
79
|
-
- [Unsloth Google Colab](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
|
|
80
|
-
- [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
81
|
-
- [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb)
|
|
77
|
+
For a detailed quick start, check out the [docs page](https://huggingface.co/docs/openenv/getting-started).
|
|
82
78
|
|
|
83
79
|
## Overview
|
|
84
80
|
|
|
@@ -88,8 +84,6 @@ In addition to making it easier for researchers and RL framework writers, we als
|
|
|
88
84
|
|
|
89
85
|
The OpenEnv CLI (`openenv`) provides commands to initialize new environments and deploy them to Hugging Face Spaces.
|
|
90
86
|
|
|
91
|
-
OpenEnv is openly governed by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. The committee coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process.
|
|
92
|
-
|
|
93
87
|
> ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
|
|
94
88
|
> stage. You should expect bugs, incomplete features, and APIs that may change
|
|
95
89
|
> in future versions. The project welcomes bugfixes, but significant changes
|
|
@@ -102,11 +96,13 @@ OpenEnv is openly governed by a technical committee that includes Hugging Face,
|
|
|
102
96
|
|
|
103
97
|
Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
|
|
104
98
|
|
|
105
|
-
- [RFC
|
|
106
|
-
- [RFC
|
|
107
|
-
- [RFC
|
|
108
|
-
- [RFC
|
|
109
|
-
- [RFC
|
|
99
|
+
- [RFC 000: Project Phases and Design Principles](https://github.com/huggingface/OpenEnv/pull/44)
|
|
100
|
+
- [RFC 001: Baseline API and Interface Specifications](https://github.com/huggingface/OpenEnv/pull/26)
|
|
101
|
+
- [RFC 002: Discoverability of environment tools by agents](https://github.com/huggingface/OpenEnv/pull/32)
|
|
102
|
+
- [RFC 003: Add MCP (Model Context Protocol) support](https://github.com/huggingface/OpenEnv/pull/224)
|
|
103
|
+
- [RFC 004: Add delayed rewards support for trajectory-based scoring](https://github.com/huggingface/OpenEnv/pull/337)
|
|
104
|
+
- [RFC 005: Agentic Harness Integration](https://github.com/huggingface/OpenEnv/pull/387)
|
|
105
|
+
- [RFC 010: Env-token World Modeling (ECHO)](https://github.com/huggingface/OpenEnv/pull/819)
|
|
110
106
|
|
|
111
107
|
## Architecture
|
|
112
108
|
|
|
@@ -178,7 +174,9 @@ Base class for environment communication:
|
|
|
178
174
|
#### 4. Container Providers
|
|
179
175
|
Manage container deployment:
|
|
180
176
|
- `LocalDockerProvider`: Run containers on local Docker daemon
|
|
181
|
-
- `
|
|
177
|
+
- `DockerSwarmProvider`: Deploy to Docker Swarm clusters
|
|
178
|
+
- `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
|
|
179
|
+
- `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
|
|
182
180
|
|
|
183
181
|
#### 5. Models
|
|
184
182
|
Type-safe data structures:
|
|
@@ -240,18 +238,12 @@ uv pip install -e .
|
|
|
240
238
|
uv run server --host 0.0.0.0 --port 8000
|
|
241
239
|
```
|
|
242
240
|
|
|
243
|
-
**Benefits:**
|
|
244
|
-
- ✅ **Client-side extensions**: Modify client classes locally without repo changes
|
|
245
|
-
- ✅ **Better dependency management**: Clear separation between environments
|
|
246
|
-
- ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
|
|
247
|
-
- ✅ **CI/CD ready**: Automated dependency generation and validation
|
|
248
|
-
|
|
249
241
|
See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
|
|
250
242
|
|
|
251
243
|
### For Environment Users
|
|
252
244
|
|
|
253
245
|
To use an environment:
|
|
254
|
-
1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/
|
|
246
|
+
1. Install the client: `pip install git+https://huggingface.co/spaces/openenv/echo_env`
|
|
255
247
|
2. Import: `from echo_env import CallToolAction, EchoEnv`
|
|
256
248
|
3. Use async (recommended) or sync API:
|
|
257
249
|
|
|
@@ -277,6 +269,10 @@ The OpenEnv CLI provides commands to manage environments:
|
|
|
277
269
|
|
|
278
270
|
- **`openenv init <env_name>`** - Initialize a new environment from template
|
|
279
271
|
- **`openenv push [--repo-id <repo>] [--private]`** - Deploy environment to Hugging Face Spaces
|
|
272
|
+
- **`openenv serve`** - Serve an environment locally with optional auto-reload
|
|
273
|
+
- **`openenv build`** - Build the Docker image for an environment
|
|
274
|
+
- **`openenv fork <space-id>`** - Fork a Space from HF Hub to your account
|
|
275
|
+
- **`openenv validate`** - Validate an environment configuration
|
|
280
276
|
|
|
281
277
|
### Quick Start
|
|
282
278
|
|
|
@@ -289,14 +285,7 @@ cd my_game_env
|
|
|
289
285
|
openenv push
|
|
290
286
|
```
|
|
291
287
|
|
|
292
|
-
For detailed options
|
|
293
|
-
|
|
294
|
-
## Design Principles
|
|
295
|
-
|
|
296
|
-
1. **Separation of Concerns**: Clear client-server boundaries
|
|
297
|
-
2. **Type Safety**: Strongly-typed actions, observations, and state
|
|
298
|
-
3. **Container Isolation**: Each environment runs in its own container
|
|
299
|
-
4. **Simple APIs**: Minimal, intuitive interfaces
|
|
288
|
+
For detailed options run any command with `--help`.
|
|
300
289
|
|
|
301
290
|
## Development
|
|
302
291
|
|
|
@@ -304,7 +293,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
|
|
|
304
293
|
|
|
305
294
|
```bash
|
|
306
295
|
# Clone the repository
|
|
307
|
-
git clone https://github.com/
|
|
296
|
+
git clone https://github.com/huggingface/OpenEnv.git
|
|
308
297
|
cd OpenEnv
|
|
309
298
|
|
|
310
299
|
# Install core package in editable mode
|
|
@@ -340,24 +329,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
|
|
|
340
329
|
|
|
341
330
|
Tests will be automatically skipped if their required dependencies aren't installed.
|
|
342
331
|
|
|
343
|
-
##
|
|
332
|
+
## Integrations
|
|
344
333
|
|
|
345
|
-
|
|
346
|
-
- Docker Desktop or Docker Engine
|
|
347
|
-
- FastAPI >= 0.104.0
|
|
348
|
-
- Uvicorn >= 0.24.0
|
|
349
|
-
- Requests >= 2.25.0
|
|
350
|
-
- Environment-specific dependencies (e.g., smolagents for coding_env)
|
|
334
|
+
OpenEnv works with a growing ecosystem of RL frameworks and platforms. If your project supports OpenEnv, open a PR to add it here.
|
|
351
335
|
|
|
352
|
-
|
|
353
|
-
|
|
336
|
+
### TRL
|
|
337
|
+
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
354
338
|
|
|
355
339
|
### torchforge
|
|
356
340
|
See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
|
|
357
341
|
|
|
358
|
-
### TRL
|
|
359
|
-
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
360
|
-
|
|
361
342
|
### Unsloth
|
|
362
343
|
See the 2048 game example based on gpt-oss: [Colab notebook](https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/OpenEnv_gpt_oss_(20B)_Reinforcement_Learning_2048_Game.ipynb)
|
|
363
344
|
|
|
@@ -370,6 +351,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
|
370
351
|
### Oumi
|
|
371
352
|
See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%20-%20OpenEnv%20GRPO%20with%20trl.ipynb) on how OpenEnv environments can be used to train models with Oumi.
|
|
372
353
|
|
|
354
|
+
### Lightning AI
|
|
355
|
+
[Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
|
|
356
|
+
|
|
373
357
|
## Example Environments
|
|
374
358
|
|
|
375
359
|
| Environment | Description |
|
|
@@ -380,12 +364,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
|
|
|
380
364
|
| [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
|
|
381
365
|
| [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
|
|
382
366
|
|
|
383
|
-
> Browse the full catalog of community environments at [
|
|
367
|
+
> Browse the full catalog of community environments at [huggingface.co/docs/openenv/environments](https://huggingface.co/docs/openenv/environments).
|
|
384
368
|
|
|
385
369
|
## Community Support & Acknowledgments
|
|
386
|
-
This is an open and community-centric project, governed in public by a technical committee that includes Hugging Face, Unsloth, Reflection, and Meta PyTorch. If you would like to add your project or organization here, please open a pull request for maintainer review.
|
|
387
370
|
|
|
388
|
-
|
|
371
|
+
OpenEnv is governed by a technical committee that coordinates project direction, major technical decisions, RFCs, and release planning through the public issue tracker, pull requests, and RFC process. Current committee members: Meta-PyTorch, Reflection, Unsloth, Modal, Prime Intellect, Nvidia, Mercor, Fleet AI, Microsoft, Hugging Face, and RadixArk.
|
|
372
|
+
|
|
373
|
+
The project is also supported by a broader community of organizations. If you would like to add your project or organization here, please open a pull request for maintainer review.
|
|
374
|
+
|
|
375
|
+
Supporters include: [Meta-PyTorch](https://github.com/meta-pytorch), [Hugging Face](https://huggingface.co), [Scaler AI Labs](https://scalerailabs.com), [Patronus AI](https://patronus.ai), [Surge AI](https://surgehq.ai), [LastMile AI](https://www.lastmileai.dev), [Unsloth](https://unsloth.ai), [Reflection](https://reflection.ai), [vLLM](https://vllm.ai), [SkyRL](https://skyrl.readthedocs.io) (UC-Berkeley), [Lightning AI](https://lightning.ai), [Axolotl AI](https://github.com/axolotl-ai-cloud/axolotl), [Stanford Scaling Intelligence Lab](https://scalingintelligence.stanford.edu/), [Mithril](https://mithril.ai), [OpenMined](https://openmined.org/), [Fleet AI](https://fleetai.com), [Halluminate](https://halluminate.ai/), [Turing](https://www.turing.com/), [Scale AI](https://scale.com/), [Scorecard](https://www.scorecard.io/), [Snorkel AI](https://snorkel.ai/), [SGLang](https://github.com/sgl-project/sglang), [Miles](https://github.com/radixark/miles)
|
|
389
376
|
|
|
390
377
|
And we'd also like to acknowledge the team at Farama Foundation as the OpenEnv API was heavily inspired by the work you all have done on Gymnasium. Cheers!
|
|
391
378
|
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["setuptools>=
|
|
2
|
+
requires = ["setuptools>=77", "wheel"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openenv"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.4.0"
|
|
8
8
|
description = "A unified framework for reinforcement learning environments"
|
|
9
9
|
readme = "README.md"
|
|
10
|
+
license = "BSD-3-Clause"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
10
12
|
requires-python = ">=3.10"
|
|
11
13
|
dependencies = [
|
|
12
14
|
# Core shared dependencies - minimal set required for all environments
|
|
13
15
|
# Heavy dependencies (torch, numpy, smolagents, etc.) should be in
|
|
14
16
|
# individual environment pyproject.toml files
|
|
15
|
-
"fastapi>=0.
|
|
17
|
+
"fastapi>=0.116.0",
|
|
16
18
|
"pydantic>=2.0.0",
|
|
19
|
+
"typing_extensions>=4.0.0",
|
|
17
20
|
"uvicorn>=0.24.0",
|
|
18
21
|
"requests>=2.25.0",
|
|
19
22
|
# CLI dependencies
|
|
@@ -33,43 +36,20 @@ dependencies = [
|
|
|
33
36
|
]
|
|
34
37
|
|
|
35
38
|
[project.optional-dependencies]
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"requests>=2.25.0",
|
|
41
|
-
"websockets>=15.0.1",
|
|
42
|
-
]
|
|
43
|
-
cli = [
|
|
44
|
-
"typer>=0.9.0",
|
|
45
|
-
"rich>=13.0.0",
|
|
39
|
+
# `pip install openenv` includes the full runtime; the extras below are
|
|
40
|
+
# optional integrations.
|
|
41
|
+
daytona = [
|
|
42
|
+
"daytona>=0.136.0",
|
|
46
43
|
"pyyaml>=6.0",
|
|
47
|
-
"huggingface_hub>=0.20.0",
|
|
48
|
-
"openai>=2.7.2",
|
|
49
|
-
"tomli>=2.3.0",
|
|
50
|
-
"tomli-w>=1.2.0",
|
|
51
|
-
]
|
|
52
|
-
docs = [
|
|
53
|
-
"sphinx==7.2.6",
|
|
54
|
-
"pytorch-sphinx-theme2",
|
|
55
|
-
"sphinxcontrib.katex==0.9.11",
|
|
56
|
-
"docutils>=0.18.1,<0.23",
|
|
57
|
-
"sphinx-design==0.6.1",
|
|
58
|
-
"sphinxcontrib-mermaid==2.0.2",
|
|
59
|
-
"myst-parser",
|
|
60
|
-
"sphinxext-opengraph",
|
|
61
|
-
"sphinx-sitemap==2.9.0",
|
|
62
|
-
"sphinx-gallery>=0.14.0",
|
|
63
|
-
"matplotlib",
|
|
64
|
-
"nest-asyncio",
|
|
65
|
-
"smolagents",
|
|
66
44
|
]
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
45
|
+
aca = [
|
|
46
|
+
# Preview SDK — pin with an upper bound and re-validate on upgrades
|
|
47
|
+
# (the provider talks to it through a private adapter for exactly this churn).
|
|
48
|
+
"azure-containerapps-sandbox>=0.1.0b2,<0.2.0",
|
|
49
|
+
"azure-identity>=1.23.0",
|
|
70
50
|
]
|
|
71
|
-
|
|
72
|
-
"
|
|
51
|
+
modal = [
|
|
52
|
+
"modal>=1.4.0",
|
|
73
53
|
"pyyaml>=6.0",
|
|
74
54
|
]
|
|
75
55
|
inspect = [
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
# All rights reserved.
|
|
3
|
-
#
|
|
4
|
-
# This source code is licensed under the BSD-style license found in the
|
|
5
|
-
# LICENSE file in the root directory of this source tree.
|
|
1
|
+
# SPDX-License-Identifier: BSD-3-Clause
|
|
6
2
|
|
|
7
3
|
"""
|
|
8
4
|
OpenEnv Auto Module
|