{"data":{"kind":"file","path":"README.md","version_id":"z9x3o3w4eeaobcn4ctfo7rsc","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":2084,"modified_at":"2026-10-18T19:50:58","content_hash":"c04ff2f5687c9e117e2de37714e198c0f1d107d9c9c9ca78953e139629a29be9"},"entries":[],"content":"# zendo\n\n`zendo` trains and evaluates language models on rule discovery. Each game hides\na logical rule over small scenes of coloured shapes. The model runs experiments\nto test its hypotheses, then submits a rule, which the ZendoBench v1.0.0 engine\nchecks exactly. A correct rule within the budget scores 1; anything else scores 0.\n\n## Install\n\nUse Python 3.12. `verifiers>=0.4.0` can resolve a newer verifiers than the tested\none, so pin the tested sources after installing:\n\n```sh\nuv venv --python 3.12 && source .venv/bin/activate\nprime env install stw2/zendo\nuv pip install \\\n  'verifiers @ git+https://github.com/PrimeIntellect-ai/verifiers@e888a719adf328c87f271fba39fbc812ca99677b' \\\n  'zendo-engine @ git+https://github.com/stw2/zendo-bench@46c192e0ea10a5140a33c1280edb97b0127cc68c#subdirectory=packages/zendo-engine' \\\n  'zendo-bench @ git+https://github.com/stw2/zendo-bench@46c192e0ea10a5140a33c1280edb97b0127cc68c#subdirectory=packages/zendo-bench'\n```\n\n## Run\n\n```sh\npython -m zendo.examples first-run\ncd first-run\nvf-eval @ configs/local.toml --model YOUR_MODEL --client.base-url http://127.0.0.1:8000/v1\n```\n\n- `configs/local.toml` plays two debugging games against a local\n  OpenAI-compatible server (for MLX-LM, use `--model default_model`). Each\n  decision allows 24,576 generated tokens, so a game can take minutes.\n- Results go to `outputs/debug`. Resume an interrupted run with\n  `vf-eval @ RUN_DIR/configs/resolved/eval.json --resume`; saved attempts,\n  including failures, are never replayed.\n- `configs/eval.toml` is a held-out evaluation template; it needs\n  `--env.taskset.manifest` and `--model`.\n\n## Python API\n\n- `ZendoEnv`, `ZendoTaskset`, `MemorylessHarness`: the environment, loadable as id `zendo`.\n- `zendo.taskset`: fixed manifests and a resumable training stream; held-out rule\n  classes never enter training.\n- `zendo.monitoring`: held-out reports with ZendoBench's equal-tier headline.\n- `zendo.diagnostics`: per-game play metrics.\n- `zendo.training`: experimental fixed eight-attempt collection for prime-rl.\n\n## License\n\n[MIT](LICENSES/MIT.txt)\n","encoding":"utf-8","truncated":false,"total_bytes":2084},"status":null}