@@ -65,6 +65,36 @@ Type-safe data structures:
6565- ` State ` : Episode state tracking
6666- ` StepResult ` : Combines observation, reward, done flag
6767
68+ ## Project Structure
69+
70+ ### For Environment Creators
71+
72+ When building a new environment, create the following structure:
73+
74+ ```
75+ src/envs/your_env/
76+ ├── __init__.py # Export YourAction, YourObservation, YourEnv
77+ ├── models.py # Define Action, Observation, State dataclasses
78+ ├── client.py # Implement YourEnv(HTTPEnvClient)
79+ ├── README.md # Document your environment
80+ └── server/
81+ ├── your_environment.py # Implement YourEnvironment(Environment)
82+ ├── app.py # Create FastAPI app
83+ └── Dockerfile # Define container image
84+ ```
85+
86+ See [ ` src/envs/README.md ` ] ( src/envs/README.md ) for a complete guide on building environments.
87+
88+ ### For Environment Users
89+
90+ To use an environment:
91+ 1 . Import from ` envs.your_env ` : ` from envs.echo_env import EchoAction, EchoEnv `
92+ 2 . Create client: ` client = EchoEnv.from_docker_image("echo-env:latest") `
93+ 3 . Interact: ` client.reset() ` , ` client.step(action) ` , ` client.state() `
94+ 4 . Cleanup: ` client.close() `
95+
96+ See example scripts in ` examples/ ` directory.
97+
6898## Design Principles
6999
701001 . ** Separation of Concerns** : Clear client-server boundaries
0 commit comments