Files
AzerothAI/docs/grounded-decisions.md
T
2026-09-25 13:28:03 +08:00

2.3 KiB

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.