{"data":{"kind":"file","path":"README.md","version_id":"qmgpbw8s2w8o41o5mhaw7xbi","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":1459,"modified_at":"2026-08-18T00:43:26.400000","content_hash":"5645805fdbf58e3cd12bacb167d4b0dd91299cb720087f03ed6ebb1f876d0d90"},"entries":[],"content":"# algebra-steps\n\nA single-turn verifiers v1 environment: solve a linear equation in one variable\n(`3x + 5 = 20`, `3(x + 2) = 12`, `3x + 5 = 2x + 9`) step by step, one equation per\nline, and report `x = N`.\n\n## Dataset\n\n48 equations with integer solutions are generated in-process from seed 7 (no\ndownloads), cycling through the three forms. `--env.taskset.split train` (default)\nselects the first 40, `--env.taskset.split eval` the held-out last 8.\n\n## Prompt contract\n\nThe system prompt asks for:\n\n```\n<steps>\n3x + 5 = 20      <- first line: the given equation\n3x = 15          <- each later line: one true, non-repeated equation\nx = 5            <- last line: x = the value\n</steps>\n<answer>x = 5</answer>\n```\n\n## Rubric (deterministic, sympy — no LLM judge)\n\n| Reward | Weight | Meaning |\n| --- | --- | --- |\n| `answer_correct` | 0.6 | `<answer>x = N</answer>` equals the solution |\n| `steps_valid` | 0.3 | first line restates the given equation, ≥3 lines, every later line is a true equation at the solution and not a repeat of the previous line (the equation is graded even when wrapped in prose) |\n| `format_ok` | 0.1 | both tag pairs are present and the answer parses |\n\n## Run\n\n```bash\nuv pip install -e environments/algebra_steps\nuv run pytest environments/algebra_steps/tests\nuv run eval algebra-steps -m Qwen/Qwen3.5-0.8B -n 2 -r 1 \\\n  --env.agent.harness.id null --env.agent.runtime.type subprocess \\\n  --sampling.max-tokens 512 --no-push\n```\n","encoding":"utf-8","truncated":false,"total_bytes":1459},"status":null}