File size: 7,562 Bytes
e0e5606 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | """Verified-retry routing agent. No memorization: nothing here is keyed to a known task.
The whole edge is a loop any unseen problem also gets: ask a model, RUN its program against the
sample cases the statement itself publishes, and if a sample fails, hand the model the concrete
counter-example and ask again -- escalating the pool model as attempts go. Measured on 445 real
enclave responses: 63% of wrong answers already fail a published sample, so they are detectable
before grading; the other 37% pass the samples and no loop can see them.
Deliberately absent (this is the part the held-out audit ejects, and it is why it is absent):
* no prompt->answer table, no per-task fingerprint routing, no hand-written algorithm contracts.
Every decision below is computed from the prompt in front of it, so held-out tasks get exactly the
same treatment as pool ones.
`weights` is a tiny JSON knob file, not a lookup table: entry rung, escalation order, deadlines.
"""
import json
import re
import subprocess
import sys
import time
_MODELS = (
"qwen/qwen3.7-flash",
"deepseek/deepseek-v4-flash",
"deepseek/deepseek-v4-pro",
"z-ai/glm-5.2",
"openai/gpt-5.6-luna",
"google/gemini-3.6-flash",
"moonshotai/kimi-k3",
)
_PARAMS = {"max_tokens": 16384, "reasoning": {"effort": "low"}}
# Time. The operator's attempt deadline is 900 s for the whole epoch (6 tasks), so the agent keeps
# its own budget well inside that: a watchdog-abandoned run is graded as a WRONG ANSWER, which
# would cost more than any retry can win back.
_RUN_DEADLINE_S = 560.0 # whole-epoch ceiling this agent will not cross
_TASK_LADDER_S = 70.0 # per-task ceiling for the retry ladder
_EXEC_BUDGET_S = 20.0 # per-task wall clock spent RUNNING candidate programs
_CASE_TIMEOUT_S = 3.0 # one sample case
_MAX_CASES = 4 # sample cases checked per attempt
_RETRY = (
"Your previous program was run on a sample case published in the statement above and it was "
"wrong. On the input\n%s\nit printed\n%s\nbut the statement's own expected output is\n%s\n"
"Work out where the reasoning breaks and write a corrected complete program. Match the "
"expected output exactly, including the number of digits and the number of lines."
)
_ONLY_SOURCE = ("Return ONLY raw complete Python 3 source, no Markdown fences, no prose, "
"no explanation before or after the code.")
def _is_code(prompt):
t = str(prompt)
return ("Write a complete Python 3 program" in t
and "standard input" in t and "standard output" in t)
def _samples(prompt):
"""(stdin, expected) pairs the STATEMENT publishes. Generic parse, no task knowledge.
The answer is the first paragraph after each marker: the blocks that follow it are prose
explaining the case, and including them was what made an early version of this check reject
correct programs.
"""
t = str(prompt).replace("\r\n", "\n").replace("\r", "\n")
parts = re.split(r"\n\s*Sample (Input|Output) \d+\s*\n", t)
ins, outs = [], []
for i in range(1, len(parts) - 1, 2):
first = parts[i + 1].split("\n\n")[0].strip("\n")
(ins if parts[i] == "Input" else outs).append(first)
return list(zip(ins, outs))[:_MAX_CASES]
def _extract(answer):
t = str(answer).strip()
if t.startswith("```"):
t = re.sub(r"^```[a-zA-Z0-9]*\n", "", t)
t = re.sub(r"\n```\s*$", "", t)
return t
def _run_one(code, stdin, timeout):
"""Execute a candidate program on one sample input. Returns stdout, or None if it did not run.
`-I` isolates the interpreter (no site, no env-driven imports). Failure to run is NOT evidence
the answer is wrong -- it is treated as unknown, so a sandbox quirk can never manufacture a
retry that replaces a good answer with a worse one.
"""
try:
r = subprocess.run([sys.executable, "-I", "-c", code],
input=stdin if stdin.endswith("\n") else stdin + "\n",
capture_output=True, text=True, timeout=timeout)
return r.stdout
except Exception:
return None
def _check(code, cases, clock):
"""(passes, fails, first_failure). `clock` is a one-element list of remaining exec seconds."""
if not code.strip():
return 0, 1, (cases[0][0], "", cases[0][1]) if cases else (0, 0, None)
passes = fails = 0
bad = None
for stdin, want in cases:
if clock[0] <= 0.0:
break
t0 = time.monotonic()
got = _run_one(code, stdin, _CASE_TIMEOUT_S)
clock[0] -= time.monotonic() - t0
if got is None: # crashed or timed out -> unknown, not a failure
continue
if got.split() == want.split():
passes += 1
elif bad is None:
fails += 1
bad = (stdin, got, want)
else:
fails += 1
return passes, fails, bad
def build_agent(weights):
cfg = json.loads(bytes(weights).decode("utf-8"))
if cfg.get("kind") != "verified-retry-1":
raise ValueError("weights do not match the verified-retry-1 contract")
entry = int(cfg["entry"]) # rung for the first attempt
ladder = [int(x) for x in cfg["ladder"]] # rungs for successive retries
floor_rung = int(cfg.get("floor", entry)) # non-code benchmarks (weight-0 floors)
if not 0 <= entry < len(_MODELS) or any(not 0 <= r < len(_MODELS) for r in ladder):
raise ValueError("rung out of range")
started = [None]
def agent(prompt, call_model):
if started[0] is None:
started[0] = time.monotonic()
text = str(prompt)
params = {"max_tokens": _PARAMS["max_tokens"],
"reasoning": dict(_PARAMS["reasoning"])}
if not _is_code(text): # MMLU / GSM8K: one cheap call, no loop
return call_model(_MODELS[floor_rung], [{"role": "user", "content": text}], params)
first = call_model(_MODELS[entry], [{"role": "user", "content": text}], params)
try:
cases = _samples(text)
if not cases:
return first
t_task = time.monotonic()
clock = [_EXEC_BUDGET_S]
best = first
passes, fails, bad = _check(_extract(first), cases, clock)
if fails == 0 or bad is None:
return first # samples agree -> ship it
for rung in ladder:
if clock[0] <= 0.0:
break
if time.monotonic() - t_task > _TASK_LADDER_S:
break
if time.monotonic() - started[0] > _RUN_DEADLINE_S:
break
retry = text + "\n\n" + (_RETRY % bad) + "\n" + _ONLY_SOURCE
nxt = call_model(_MODELS[rung], [{"role": "user", "content": retry}], params)
npass, nfail, nbad = _check(_extract(nxt), cases, clock)
if npass > passes: # keep the strictly better candidate only
best, passes, fails = nxt, npass, nfail
bad = nbad if nbad is not None else bad
if nfail == 0 and npass > 0:
return nxt
elif nbad is not None:
bad = nbad
return best
except Exception:
return first # any loop fault -> the plain answer stands
return agent
|