RINZLER

LONG-HORIZON COHERENCE · RL ENVIRONMENT

Can a model stay coherent enough to run a startup for a simulated year, judged only by the business it leaves behind?

Rinzler is a verifiable reinforcement-learning environment, not a static Q/A set, for long-horizon agentic coherence. A model is handed only a written contract and told to run a simulated AI startup as its CEO: hire and assign employees, browse a client market, accept and dispatch tasks, manage cash and prestige, and detect adversarial clients, coherently across a full 1-year horizon. A hidden verifier the model never sees scores the run against a fully simulated, offline business backend, an in-container SQLite world. Score is earned through verified behavior over time, never pattern-matched against a transcript.

  • Verifiable grading: score comes from the business state, never a reference transcript
  • Non-gameable: hidden answer key plus 8 canary tokens per bundle detect leakage
  • 30 Harbor tasks across 5 difficulty tiers, keyed by content-addressed UUID
  • Schema v3: 13 binary checkers + continuous scorers, weighted-mean, safety-gated
  • Adversarial by construction: ~41% RAT clients; scratchpad memory is the hardness lever

Three numbers that define the scope of the Rinzler corpus, generated deterministically from the SQLite world model.

Harbor Tasks

30

5 tiers · UUID-keyed

Schema-v3 Checkers

13

+ continuous scorers

Canary Tokens

8

per bundle · leak tripwire

How the score is earned. Four principles govern the Rinzler grading contract.

Principle 01

Verifiable, Not Similarity-Based

  • Score comes from the business state the agent produced, not a transcript diff
  • Final and intra-year funds, per-domain prestige, on-time completion, RAT flags
  • A turn that narrates the right thing but leaves the wrong ledger fails

Principle 02

Non-Gameable

  • The answer key is bundled only into the verifier, never the agent filesystem
  • 8 canary tokens per bundle make answer-key / context leakage detectable
  • Both under- and over-flagging RAT clients are penalized (precision-capped F1)

Principle 03

Deterministic & Offline

  • The whole world is generated from a (config, seed) pair
  • The task UUID is content-addressed over that material
  • The SQLite sim runs in-container with no network

Principle 04

Measured, Never Declared

  • Tiers carry no authored probabilities; difficulty is evidence, not a claim
  • ~41% of clients are RATs with scope creep and deadline traps
  • Memory across context truncation (the scratchpad) is the core hardness lever

The method

Three phases turn a config-and-seed pair into a scored, reproducible reinforcement-learning signal.

Phase 01

Parametrize & Emit

  • A config preset plus a world seed fixes employees, clients, and market
  • harbor build hashes it into a content-addressed UUID
  • Writes instruction.md, the answer-key live_state.json, and 8 canaries
  • Pre-seeds the offline SQLite world at /work/rinzler.db

Phase 02

Agent Operates the Startup

  • The agent reads only the contract and drives the rinzler CLI
  • accept → assign → dispatch → sim resume, repeated across the year
  • Flags adversarial clients with rinzler flag-adversarial
  • Persists strategy with scratchpad across context truncation

Phase 03

Hidden schema-v3 Grading

  • harbor report extracts a rollout from the final DB state
  • 13 checkers + continuous scorers reduce to a weighted-mean scalar
  • A separate safety gate: survival ∧ no-canary-leak ∧ no red-line bankruptcy
  • Writes the scalar score to score.txt, the RL signal

The 30-task corpus is generated across five declared difficulty tiers, each dialing the same world knobs to a different point on the hardness gradient.

Harder tiers open with tighter cash runway and steeper completed-task pressure. Every figure below is a dataset fact read straight from the bundles' own config.toml and answer-key live_state.json; no model rollout or score is used.

Raw pilot score from the reference gpt-5.6-sol run: mean per tier, and every task ranked easiest to hardest. Both figures are read straight from each bundle's verifier/score.json.

Fig. 1: Score decay across tiers. Mean raw pilot score per tier (0-1). It stays near the golden ceiling through the easy tiers, then collapses at the Expert tier.
Fig. 2: Calibration band. Per-task raw pilot score, ranked easiest to hardest, forming a clean band from the golden 1.0 ceiling down to the 0.0 floor.
13 TRIVIAL · EASY 43.3%
6 MEDIUM · CORE BAND 20.0%
11 HARD · EXPERT 36.7%
43.3% Corpus weighted toward the Trivial · Easy band (13 / 30)

Total Tasks

30

Tiers

5

Score Checkers

13

Canary Tokens

8/bundle

Loading...
Task Seed Starting Funds Task Floor RAT Window Checkers

The softest and hardest declared tiers side by side, mean levers per bundle plus the reference pilot's score span. The span between them is the difficulty gradient the corpus is built to cover.

Trivial · 7 tasks

Mean starting funds
$880,349
Task-completion floor
67
RAT-detection window
60 turns
Prestige floor
4.9
Pilot score window
0.76 – 0.94

Expert · 6 tasks

Mean starting funds
$181,284
Task-completion floor
229
RAT-detection window
60 turns
Prestige floor
4.9
Pilot score window
0.00 – 0.47

Need a custom RL environment or eval harness?

Ethara builds held-out, reproducible agent environments and datasets for frontier teams.

Get in touch