Skip to content

feat: add OpenEnv-compatible WAA desktop environment#128

Merged
abrichr merged 1 commit into
mainfrom
feat/openenv-compatibility
Mar 18, 2026
Merged

feat: add OpenEnv-compatible WAA desktop environment#128
abrichr merged 1 commit into
mainfrom
feat/openenv-compatibility

Conversation

@abrichr
Copy link
Copy Markdown
Member

@abrichr abrichr commented Mar 18, 2026

Summary

  • WAAOpenEnvEnvironment wraps RLEnvironment into Meta's OpenEnv standard (reset/step/state)
  • Pydantic models: WAAAction, WAAObservation (base64 PNG screenshots), WAAState
  • Server entry point via create_waa_app() or CLI python -m openadapt_evals.openenv.server
  • Dense rewards via milestones when TaskConfig loaded
  • openenv-core is optional — environment works standalone without it

Architecture

TRL GRPOTrainer → rollout_func → WAADesktopEnvClient (WebSocket)
                                        ↓
                    WAAOpenEnvEnvironment (HTTP+WS server)
                                        ↓
                         RLEnvironment → WAALiveAdapter → WAA VM

Test plan

  • 21 tests passing (models, environment, protocol, task configs)

🤖 Generated with Claude Code

WAAOpenEnvEnvironment wraps RLEnvironment into Meta's OpenEnv standard
(reset/step/state protocol). Can be served as HTTP+WebSocket via
openenv-core's create_app(), or used standalone.

- WAAAction/WAAObservation/WAAState Pydantic models
- Base64-encoded PNG screenshots in observations
- Dense rewards via milestones when TaskConfig loaded
- Server entry point: python -m openadapt_evals.openenv.server
- 21 tests (models, environment, protocol compliance)

openenv-core is an optional dependency — the environment works
standalone without it installed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@abrichr abrichr merged commit d30b3b5 into main Mar 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant