You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: rfcs/001-openenv-spec.md
+22-16Lines changed: 22 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,9 @@
1
-
# RFC: OpenEnv Framework for agent execution environments
1
+
# RFC: OpenEnv Framework Spec for agent execution environments
2
2
3
-
**Status**: Request for Comments(RFC)
4
-
**Created**: October 2025
5
-
**Authors**: OpenEnv Contributors
3
+
**Status**: In Review
4
+
**Created**: 10/14/2025
5
+
**Authors**: @Darktex, @pankit-eng
6
+
**RFC ID:** 001
6
7
7
8
## Summary
8
9
@@ -140,7 +141,22 @@ class ContainerProvider(ABC):
140
141
141
142
### Key Design Decisions
142
143
143
-
#### Decision 1: HTTP-Based Communication
144
+
In this RFC, we want to align on four decisions that will shape the overall design of the framework.
145
+
146
+
#### Decision 1: Baseline API Set
147
+
148
+
**Chosen Approach**: Define three core APIs as the baseline interface for this framework: `step`, `reset`, and `state`.
149
+
150
+
**Rationale**:
151
+
-**`reset()`**: Initializes a new episode and returns initial observation, providing a clean starting point for agent interactions
152
+
-**`step(action)`**: Executes an action and returns an observation, forming the core interaction loop
153
+
-**`state()`**: Provides visibility into the current episode state and metadata
154
+
155
+
These three APIs establish the minimum viable interface for environment interaction and are sufficient for basic RL training workflows. They align with established patterns from Gymnasium and similar frameworks, making them immediately familiar to practitioners.
156
+
157
+
**Scope**: This RFC focuses exclusively on these baseline APIs. Additional APIs (e.g., `render()`, `seed()`, `close()`, `tools()` and environment-specific utilities) will be explored in follow-up RFCs.
158
+
159
+
#### Decision 2: HTTP-Based Communication
144
160
145
161
**Chosen Approach**: Use HTTP/REST for client-server communication
146
162
@@ -150,7 +166,7 @@ class ContainerProvider(ABC):
150
166
- Supports language-agnostic clients
151
167
- FastAPI provides excellent developer experience
152
168
153
-
#### Decision 2: Docker-Based runtime isolation and packaging
169
+
#### Decision 3: Docker-Based runtime isolation and packaging
154
170
155
171
**Chosen Approach**: Each environment runs in its own Docker container
156
172
@@ -160,16 +176,6 @@ class ContainerProvider(ABC):
160
176
- Easy dependency management via Dockerfile
161
177
- Industry-standard tooling
162
178
163
-
#### Decision 3: Type-Safe Models
164
-
165
-
**Chosen Approach**: Use Python dataclasses with explicit types for actions, observations, and state
0 commit comments