Skip to content

Commit 76700f8

Browse files
committed
rename RFC
1 parent 1ad07d2 commit 76700f8

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

rfcs/OpenEnv-0.1-RFC.md renamed to rfcs/001-openenv-spec.md

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
# RFC: OpenEnv Framework for agent execution environments
1+
# RFC: OpenEnv Framework Spec for agent execution environments
22

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
67

78
## Summary
89

@@ -140,7 +141,22 @@ class ContainerProvider(ABC):
140141

141142
### Key Design Decisions
142143

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
144160

145161
**Chosen Approach**: Use HTTP/REST for client-server communication
146162

@@ -150,7 +166,7 @@ class ContainerProvider(ABC):
150166
- Supports language-agnostic clients
151167
- FastAPI provides excellent developer experience
152168

153-
#### Decision 2: Docker-Based runtime isolation and packaging
169+
#### Decision 3: Docker-Based runtime isolation and packaging
154170

155171
**Chosen Approach**: Each environment runs in its own Docker container
156172

@@ -160,16 +176,6 @@ class ContainerProvider(ABC):
160176
- Easy dependency management via Dockerfile
161177
- Industry-standard tooling
162178

163-
#### Decision 3: Type-Safe Models
164-
165-
**Chosen Approach**: Use Python dataclasses with explicit types for actions, observations, and state
166-
167-
**Rationale**:
168-
- Native Python support (no extra dependencies)
169-
- Clear contracts between client and server
170-
- IDE support for autocomplete and type checking
171-
- Easy serialization to/from JSON
172-
173179

174180
### Example Environments
175181

0 commit comments

Comments
 (0)