This directory contains Requests for Comments (RFCs) for the OpenEnv framework. RFCs are used to propose, discuss, and document significant changes, new features, or architectural decisions.
When you want to propose a significant change or feature:
- Create a new RFC file in this directory named
NNN-short-title.mdwhereNNNis the next available RFC number based on open RFCs (e.g.,002-render-api.md) - Use the RFC template structure outlined below
- Submit for review by submitting a PR
- Iterate based on feedback until consensus is reached
RFCs go through several stages:
- In Review: Open for feedback and discussion
- Accepted: Consensus reached, ready for implementation
- Implemented: Changes have been merged
- Rejected: Proposal was not accepted (document why)
- Superseded: Replaced by a newer RFC
You should write an RFC for:
- New core APIs (e.g., new methods on
EnvironmentorHTTPEnvClient) - Breaking changes to existing interfaces
- Major architectural decisions (e.g., communication protocol changes)
- New abstractions or design patterns
You generally don't need an RFC for:
- Bug fixes
- Documentation improvements
- Minor refactoring
- New example environments (unless they introduce new patterns)
Each RFC should include the following sections:
-
Header
# RFC: [Title] **Status**: [Draft|In Review|Accepted|Implemented|Rejected|Superseded] **Created**: [Date] **Authors**: [@username1, @username2] **RFC ID**: [NNN]
-
Summary
- Brief 1-2 paragraph overview of the proposal
- Should be clear enough for someone to understand the essence without reading the full RFC
-
Motivation
- Problem Statement: What problem are you solving?
- Goals: What are you trying to achieve?
- Clear explanation of why this change is needed
-
Design
- Architecture Overview: High-level view (diagrams encouraged)
- Core Abstractions: Key interfaces, classes, or concepts
- Key Design Decisions: For each significant decision:
- Chosen Approach: What you're proposing
- Rationale: Why this approach
- Trade-offs: What are the pros/cons if any
-
Examples
- Code examples showing how the feature would be used
- Should demonstrate common use cases
- Include both client and server perspectives where relevant
- 000-project-phases.md - OpenEnv layering
- 001-abstractions.md - OpenEnv Basic Abstractions
- 002-env-spec.md - OpenEnv Framework Spec for agent execution environments
- 003-mcp-support.md - MCP (Model Context Protocol) Support
- 004-actions-as-tool-calls.md - Support multiple tool calls via Action wrapper abstraction
For questions about the RFC process, reach out to the core team or open a discussion in the project repository.