openenv 0.3.0__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.0/src/openenv.egg-info → openenv-0.4.0}/PKG-INFO +57 -90
- {openenv-0.3.0 → openenv-0.4.0}/README.md +47 -57
- {openenv-0.3.0 → openenv-0.4.0}/pyproject.toml +17 -37
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/_discovery.py +23 -25
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/auto/auto_action.py +6 -10
- {openenv-0.3.0 → 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.0 → openenv-0.4.0}/src/openenv/cli/__main__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/_cli_utils.py +23 -9
- {openenv-0.3.0 → 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.0 → openenv-0.4.0}/src/openenv/cli/commands/build.py +38 -36
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/collect.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/fork.py +7 -32
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/init.py +5 -2
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/push.py +20 -52
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/serve.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/commands/skills.py +19 -16
- {openenv-0.3.0 → 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.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/README.md +1 -1
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/client.py +3 -6
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/models.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/pyproject.toml +3 -7
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/server/Dockerfile +2 -6
- {openenv-0.3.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → 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.0 → openenv-0.4.0}/src/openenv/core/env_server/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/base_transforms.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/exceptions.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/gradio_theme.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/gradio_ui.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/http_server.py +160 -134
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/interfaces.py +84 -64
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/mcp_environment.py +64 -55
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/mcp_types.py +3 -8
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/route_config.py +17 -17
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/serialization.py +52 -48
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/types.py +7 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/env_server/web_interface.py +12 -17
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/base.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/inspect_harness.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/evals/types.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/generic_client.py +56 -49
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/harness/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/harness/collect.py +17 -32
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/llm_client.py +75 -47
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/mcp_client.py +128 -100
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/base.py +44 -23
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/containers.py +64 -173
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/llm_judge.py +17 -13
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/rubrics/trajectory.py +29 -21
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/sync_client.py +82 -40
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/__init__.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/git_server_client.py +43 -30
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/tools/local_python_executor.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/utils.py +1 -5
- {openenv-0.3.0 → openenv-0.4.0/src/openenv.egg-info}/PKG-INFO +57 -90
- {openenv-0.3.0 → 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.0 → openenv-0.4.0}/tests/test_line_endings.py +1 -5
- openenv-0.3.0/LICENSE +0 -28
- openenv-0.3.0/src/openenv/cli/__init__.py +0 -9
- openenv-0.3.0/src/openenv/cli/commands/__init__.py +0 -11
- openenv-0.3.0/src/openenv/cli/templates/__init__.py +0 -7
- openenv-0.3.0/src/openenv/cli/templates/openenv_env/server/__init__.py +0 -11
- openenv-0.3.0/src/openenv/cli/templates/openenv_env/server/requirements.txt +0 -6
- openenv-0.3.0/src/openenv/core/client_types.py +0 -23
- openenv-0.3.0/src/openenv/core/containers/__init__.py +0 -7
- openenv-0.3.0/src/openenv/core/containers/runtime/uv_provider.py +0 -224
- openenv-0.3.0/src/openenv/core/env_client.py +0 -484
- openenv-0.3.0/src/openenv.egg-info/requires.txt +0 -57
- {openenv-0.3.0 → openenv-0.4.0}/MANIFEST.in +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/setup.cfg +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/__init__.py +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/cli/templates/openenv_env/openenv.yaml +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv/core/containers/test_local_docker_provider.py +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/dependency_links.txt +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/entry_points.txt +0 -0
- {openenv-0.3.0 → openenv-0.4.0}/src/openenv.egg-info/top_level.txt +0 -0
- {openenv-0.3.0 → 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
|
|
|
@@ -150,20 +123,23 @@ The OpenEnv CLI (`openenv`) provides commands to initialize new environments and
|
|
|
150
123
|
|
|
151
124
|
> ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
|
|
152
125
|
> stage. You should expect bugs, incomplete features, and APIs that may change
|
|
153
|
-
> in future versions. The project welcomes bugfixes, but
|
|
154
|
-
>
|
|
155
|
-
>
|
|
156
|
-
>
|
|
126
|
+
> in future versions. The project welcomes bugfixes, but significant changes
|
|
127
|
+
> should be discussed before implementation so the technical committee and
|
|
128
|
+
> community can coordinate scope, compatibility, and release timing. It's
|
|
129
|
+
> recommended that you signal your intention to contribute in the issue tracker,
|
|
130
|
+
> either by filing a new issue or by claiming an existing one.
|
|
157
131
|
|
|
158
132
|
### RFCs
|
|
159
133
|
|
|
160
134
|
Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
|
|
161
135
|
|
|
162
|
-
- [RFC
|
|
163
|
-
- [RFC
|
|
164
|
-
- [RFC
|
|
165
|
-
- [RFC
|
|
166
|
-
- [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)
|
|
167
143
|
|
|
168
144
|
## Architecture
|
|
169
145
|
|
|
@@ -235,7 +211,9 @@ Base class for environment communication:
|
|
|
235
211
|
#### 4. Container Providers
|
|
236
212
|
Manage container deployment:
|
|
237
213
|
- `LocalDockerProvider`: Run containers on local Docker daemon
|
|
238
|
-
- `
|
|
214
|
+
- `DockerSwarmProvider`: Deploy to Docker Swarm clusters
|
|
215
|
+
- `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
|
|
216
|
+
- `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
|
|
239
217
|
|
|
240
218
|
#### 5. Models
|
|
241
219
|
Type-safe data structures:
|
|
@@ -297,18 +275,12 @@ uv pip install -e .
|
|
|
297
275
|
uv run server --host 0.0.0.0 --port 8000
|
|
298
276
|
```
|
|
299
277
|
|
|
300
|
-
**Benefits:**
|
|
301
|
-
- ✅ **Client-side extensions**: Modify client classes locally without repo changes
|
|
302
|
-
- ✅ **Better dependency management**: Clear separation between environments
|
|
303
|
-
- ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
|
|
304
|
-
- ✅ **CI/CD ready**: Automated dependency generation and validation
|
|
305
|
-
|
|
306
278
|
See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
|
|
307
279
|
|
|
308
280
|
### For Environment Users
|
|
309
281
|
|
|
310
282
|
To use an environment:
|
|
311
|
-
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`
|
|
312
284
|
2. Import: `from echo_env import CallToolAction, EchoEnv`
|
|
313
285
|
3. Use async (recommended) or sync API:
|
|
314
286
|
|
|
@@ -334,6 +306,10 @@ The OpenEnv CLI provides commands to manage environments:
|
|
|
334
306
|
|
|
335
307
|
- **`openenv init <env_name>`** - Initialize a new environment from template
|
|
336
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
|
|
337
313
|
|
|
338
314
|
### Quick Start
|
|
339
315
|
|
|
@@ -346,14 +322,7 @@ cd my_game_env
|
|
|
346
322
|
openenv push
|
|
347
323
|
```
|
|
348
324
|
|
|
349
|
-
For detailed options
|
|
350
|
-
|
|
351
|
-
## Design Principles
|
|
352
|
-
|
|
353
|
-
1. **Separation of Concerns**: Clear client-server boundaries
|
|
354
|
-
2. **Type Safety**: Strongly-typed actions, observations, and state
|
|
355
|
-
3. **Container Isolation**: Each environment runs in its own container
|
|
356
|
-
4. **Simple APIs**: Minimal, intuitive interfaces
|
|
325
|
+
For detailed options run any command with `--help`.
|
|
357
326
|
|
|
358
327
|
## Development
|
|
359
328
|
|
|
@@ -361,7 +330,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
|
|
|
361
330
|
|
|
362
331
|
```bash
|
|
363
332
|
# Clone the repository
|
|
364
|
-
git clone https://github.com/
|
|
333
|
+
git clone https://github.com/huggingface/OpenEnv.git
|
|
365
334
|
cd OpenEnv
|
|
366
335
|
|
|
367
336
|
# Install core package in editable mode
|
|
@@ -397,24 +366,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
|
|
|
397
366
|
|
|
398
367
|
Tests will be automatically skipped if their required dependencies aren't installed.
|
|
399
368
|
|
|
400
|
-
##
|
|
369
|
+
## Integrations
|
|
401
370
|
|
|
402
|
-
|
|
403
|
-
- Docker Desktop or Docker Engine
|
|
404
|
-
- FastAPI >= 0.104.0
|
|
405
|
-
- Uvicorn >= 0.24.0
|
|
406
|
-
- Requests >= 2.25.0
|
|
407
|
-
- 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.
|
|
408
372
|
|
|
409
|
-
|
|
410
|
-
|
|
373
|
+
### TRL
|
|
374
|
+
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
411
375
|
|
|
412
376
|
### torchforge
|
|
413
377
|
See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
|
|
414
378
|
|
|
415
|
-
### TRL
|
|
416
|
-
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
417
|
-
|
|
418
379
|
### Unsloth
|
|
419
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)
|
|
420
381
|
|
|
@@ -427,6 +388,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
|
427
388
|
### Oumi
|
|
428
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.
|
|
429
390
|
|
|
391
|
+
### Lightning AI
|
|
392
|
+
[Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
|
|
393
|
+
|
|
430
394
|
## Example Environments
|
|
431
395
|
|
|
432
396
|
| Environment | Description |
|
|
@@ -437,12 +401,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
|
|
|
437
401
|
| [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
|
|
438
402
|
| [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
|
|
439
403
|
|
|
440
|
-
> 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).
|
|
441
405
|
|
|
442
406
|
## Community Support & Acknowledgments
|
|
443
|
-
This is an open and community-centric project. If you would like to add your name here, please put up a pull request and tag @jspisak for review. Ty!!
|
|
444
407
|
|
|
445
|
-
|
|
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)
|
|
446
413
|
|
|
447
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!
|
|
448
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
|
|
|
@@ -90,20 +86,23 @@ The OpenEnv CLI (`openenv`) provides commands to initialize new environments and
|
|
|
90
86
|
|
|
91
87
|
> ⚠️ **Early Development Warning** OpenEnv is currently in an experimental
|
|
92
88
|
> stage. You should expect bugs, incomplete features, and APIs that may change
|
|
93
|
-
> in future versions. The project welcomes bugfixes, but
|
|
94
|
-
>
|
|
95
|
-
>
|
|
96
|
-
>
|
|
89
|
+
> in future versions. The project welcomes bugfixes, but significant changes
|
|
90
|
+
> should be discussed before implementation so the technical committee and
|
|
91
|
+
> community can coordinate scope, compatibility, and release timing. It's
|
|
92
|
+
> recommended that you signal your intention to contribute in the issue tracker,
|
|
93
|
+
> either by filing a new issue or by claiming an existing one.
|
|
97
94
|
|
|
98
95
|
### RFCs
|
|
99
96
|
|
|
100
97
|
Below is a list of active and historical RFCs for OpenEnv. RFCs are proposals for major changes or features. Please review and contribute!
|
|
101
98
|
|
|
102
|
-
- [RFC
|
|
103
|
-
- [RFC
|
|
104
|
-
- [RFC
|
|
105
|
-
- [RFC
|
|
106
|
-
- [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)
|
|
107
106
|
|
|
108
107
|
## Architecture
|
|
109
108
|
|
|
@@ -175,7 +174,9 @@ Base class for environment communication:
|
|
|
175
174
|
#### 4. Container Providers
|
|
176
175
|
Manage container deployment:
|
|
177
176
|
- `LocalDockerProvider`: Run containers on local Docker daemon
|
|
178
|
-
- `
|
|
177
|
+
- `DockerSwarmProvider`: Deploy to Docker Swarm clusters
|
|
178
|
+
- `UVProvider`, `DaytonaProvider`, `ACASandboxProvider`: Additional runtime providers
|
|
179
|
+
- `KubernetesProvider`: Deploy to Kubernetes clusters (planned)
|
|
179
180
|
|
|
180
181
|
#### 5. Models
|
|
181
182
|
Type-safe data structures:
|
|
@@ -237,18 +238,12 @@ uv pip install -e .
|
|
|
237
238
|
uv run server --host 0.0.0.0 --port 8000
|
|
238
239
|
```
|
|
239
240
|
|
|
240
|
-
**Benefits:**
|
|
241
|
-
- ✅ **Client-side extensions**: Modify client classes locally without repo changes
|
|
242
|
-
- ✅ **Better dependency management**: Clear separation between environments
|
|
243
|
-
- ✅ **Flexible workflows**: Use pip, uv, or Docker for different scenarios
|
|
244
|
-
- ✅ **CI/CD ready**: Automated dependency generation and validation
|
|
245
|
-
|
|
246
241
|
See [`envs/README.md`](envs/README.md) for a complete guide on building environments.
|
|
247
242
|
|
|
248
243
|
### For Environment Users
|
|
249
244
|
|
|
250
245
|
To use an environment:
|
|
251
|
-
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`
|
|
252
247
|
2. Import: `from echo_env import CallToolAction, EchoEnv`
|
|
253
248
|
3. Use async (recommended) or sync API:
|
|
254
249
|
|
|
@@ -274,6 +269,10 @@ The OpenEnv CLI provides commands to manage environments:
|
|
|
274
269
|
|
|
275
270
|
- **`openenv init <env_name>`** - Initialize a new environment from template
|
|
276
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
|
|
277
276
|
|
|
278
277
|
### Quick Start
|
|
279
278
|
|
|
@@ -286,14 +285,7 @@ cd my_game_env
|
|
|
286
285
|
openenv push
|
|
287
286
|
```
|
|
288
287
|
|
|
289
|
-
For detailed options
|
|
290
|
-
|
|
291
|
-
## Design Principles
|
|
292
|
-
|
|
293
|
-
1. **Separation of Concerns**: Clear client-server boundaries
|
|
294
|
-
2. **Type Safety**: Strongly-typed actions, observations, and state
|
|
295
|
-
3. **Container Isolation**: Each environment runs in its own container
|
|
296
|
-
4. **Simple APIs**: Minimal, intuitive interfaces
|
|
288
|
+
For detailed options run any command with `--help`.
|
|
297
289
|
|
|
298
290
|
## Development
|
|
299
291
|
|
|
@@ -301,7 +293,7 @@ For detailed options: `openenv init --help` and `openenv push --help`.
|
|
|
301
293
|
|
|
302
294
|
```bash
|
|
303
295
|
# Clone the repository
|
|
304
|
-
git clone https://github.com/
|
|
296
|
+
git clone https://github.com/huggingface/OpenEnv.git
|
|
305
297
|
cd OpenEnv
|
|
306
298
|
|
|
307
299
|
# Install core package in editable mode
|
|
@@ -337,24 +329,16 @@ PYTHONPATH=src:envs uv run pytest tests/envs/test_python_codeact_rewards.py -v
|
|
|
337
329
|
|
|
338
330
|
Tests will be automatically skipped if their required dependencies aren't installed.
|
|
339
331
|
|
|
340
|
-
##
|
|
332
|
+
## Integrations
|
|
341
333
|
|
|
342
|
-
|
|
343
|
-
- Docker Desktop or Docker Engine
|
|
344
|
-
- FastAPI >= 0.104.0
|
|
345
|
-
- Uvicorn >= 0.24.0
|
|
346
|
-
- Requests >= 2.25.0
|
|
347
|
-
- 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.
|
|
348
335
|
|
|
349
|
-
|
|
350
|
-
|
|
336
|
+
### TRL
|
|
337
|
+
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
351
338
|
|
|
352
339
|
### torchforge
|
|
353
340
|
See GRPO BlackJack training example: [`examples/grpo_blackjack/`](examples/grpo_blackjack/)
|
|
354
341
|
|
|
355
|
-
### TRL
|
|
356
|
-
See the [TRL example](https://huggingface.co/docs/trl/openenv) on how to integrate OpenEnv environments with GRPO training.
|
|
357
|
-
|
|
358
342
|
### Unsloth
|
|
359
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)
|
|
360
344
|
|
|
@@ -367,6 +351,9 @@ See the [ART example](https://art.openpipe.ai/integrations/openenv-integration)
|
|
|
367
351
|
### Oumi
|
|
368
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.
|
|
369
353
|
|
|
354
|
+
### Lightning AI
|
|
355
|
+
[Lightning AI templates](https://lightning.ai/templates?section=featured&query=openenv)
|
|
356
|
+
|
|
370
357
|
## Example Environments
|
|
371
358
|
|
|
372
359
|
| Environment | Description |
|
|
@@ -377,12 +364,15 @@ See the [Oumi example](https://github.com/oumi-ai/oumi/blob/main/notebooks/Oumi%
|
|
|
377
364
|
| [Atari Environment](envs/atari_env/README.md) | Classic Arcade Learning Environment tasks for RL benchmarking. |
|
|
378
365
|
| [FinRL Environment](envs/finrl_env/README.md) | Financial market simulations for algorithmic trading experiments. |
|
|
379
366
|
|
|
380
|
-
> 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).
|
|
381
368
|
|
|
382
369
|
## Community Support & Acknowledgments
|
|
383
|
-
This is an open and community-centric project. If you would like to add your name here, please put up a pull request and tag @jspisak for review. Ty!!
|
|
384
370
|
|
|
385
|
-
|
|
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)
|
|
386
376
|
|
|
387
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!
|
|
388
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
|