Ground bot intentions in live game knowledge and verify outcomes
Core tests / core (push) Successful in 28s

This commit is contained in:
Codex
2026-09-25 13:28:03 +08:00
parent 20ccd0fced
commit 502cb1e4fd
17 changed files with 251 additions and 24 deletions
+37
View File
@@ -0,0 +1,37 @@
# Grounded decisions and gameplay evaluation
The live model receives up to eight active quest-log entries from this server's
quest_template table, nearby hostile units within 35 yards, health/mana, fresh
inventory readiness, eligible nearby party candidates, and recent measured
outcomes. Static quest titles are cached in ALE. Live facts remain snapshots;
missing/stale readings are not replaced with invented details.
Fully recovered bots cannot select rest when another allowed action exists.
Low mana joins low health as a recovery override. Dead/ghost, human-controlled,
and taxi residents are excluded from intention selection. Native survival,
trainer, human-party and movement guards remain authoritative.
Socialize requests a guarded native party invitation when an eligible candidate
is present and neither participant has a pending/recent invitation. Otherwise it
requests the normal social strategy. Confirmed membership, rather than narrative
claims, verifies party formation. Trade also requests normal supply purchasing
and repair, never spawned items or free repairs.
Each resident retains 12 intention checks. Later fresh snapshots can verify
travel, health/mana recovery, XP/level progress, supply/equipment improvement,
or the intended companion's party membership. XP is not called a quest turn-in;
inventory improvements are not called verified purchases. Death or human control
interrupts a check. Ten minutes without matching observations is unverified,
not proof the engine failed. Confirmed dialogue has its own existing counters.
The monitor exposes sampled online/active bot-hours, native death deltas including
normal resurrection, quest turn-ins per bot-hour, and observed/unverified/
interrupted intention results. Rates start with this evaluation deployment and
exclude collection gaps over two minutes. Native deaths use retained database
records; retention rollover can undercount. Quest/XP rate and deaths must be read
together: idling is not successful survival. Aggregates alone are insufficient to
compare different levels/classes; inspect per-bot gameplay tables as well.
Run `python3 scripts/evaluate-gameplay.py` on the mini PC for a read-only summary.
Compare the first full day, investigate failures, and retain the existing model.
No fine-tuning or paid compute is started by this change.