Skip to content

Player configuration

A player profile under configs/player/<name>.yaml overrides the base Hydra assembly in configs/player.yaml. The resolved configuration constructs a player service, model agent, capabilities, identity, recorder, and observation processors.

Configuration ownership

Subtree Owner
capabilities GPTNT's participant input, output, processing, and identity settings
identity GPTNT's submission attribution
action_predictor GPTNT's predictor around a Pydantic AI agent
action_predictor.agent.model Pydantic AI model selection and provider attachment
action_predictor.agent.model_settings Pydantic AI generic or provider-specific request settings
observation_handler GPTNT's resizing, set-of-marks, and coordinate conversion
experiment_recorder GPTNT's local or W&B recorder target

Use the Pydantic AI model overview, ModelSettings API, and UsageLimits API for fields owned by that library. GPTNT does not duplicate provider model lists or settings fields.

Capability relationships

usage_limits applies Pydantic AI request limits. GPTNT also uses its input-token limit when truncating conversation history. tokens_per_image adds the calibrated token value for every image in that calculation.

model_settings on PlayerCapabilities is derived by the base Hydra configuration from action_predictor.agent.model_settings. Do not maintain a second authored copy. The derived value retains model-input and generation settings used by the capability fingerprint while omitting the operational settings excluded by fingerprint_model_settings.

Capabilities are benchmark identity

Image dimensions, token measurement, thinking mode, structured output, observation retention, location representation, feedback generation, and selected model settings can change model input or output. Record and compare them as part of the configured participant.

Player identity

PlayerIdentity pydantic-model

Bases: BaseModel

Presentation metadata for a model/player.

Player capabilities

PlayerCapabilities pydantic-model

Bases: BaseModel

The capabilities of a player, that is set once on instantiation.

This tells the EM what the player is and what they can do for the matchmaking.

Attributes

normalised_coordinate_scale property

normalised_coordinate_scale: PositiveInt

Return the validated scale for normalised-coordinate code paths.

interact_location_type property

The type used for interaction locations.

This is based on the interaction location method so that we can create the output type for the protocol without needing to have a whole different if-statement.

fingerprint property

fingerprint: str

A stable digest of this exact model setup.

We exclude several fields to ensure that the fingerprint of the model is only represented by its capabilities and not by any other fields that may change over time, or that are not relevant.

Image dimensions

ImageDimensions dataclass

Dimensions of an image (width, height).

Attributes

long_side property

long_side: int

The length of the longer side of the image.

short_side property

short_side: int

The length of the shorter side of the image.

Observation processing

The base profile supplies ObservationHandler, ImageResizer, and SetOfMarksHandler. Override their Hydra subtrees only when the player needs different image dimensions, coordinate handling, or mark rendering. Their callable contracts are grouped in the processor reference.