{"data":{"kind":"file","path":"README.md","version_id":"p2modsn9zkhp5tg50ihe85on","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2966,"modified_at":"2026-02-14T11:26:50.719000","content_hash":"bb4768de5417bdd15a5148883ffed5e62b18f2bfbc39c5dd33ec8ddb206dfb04"},"entries":[],"content":"# openenv-echo\n\n<a href=\"https://github.com/PrimeIntellect-ai/verifiers/tree/main/environments/openenv_echo\">\n<img src=\"https://img.shields.io/badge/GitHub-181717?style=for-the-badge&logo=github&logoColor=white\" alt=\"Source Code\">\n</a>\n\n### Overview\n\n- **Environment ID**: `openenv-echo`\n- **Short description**: OpenEnv Echo environment via `OpenEnvEnv`, demonstrating MCP tool-calling in Prime Sandboxes.\n- **Tags**: openenv, mcp, tools, example\n\n### Datasets\n\n- **Primary dataset(s)**: Seed-generated episodes (one seed per rollout).\n- **Source links**: Bundled OpenEnv Echo project in `proj/` (copied from OpenEnv).\n- **Split sizes**: 100 train / 50 eval by default (configurable).\n\n### Task\n\n- **Type**: Tool use, multi-turn.\n- **Parser**: Default `Parser` (no special formatting).\n- **Rubric overview**: `OpenEnvEpisodicSumRubric` sums per-step rewards; `MultiTurnMonitorRubric` tracks turn count.\n\n### Quickstart\n\nBuild and register the bundled OpenEnv Docker image in the Prime registry:\n\n```bash\nuv run vf-build openenv-echo\n```\n\nThis writes `environments/openenv_echo/proj/.build.json` with the fully qualified image reference and runtime metadata.\n\nVerify the image is ready (status **Ready** or **Completed**):\n\n```bash\nprime images list\n```\n\nRun an evaluation with default settings:\n\n```bash\nprime eval run openenv-echo\n```\n\nConfigure model and sampling:\n\n```bash\nprime eval run openenv-echo \\\n  -m gpt-4.1-mini \\\n  -n 20 -r 3 -t 1024 -T 0.7\n```\n\nNotes:\n- If your environments directory is not `./environments`, run:\n`uv run vf-build openenv-echo -p /path/to/environments`\n- If you customize the bundled OpenEnv project, rerun `uv run vf-build openenv-echo` (the `proj/.build.json` manifest is updated).\n- `openenv_echo.py` defines `render_echo_prompt()` and passes it via `prompt_renderer`\nto keep the initial MCP prompt concise.\n\n### Troubleshooting\n\nIf you see errors like `waiting to start: trying and failing to pull image`, it means the image is not available to the sandbox. Common causes:\n- The image build is still running or failed (`prime images list` should show **Ready** or **Completed**).\n- The image reference in `proj/.build.json` is stale or invalid.\n- The image is private or not accessible to your team.\n\nIf `prime images list` shows **Ready** but the sandbox still cannot pull the image, escalate to the platform team with:\n- Image name/tag\n- Build status/output from `prime images list`\n- Sandbox ID and timestamp from the error log\n\n### Environment Arguments\n\n| Arg | Type | Default | Description |\n| --- | ---- | ------- | ----------- |\n| `num_train_examples` | int | `100` | Number of training seeds to generate. |\n| `num_eval_examples` | int | `50` | Number of eval seeds to generate. |\n| `seed` | int | `0` | Base seed for episode generation. |\n\n### Metrics\n\n| Metric | Meaning |\n| ------ | ------- |\n| `reward` | Sum of per-step rewards from the OpenEnv environment. |\n| `num_turns` | Number of turns taken in the rollout. |\n","encoding":"utf-8","truncated":false,"total_bytes":2966},"status":null}