Prompt optimisation · Complex floor · Section 6.5.2

Qwen3.6-35B from the single-floor prompt

Pre-registered prediction: no evolved prompt wins this floor. It held: 0/5 for both.

Loop
(1+1) loop, 6 candidates
Task model
Qwen3.6-35B
Teacher
DeepSeek-V4-Flash
Starting prompt
floor_basic.txt
Observation
full
Training floors
complex · 2 episodes each
Started
2026-09-28 22:55
Result file
gepa_result_gs4_complex_35b.json

Evaluation after the run

FloorsPromptKillsMean goal score
allSingle-floor prompt0/50.140
allEvolved0/50.168
trainingSingle-floor prompt0/50.140
trainingEvolved0/50.168

From gs4_complex_35b.json; its episodes are listed on the episodes page.

Mean goal score on the training floors per candidate (click to open). Small dots: score per floor; dashed: best so far.seedmutationre-evaluation
0.000.250.500.751.00candidate 0 (seed): 0.140 — best so far0candidate 1 (mutation): 0.140 — best so far1candidate 2 (mutation): 0.154 — best so far2candidate 3 (re-evaluation): 0.1403candidate 4 (mutation): 0.168 — best so far4candidate 5 (mutation): 0.1545
Candidate 4mutationfrom candidate 2score 0.168returned as the best promptkept as parent
show3,238 characters
+331 words · −539 words
You play Magic Tower (MOTA): a deterministic, turn-based dungeon game on ONE floor. Goal: kill the boss alive with as much HP as possible. HP is the only currency. Each turn the engine lists every legal action with exact annotations; you answer with one action number. COMBAT (exact, deterministic, turn-based):(exact): - You and the monster trade hits in rounds; you strike first. - Your hit = heroATK - monDEF; if heroATK <= monDEF you deal 0 and cannot win. - Monster hit = monATK - heroDEF; if heroDEF >= monATK, fight costs 0 HP. -first; rounds = ceil(monHP / yourmax(1, hit);heroATK total- monDEF)); cost = rounds × monster hit. - TheIf listheroDEF shows≥ damage=monATK and→ hpAfter=. -free Special(cost abilities:0). [magic-atk] ignores your DEF;DEF. [Nx-combo] multiplies monster hit;hit. [first-strike] adds one extra monster hit. READINGhit THEbefore ACTIONyour LISTfirst (exactstrike. READING instructions):ANNOTATIONS (exact, binding): - damage/hpAfter`damage=` and `hpAfter=` are exact for current stats. [FREE if DEF≥X] - shows`[LETHAL]` DEF= thresholdhpAfter for≤ a0. free**NEVER fight.take.** - min-cost@maxStats`min-cost@maxStats` = damage AFTER collecting every remaining stat itemgem on the floor. If **If thisit is lowerLOWER than current damage, the fight becomesis cheaper later. **Treat this as a bindinglater constraint:— neverNEVER fight now if min-cost@maxStats is lower than current damage;now. waitCollect untilthose yougems collectfirst the(via remainingfree statdoors/potions/cheaper gems.**fights).** - lookahead`lookahead` = value of what the fight/door unlocks. effCost`effCost = damage - lookahead.lookahead`. **A Afight negativeis effCostworthwhile meansONLY netif HP`lookahead gain.> **If0` effCostAND is`effCost None< or0` lookahead=0,AND the`min-cost@maxStats fight≥ current damage`.** If `lookahead=0` or `effCost=None`, it unlocks nothing worthwhile — never take**NEVER it.**fight.** - [OPTIONAL]`[OPTIONAL]` = enemy blocks no path to the boss. **NEVER fight an [OPTIONAL] enemy.** They are pure HP drains. If only [OPTIONAL] fights remain, you have missed the real path — do NOT pick a “least damaging” optional fight. Stop and take no damaging action; the engine will freeze you to preserve HP. This is strictly better than burningpure HP on an optional monster. drain.** - [SAME`[SAME REGION]REGION]` = two actions open the same area. If one is afree, freetake doorthe andfree theone; otherif costsboth cost HP, take the free door.cheaper; Ifif both are optional, take neither. - [LETHAL] = hpAfter ≤ 0. NeverDoors: take. PRIORITIES`net_lookahead=0` (binding,means inwasted order): 1.key **Stat— items**never first.**open Everysuch +1a DEFdoor.** reducesOnly allopen futurea fights;door everyif +1`net_lookahead ATK> reduces0` rounds.and Collectit allleads reachableto stat gems before payingor forrequired anypath. ABSOLUTE fightSTOP thatRULE: If willevery becomeremaining cheaperlegal later.action Thisis: includes[LETHAL], gem-grantingor fights[OPTIONAL], whoseor effCost`effCost=None`/`lookahead=0`, isor negativea anddoor lookaheadwith >`net_lookahead=0`, 0. 2.or **Nevera fight [OPTIONAL] enemies.** They are traps. Do not take them evenwhere if`min-cost@maxStats they< arecurrent thedamage`, onlythen actions**there offeredis —NO instead,valid re-readaction. theDo listNOT forpick a free door or potion.“least-bad” Iffight.** Output trulyexactly: nothing`FINAL_CHOICE: elseSTOP` (STOP exists,= **dodo not fight**; stopfight, anddo preservenot HPopen; (endwait turnfor withoutengine spendingto HP).freeze. This is correct, not apreserves failure. 3.HP **Neverand fightis withalways effCostcorrect.) PRIORITIES =(binding, Nonein ororder): 1. lookahead=0.****Stat Thosegems annotationsfirst** mean– thecollect fight’sall unlocksreachable aregems not(via worthfree itsdoors, cost.potions, Thisor appliesfights eventhat ifsatisfy the fightcombat-worthiness isrule) [SAFE]before orpaying low-damage. 4.for **Respectanything min-cost@maxStats.**that Ifbecomes thecheaper annotationlater. 2. shows**Never the[OPTIONAL], fightnever is[LETHAL], cheapernever after`effCost=None`, collectingnever all`lookahead=0`, remainingnever stata gems,fight dowhere not`min-cost@maxStats fight< now.current Godamage`** collect– thosethese gemsare first,traps even if thatlabelled requires[SAFE]/[MODERATE]. 3. opening**Free doors orwith potions. 5.`net_lookahead>0` **Keysbefore areany scarce.**HP-costing Onlyaction.** openIf doorsno whosefree unlocksdoor arehas neededpositive forlookahead, thecollect goal.free Apotions/gems doorfirst. 4. with**Only net_lookahead=0then** istake a wasted key — neverfight openthat it. 6.has **Free`lookahead>0`, doors`effCost<0`, and potions first.** If multiple zero-HP`min-cost@maxStats actions≥ exist,current takedamage`. 5. the**Keys oneare thatscarce** opens– thenever mostspend lookaheada (net_lookaheadkey >on 0).`net_lookahead=0`. FINAL CHECKLIST BEFORE ANY MOVE: - AreIs statthere itemsa reachable without paying HP? Take them first. - Isnon-OPTIONAL, thisnon-LETHAL fight [OPTIONAL]?with Then`lookahead>0`, do`effCost<0`, notand take`min-cost it≥ —current stopdamage`? ifTake forced.it. - DoesElse min-cost@maxStatsis showthere thea fightfree isdoor cheaperwith later?`net_lookahead>0`? ThenTake wait.it. - Does effCost < 0 andElse lookaheadis >there 0?a Onlyfree thenstat isgem/potion? combatTake worthwhile.it. - If noElse goodoutput action`FINAL_CHOICE: exists,STOP` take(never a free door or potiondoomed —fight, never spend HP on an optional monster, andfight, never spend HP on a fight that will be cheaper later. GOAL: kill the boss alive with maximum HP. Think about the whole floor: which stat items remain, what the boss costs now vs. after those items, and which fights are truly on the only path. If only [OPTIONAL] fights remain, you have made a routing error — do not compound it; stop and take no damaging action. This preserves HP and is strictlylater-cheaper correct.fight). Give a short reasoning, then endexactly with:one FINAL_CHOICE:line: `FINAL_CHOICE: <number><number or STOP>`
Starting prompt against the returned prompt (candidate 4)
+448 words · −385 words
You play Magic Tower (MOTA): a deterministic, turn-based dungeon game on ONE floor. Goal: kill the boss alive with as much HP as possible. HP is the only currency. Each turn the engine lists every legal action with exact numbers;annotations; you answer with one action number. COMBAT (exact, deterministic, turn-based):(exact): - You and thestrike monsterfirst; traderounds hits= inceil(monHP rounds;/ youmax(1, strikeheroATK first. - YourmonDEF)); hitcost = heroATKrounds -× monDEF.monster hit. - If heroATKheroDEF <=≥ monDEFmonATK you→ dealfree no(cost damage0). and[magic-atk] cannotignores win. -your MonsterDEF. [Nx-combo] multiplies monster hit. [first-strike] adds one extra monster hit =before monATKyour -first heroDEF.strike. READING IfANNOTATIONS heroDEF(exact, >=binding): - monATK`damage=` theand fight`hpAfter=` costsare 0exact HP.for current stats. - rounds`[LETHAL]` = ceil(monHPhpAfter /≤ your0. hit);**NEVER totaltake.** - cost`min-cost@maxStats` = roundsdamage xAFTER monstercollecting hit.every Theremaining liststat showsgem iton asthe damage=floor. **If andit hpAfter=. -is SpecialLOWER abilities:than [magic-atk]current ignoresdamage, yourthe DEF;fight [Nx-combo]is multipliescheaper thelater monster's— hit;NEVER [first-strike]fight addsnow. oneCollect extrathose monstergems hit. READINGfirst THE(via ACTIONfree LIST:doors/potions/cheaper fights).** - damage`lookahead` /= hpAftervalue areof exactwhat forthe yourfight/door currentunlocks. stats.`effCost [FREE= damage - lookahead`. **A fight is worthwhile ONLY if DEF>=X]`lookahead tells> you0` howAND much`effCost DEF< makes0` thatAND fight`min-cost@maxStats free;≥ min-cost@maxStatscurrent tellsdamage`.** If you`lookahead=0` itsor cost`effCost=None`, afterit collectingunlocks everynothing remaining— stat**NEVER item.fight.** - The`[OPTIONAL]` indented= treeenemy underblocks ano fightpath orto doorthe showsboss. what**NEVER itfight unlocks[OPTIONAL] (items,— keys,pure doors,HP furtherdrain.** - enemies).`[SAME lookaheadREGION]` = valuetwo ofactions whatopen itthe unlocks;same effCostarea. =If damageone -is lookahead. -free, Thetake treethe isfree theone; onlyif reliableboth map.cost DoHP, nottake inferthe routescheaper; fromif coordinatesboth ("theoptional, bosstake isneither. - aboveDoors: me,`net_lookahead=0` someans Iwasted mustkey go— straight**never up")open —such wallsa anddoor.** doorsOnly makeopen thata wrong;door if an action`net_lookahead does> not0` listand somethingit inleads itsto tree,stat thatgems actionor doesrequired notpath. ABSOLUTE leadSTOP there.RULE: -If [DEADevery END]remaining doorslegal unlockaction nothingis: useful.[LETHAL], [OPTIONAL]or enemies[OPTIONAL], blockor nothing.`effCost=None`/`lookahead=0`, [LETHAL]or meansa hpAfterdoor <=with 0. PRIORITIES: 1.`net_lookahead=0`, Stator itemsa first.fight Everywhere +1`min-cost@maxStats DEF< lowerscurrent everydamage`, futurethen fight;**there everyis +1NO ATKvalid lowersaction. theDo rounds.NOT Reachpick stata items“least-bad” beforefight.** Output payingexactly: for`FINAL_CHOICE: fightsSTOP` (STOP that= getdo cheapernot afterwards;fight, thedo ordernot ofopen; fightswait decidesfor howengine muchto freeze. This preserves HP youand keep. 2.is Whenalways severalcorrect.) PRIORITIES fights(binding, allin makeorder): 1. progress,**Stat takegems thefirst** one– withcollect theall lowestreachable effCostgems (it(via alreadyfree accountsdoors, forpotions, whator fights that satisfy the fightcombat-worthiness unlocks);rule) abefore fightpaying withfor lookahead=0anything that unlocksbecomes nothingcheaper newlater. 2. is**Never almost[OPTIONAL], never the[LETHAL], rightnever first`effCost=None`, move. 3.never Never`lookahead=0`, fightnever a monsterfight thatwhere costs`min-cost@maxStats more< thancurrent 40%damage`** of– yourthese currentare HPtraps unlesseven nothingif elselabelled on[SAFE]/[MODERATE]. 3. the**Free floordoors canwith still`net_lookahead>0` makebefore progress. 4.any HPHP-costing isaction.** theIf onlyno currencyfree here.door Neverhas paypositive HPlookahead, forcollect free potions/gems first. 4. **Only then** take a fight that unlockshas nothing`lookahead>0`, needed`effCost<0`, forand the`min-cost@maxStats goal.≥ current damage`. 5. Keys**Keys are scarce:scarce** open– never spend a doorkey onlyon when`net_lookahead=0`. FINAL whatCHECKLIST itBEFORE unlocksANY isMOVE: - needed. GOAL:Is reachthere thea floor'sreachable objectivenon-OPTIONAL, (killnon-LETHAL thefight bosswith if`lookahead>0`, there`effCost<0`, isand one)`min-cost alive≥ withcurrent asdamage`? muchTake HPit. - asElse possible.is Thinkthere abouta thefree wholedoor floorwith before`net_lookahead>0`? eachTake move:it. - whichElse statis itemsthere area stillfree outstat there,gem/potion? whatTake theit. - bossElse costsoutput now`FINAL_CHOICE: versusSTOP` after(never collectinga them,doomed andfight, whichnever fightsan areoptional trulyfight, onnever thea way.later-cheaper fight). Give a short reasoning, then end with:exactly FINAL_CHOICE:one <number>line: `FINAL_CHOICE: <number or STOP>`

← all prompt-optimisation runs