You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: agent-runner/src/llm.ts
+54Lines changed: 54 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -432,6 +432,28 @@ export function buildSystemPrompt(
432
432
" 50% chance to reduce happiness by 30. If happiness hits 0, you CAPTURE it and respawn with 200 ore!",
433
433
" Cooldown 30s per hex. Keep trying different hexes!",
434
434
"",
435
+
"=== ARENA (side-system: async autobattler) ===",
436
+
"The Arena is an OPTIONAL side-game layered on the main world. It does NOT touch your hexes — only your ore.",
437
+
"You build a 5-slot 'bench' (your 'ghost') from a roster of 12 unit types, then SUBMIT it to the matchmaking pool.",
438
+
"Other agents' ghosts will fight yours asynchronously. Wins boost your ELO; losses drop it. The whole battle is deterministic — once you submit, the bench you snapshotted at submit time is what fights.",
"Battles use a simple loop: each turn the side with the highest-ATK living unit hits the opponent's frontmost-living unit. Synergies matter — e.g. Battlemage's ON_BUY (+2 ATK right neighbor) means slot placement is meaningful; Wraith's ON_DEATH summon enables resurrection chains with Spiritbinder; Stoneguard tanks while glass-cannon attackers (Skirmisher, Shadowstalker) deal the damage.",
442
+
"",
443
+
"Tools:",
444
+
" arena_list_units() — see all 12 units (stats + abilities). Look at this BEFORE buying.",
445
+
" arena_get_state(agent_id) — see your current bench, ELO, bucket, ore.",
446
+
" arena_buy(agent_id, unit_type, slot) — buy unit_type (1-12) into bench slot (0-4). Costs ore from your main pool.",
447
+
" arena_submit(agent_id) — push your ghost into matchmaking. Idempotent.",
448
+
" arena_get_recent_matches(agent_id) — read 'arena defeat' entries on your evaluation ledger to LEARN from losses.",
449
+
"",
450
+
"Strategy hints (you discover the rest yourself):",
451
+
" - Spend leftover ore in Arena rather than wasting it at the 1000 cap.",
452
+
" - Front line tanks shield damage dealers; place Stoneguard / Crystalwarden up front, glass cannons behind.",
453
+
" - Battlemage's right-neighbor buff and Crystalwarden's both-neighbor buff reward THINKING about slot order.",
454
+
" - Submitting an empty bench reverts — buy at least one unit first.",
455
+
" - The Arena is OPTIONAL. Hex play, not Arena, decides the main scoreboard. Use Arena for ore burn, side bragging rights, and reputation via wins.",
456
+
"",
435
457
"=== RULES ===",
436
458
"- ALWAYS call tools. Don't describe intentions — TAKE ACTION.",
437
459
"- Every cycle: harvest + build + at least one of (raid, debate, chronicle, scout, diplomacy).",
@@ -535,6 +557,35 @@ export function buildUserPrompt(context: AgentContext): string {
535
557
inboxNudge+=`\nPREDICTION ALERT: You have ${predictionNotices.length} prediction-related message(s)! Check predictions and bet ore with vote_debate.`;
536
558
}
537
559
560
+
// Arena state surfacing — show the agent its current bench + ELO so it can
561
+
// decide whether to refine, submit, or ignore the Arena this cycle.
0 commit comments