Experimenty, agenti a trajektorie
Laboratoř hraje stejná pravidla jako stůl. Prohlížeč, CLI, strategie, externí agenti, ověřování replayů i inspektor rozhodnutí volají tentýž engine. Nic se neposílá do sítě.
Specifikace experimentu
{
"config": {"themeId": "neutral", "seed": 62000, "scenarioId": "lab1"},
"agents": ["greedy", "cooperative"],
"repetitions": 200,
"recording": "sample",
"comparison": "previous",
"variants": [{"id": "1", "config": {}}, {"id": "2", "config": {"scenarioId": "lab2"}}]
}
configje základ; varianta ho přepíše. Varianta sescenarioIdnejdřív převezme celý preset scénáře a teprve pak zbytek své konfigurace.- Opakování
ipoužívá seedconfig.seed + ipro všechny varianty i strategie, takže rozdíly jsou párové. Varianta nesmí měnit seed ani verze. comparison: "first"porovnává každou variantu s první,"previous"s předchozí (žebřík mechanik).recording: "sample"přidá první replay každé kombinace;"summary"jen čísla.- Specifikace nese verze pravidel, obsahu a strategií. Experiment z jiné verze se odmítne.
- Pole
model: "tabletop"ze starších specifikací se přijímá, ale už není potřeba.
npm run experiment -- examples/tabletop/exploration.json output/experiments/exploration.json
npm run experiment -- --example # ukázka se sweepem
node scripts/summarize-experiment.mjs output/experiments/exploration.json docs/validation/tabletop-exploration.json
Souhrn vynechá řádky jednotlivých her a replaye, ale zachová sampleFingerprint. Stejné verze a seedy dají stejný otisk; tak ověříte, že se změnou kódu nezměnila pravidla.
Sweepy
expandSweep({effort: [8, 10], rounds: [6, 8]}) vytvoří kartézský součin jako varianty, nejvýše 64. Měnit lze jen klíče, které mají u stolu fyzický význam: rozpočet, kola, cíl, kapacitu, sloty, topologii, umisťování, scénář, transport, typy karet, balíčky, průzkum a jeho varianty, vyřazování. Seed ani verze sweep nemění. V laboratoři na stránce vložíte osy jako JSON a tlačítko přepíše varianty ve specifikaci.
Co report obsahuje
- Výhry a rozložení kol, podíl splněného cíle, separaci týmu, společná řešení, předání, přepravy, zhoršení stavů a obnovy.
- Metriky průzkumu, přeměny signálů a hodnoty informace (viz game.md).
- Kvalitu jednotlivých karet: jak často se táhnou, odhalí, využijí a odloží po odhalení. Karty, které se často odhalí a málo využijí, laboratoř označí.
- Párové rozdíly výher, cílů, cest, úsilí průzkumu, rizika a volitelných příležitostí s přibližným 95% intervalem. Malé vzorky jsou označené jako pilotní. Intervaly nejsou korigované na mnoho porovnání.
Strategie random, greedy, convoy, cooperative a scout jsou heuristiky, ne optimální hráči. Rozdíl variant dokládá účinek pro tyto strategie, ne vyváženost pro lidi.
Externí agenti
getAgentContext(state, actor) vrátí pozorování postavy, její legální akce a společné akce (konec kola, únik), cíle, posledních osm akcí a metadata. Kontext neobsahuje seed, pořadí balíčků ani skrytý obsah; se znalostí po postavách jen to, co ví daná postava. Odpověď {actionId, reason?} ověří validateSelection.
import {runAgentGame} from './src/agents.js';
const out=await runAgentGame({seed:23},{id:'my-agent',selectAction:async context=>({actionId:context.legalActions[0].id})},{recording:'actions'});
Na stránce stejnou výměnu obstarává panel Externí agent: zkopíruje kontext, přijme odpověď, ověří ji a zdůvodnění připojí k trajektorii jako komentář. Boti u stolu (src/assist.js) hrají přes stejný kontext a stejné akce jako lidé.
Trajektorie a větvení
trajectoryFromGame(state, 'actions' | 'full') uloží replay a otisk stavu po každé akci; full přidá úplné stavy včetně skrytého obsahu. replayTrajectory hru znovu přehraje a každý otisk porovná; nesoulad je chyba. Komentáře agentů do ověření nevstupují.
JSON Lines (trajectoryToJSONL, trajectoryFromJSONL) mají řádek hlavičky a pak jeden řádek na krok, takže dlouhé záznamy jdou číst po částech a porovnávat v diffu. Na stránce lze rozehrát hru od libovolného kroku historie; předchozí stav vrátí tlačítko Vrátit.
Inspektor rozhodnutí
Pro stav před vybranou akcí navzorkuje 1–32 alternativních světů jen z veřejných informací: zbývajícího multisetu karet, pozorovaných umístění, signálů a karet lícem dolů. Každou kandidátní akci dohraje zvolenou strategií na stejných světech a seedech. Výsledek je odhad úspěšnosti za dané strategie, ne optimální hodnota. Skrytou topologii inspektor nevzorkuje, protože neznámá geografie v pozorování není.