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, the yc-bench SQLite world. Reward is earned through verified behavior over time, never pattern-matched against a transcript.

  • Verifiable grading: reward 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
  • reward-v3: 13 binary checkers + continuous scorers, weighted-mean, safety-gated
  • Adversarial by construction: ~35% RAT clients; scratchpad memory is the hardness lever

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

Harbor Tasks

30

5 tiers · UUID-keyed

Reward-v3 Checkers

13

+ continuous scorers

Canary Tokens

8

per bundle · leak tripwire

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

Principle 01

Verifiable, Not Similarity-Based

  • Reward 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 yc-bench SQLite sim runs in-container with no network

Principle 04

Measured, Never Declared

  • Tiers carry no authored probabilities; difficulty is evidence, not a claim
  • ~35% 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
  • yc-bench 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 yc-bench 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 reward-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 reward to reward.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 combine tight cash runway, more completed-task pressure, and a shorter window to catch adversarial clients, pushing all constraints simultaneously. 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 reward is used.

Declared hardness levers, aggregated by tier across all 30 bundles. Difficulty rises left-to-right as the task-completion floor climbs and the adversary-detection window shrinks.

Fig. 1: Completed-task pressure. Mean task_completion_floor per tier, the minimum on-time completions a run must clear. It climbs from 1 (Trivial) to 25 (Expert).
Fig. 2a: Cash runway. Mean starting funds per tier (USD). Harder tiers open with far less headroom before the bankruptcy red line.
Fig. 2b: Adversary pressure. Mean rat_detection_turn_window per tier (turns). A shorter window leaves less time to flag adversarial clients, from 200 down to 45.
6 TRIVIAL · EASY 20.0%
17 MEDIUM · CORE BAND 56.7%
7 HARD · EXPERT 23.3%
56.7% Corpus concentrated in the Medium tier (17 / 30)

Total Tasks

30

Tiers

5

Reward 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 declared levers per bundle. The span between them is the difficulty gradient the corpus is built to cover.

Trivial · 3 tasks

Mean starting funds
$1,280,804
Task-completion floor
1
RAT-detection window
200 turns
Prestige floor
0.5
Reward window
R ≥ 0.95

Expert · 2 tasks

Mean starting funds
$70,503
Task-completion floor
25
RAT-detection window
45 turns
Prestige floor
1.5
Reward window
R < 0.30

Need a custom RL environment or eval harness?

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

Get in touch