{"data":{"kind":"file","path":"README.md","version_id":"wh089fqc7kbvlzuysi92v30o","entry":{"name":"README.md","path":"README.md","is_directory":false,"size":3511,"modified_at":"2026-08-09T02:16:40.249000","content_hash":"76304353cc22946ec30c882539f29bb7d75a9383990ea66d9d026a3a49fa63bd"},"entries":[],"content":"# factorio-microtasks\n\nEngine-verified Factorio microtasks for evaluating tool-using agents and\nbootstrapping reinforcement learning with verifiable rewards.\n\nThe environment publishes the `api_microtasks_v1` suite from the WASLab fork of\nthe Factorio Learning Environment (FLE). Version 0.1.0 contains 24 real-game\ntasks: 21 ready benchmark tasks and 3 tasks retained as\n`calibration_required`. The default selection includes only the 21 ready tasks.\n\n## What the model does\n\nEach rollout leases a real Factorio 2.0.73 headless-server state from\n`factorio-envd`. The model receives a compact public action reference and two\ntools:\n\n- `factorio_execute_program`: execute one short Python intervention through\n  FLE's restricted, auditable action namespace.\n- `factorio_observe_factory`: inspect the permitted structured game state.\n\nThe Factorio engine and objective verifier determine success. The model cannot\naward itself reward, call RCON directly, or access the privileged teacher\npacket. Final traces retain the scalar reward, decomposed metrics, termination\nreason, state hashes, and privileged diagnostics for offline analysis or OPSD.\n\n## Runtime requirement\n\nThis package intentionally does **not** contain Factorio binaries and does not\nlaunch game processes. It is the Verifiers v1 taskset/control-plane adapter.\nBefore evaluating it, run a compatible `factorio-envd` service backed by warm\nFactorio instances and make that service reachable from the evaluation worker.\nOnly expose `factorio-envd`; keep Factorio RCON ports private.\n\nConfigure the service URL under the taskset-owned tool config:\n\n```toml\n[[env]]\nid = \"factorio-microtasks\"\n\n[env.taskset]\nbenchmark_statuses = [\"ready\"]\n\n[env.taskset.task.tools]\nenvd_url = \"https://factorio-envd.example.internal\"\nrequest_timeout_seconds = 180.0\n\n[env.agent.harness]\nid = \"bash\"\nmax_turns = 8\n```\n\nFor local development, the default URL is `http://127.0.0.1:8172`.\n\n## Taskset configuration\n\n| Field | Default | Meaning |\n| --- | --- | --- |\n| `benchmark_statuses` | `[\"ready\"]` | Include ready tasks; add `calibration_required` explicitly for the remaining three. |\n| `seed` | `0` | Base deterministic task seed. |\n| `factorio_version` | `2.0.73` | Pinned engine version recorded in every task contract. |\n| `action_profile` | `fle-program-v1` | Restricted program-action API profile. |\n| `task.tools.envd_url` | `http://127.0.0.1:8172` | Reachable environment-service URL. |\n| `task.tools.request_timeout_seconds` | `180.0` | HTTP timeout for a game intervention or observation. |\n\nThe suite identity is fixed to `api_microtasks_v1`; it cannot silently fall\nback to FLE's legacy throughput task.\n\n## Rewards and metrics\n\nThe main reward is the engine-grounded scalar emitted by `factorio-envd` after\nfinalization. The trace also includes:\n\n- binary success and intervention count;\n- task, throughput, automation, progress, milestone, robustness, and time\n  efficiency components;\n- invalid-action, manual-intervention, and resource-cost components;\n- terminal state hash and termination reason;\n- privileged diagnostic and state-transition packets, withheld from the\n  student policy.\n\n## Source and licensing\n\n- Environment integration: <https://github.com/WASlab/factorio-learning-environment>\n- Upstream FLE: <https://github.com/JackHopkins/factorio-learning-environment>\n- Environment code: MIT\n\nFactorio is not redistributed by this package. Operators are responsible for\nusing the official headless server and complying with Wube's terms.\n\n","encoding":"utf-8","truncated":false,"total_bytes":3511},"status":null}