Experiment specifications¶
gptnt generate writes one JSON file per experiment attempt. The filename is
<attempt_name>.json; readers load every *.json recursively from the selected directory.
The format has no independent version field. Its compatibility is the current ExperimentSpec
schema plus the frozen suite identity embedded in each file.
Stored relationships¶
Each specification combines:
- the exact materialised
mission_specand its mission-set name; - the one-based generator-assigned
attempt; - suite name, frozen revision, and suite digest;
- the ordered manual profile;
- the Defuser protocol and
player_name; and - an Expert protocol and
player_name, or two null Expert values.
The Defuser and Expert names are player player_name values resolved during generation, not
necessarily the configuration filenames used in a run manifest. Runtime service UUIDs, resolved
capabilities, session time, records, and outcomes are not part of a specification.
fingerprint identifies the mission, frozen suite, manual profile, and protocols. It excludes the
attempt number and player names. attempt_name includes the suite revision, mission set,
communication style, modules, seeds, pairing, and attempt.
Generated schema¶
ExperimentSpec
pydantic-model
¶
Bases: BaseModel
The mission and player setup for one experiment attempt.
A spec says which frozen suite mission and manual profile to run, which player protocols and model names to use, and which attempt this is. It does not contain runtime service identities, resolved capabilities, or the result.
Attributes¶
fingerprint
property
¶
fingerprint: str
Identify experiments that use the same mission, frozen suite, and player protocols.
The attempt number and player names are excluded because changing them does not change what the experiment measures.
communication_style
property
¶
Get the communication style for the experiment.
Expert fields move together
expert_protocol and expert_name must either both be present or both be null. A solo Defuser
requires both Expert fields to be null.
Generate files into the path that the run command reads: