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
RFC 005 defines how OpenEnv can interact with external agentic harnesses (e.g. OpenClaw) — systems that combine tools, state, and LLM inference loop into a single unified flow. The RFC proposes a wrapping pattern, where in simulation mode, the training loop retains episode control and each step() call is one conversational turn where the harness maintains context between turns within an episode.
It appears significant work has been done in implementing the RFC's proposed design along with a validation of the pattern in the form of an OpenClaw integration (see here).
However, the PR #471 and its merged successor #652 also introduce the concept of a harness, seemingly for a slightly different reason. Interestingly, these PRs introduced substantial public APIs that have no corresponding RFC AFAICT.
In the review comments of #471, specifically, there is mention of confusion regarding RFC 005, but nothing seems to be materially addressed to fix this. The README.md for openenv.core.harness even mentions RFC 005:
However, AFAICT there is not much relation between what's defined in openenv.core.harness and what's proposed in the RFC.
So, my question is, is RFC 005 still in effect? Is there a plan for its changes to be in a release? How does it interact with the changes in #652, if at all?
I'd love some clarity on RFC 005's plans because its support for multi-turn fits a use case I have in mind.
Harnesses in OpenEnv compares the options side by side, including Harbor for training the model behind a real agent. #1343 brings the RFC text in line with what was implemented, since some names changed on the way.
I'll close this, but feel free to reopen if something is still unclear.
Activity
jspisak commentedon May 19, 2026
cc @Darktex - do you want to answer this one?
sergiopaniego commentedon Oct 8, 2026
Thanks for raising this, and sorry it took a while. Both pieces are in
mainnow, and they are different layers:HarnessEnvironmentandAgenticHarnessAdapterlanded in [RFC 005] 1/4: split openenv.core.harness into a package #1097–[RFC 005] 4/4: production /harness WebSocket route and mode wiring #1100: an external harness runs inside the environment, the environment injects its tools over MCP, and eachstep()is one conversational turn, which is the multi-turn shape you were after. There is a worked example that evaluates Claude Code on τ²-bench against a simulated customer: Evaluate Claude Code in an Environment (code).ResourceSession,HarnessAdapter,MCPHarnessAdapter,build_harness_rollout_func): OpenEnv runs a small tool loop and a model generates each turn. Today it backsopenenv collect. ItsHarnessAdapteris a different class from RFC 005'sAgenticHarnessAdapter.Harnesses in OpenEnv compares the options side by side, including Harbor for training the model behind a real agent. #1343 brings the RFC text in line with what was implemented, since some names changed on the way.
I'll close this, but feel free to reopen if something is still unclear.