Skip to navigation

nemo_gym.web.models

View as MarkdownOpen in Claude

Wire models for stateful, multimodal web environments.

Module Contents

Classes

NameDescription
WebActionModel-independent computer-use action accepted by visual browsers.
WebActionLimitsRuntime-owned waiting limits advertised when a browser session starts.
WebActionProfile-
WebArtifactRefStable reference to an artifact retained outside a model request.
WebBenchmark-
WebImageAn image can be transported inline, retained as an artifact, or both.
WebObservationJSON-safe observation sent from the browser runtime to the agent.
WebObservationProfile-
WebRuntimeProfileBrowser execution protocol exposed by Gym.
WebStepResult-
WebTab-
WebTaskNormalized task envelope; original benchmark fields remain lossless.
WebVerifierResult-

Data

BROWSER_TARGET_CLOSED_STATUS

CAPTCHA_BUDGET_EXHAUSTED_STATUS

API

class nemo_gym.web.models.WebAction()

Bases: BaseModel

Model-independent computer-use action accepted by visual browsers.

answer
Optional[str] = None
arguments
dict[str, Any] = Field(default_factory=dict)
metadata
dict[str, Any] = Field(default_factory=dict)
name
str
raw_model_output
str = ''
script
str
terminal
bool = False
class nemo_gym.web.models.WebActionLimits()

Bases: BaseModel

Runtime-owned waiting limits advertised when a browser session starts.

The default retains the historical tool contract. A benchmark profile may permit longer waits without rewriting the model’s requested duration.

max_step_wait_seconds
float | None
max_wait_seconds
float
nemo_gym.web.models.WebActionLimits.validate_wait_budget() -> 'WebActionLimits'
class nemo_gym.web.models.WebActionProfile

Bases: enum.Enum

COMPUTER_USE
= 'computer_use'
class nemo_gym.web.models.WebArtifactRef()

Bases: BaseModel

Stable reference to an artifact retained outside a model request.

mime_type
str
sha256
str = Field(pattern='^[0-9a-f]{64}$')
size_bytes
int = Field(ge=0)
uri
str
class nemo_gym.web.models.WebBenchmark

Bases: enum.Enum

VISUALWEBARENA
= 'visualwebarena'
WEBARENA
= 'webarena'
WEBVOYAGER
= 'webvoyager'
class nemo_gym.web.models.WebImage()

Bases: BaseModel

An image can be transported inline, retained as an artifact, or both.

artifact
Optional[WebArtifactRef] = None
data_url
Optional[str] = None
nemo_gym.web.models.WebImage.require_transport() -> 'WebImage'
class nemo_gym.web.models.WebObservation()

Bases: BaseModel

JSON-safe observation sent from the browser runtime to the agent.

active_tab_index
int = Field(default=0, ge=0)
axtree_text
str = ''
elapsed_time
float = Field(default=0.0, ge=0.0)
element_map
dict[str, dict[str, Any]] = Field(default_factory=dict)
focused_element_id
str = ''
goal
list[dict[str, Any]] = Field(default_factory=list)
last_action
str = ''
last_action_error
str = ''
metadata
dict[str, Any] = Field(default_factory=dict)
screenshot
Optional[WebImage] = None
tabs
list[WebTab] = Field(default_factory=list)
url
str = ''
class nemo_gym.web.models.WebObservationProfile

Bases: enum.Enum

A11Y
= 'a11y'
SCREENSHOT
= 'screenshot'
SOM
= 'som'
class nemo_gym.web.models.WebRuntimeProfile

Bases: enum.Enum

Browser execution protocol exposed by Gym.

Model-specific prompting is deliberately not represented here. Nano Omni, Qwen, and future policies all drive the same visual browser runtime after their policy adapters normalize actions into WebAction.

VISUAL_BROWSER
= 'visual_browser'
class nemo_gym.web.models.WebStepResult()

Bases: BaseModel

benchmark_reward
Optional[float] = None
execution_ok
bool
info
dict[str, Any] = Field(default_factory=dict)
observation
WebObservation
terminated
bool = False
truncated
bool = False
class nemo_gym.web.models.WebTab()

Bases: BaseModel

active
bool = False
index
int = Field(ge=0)
title
str = ''
url
str = ''
class nemo_gym.web.models.WebTask()

Bases: BaseModel

Normalized task envelope; original benchmark fields remain lossless.

action_profile
WebActionProfile = WebActionProfile.COMPUTER_USE
auth_profile
Optional[str] = None
benchmark
WebBenchmark
input_images
list[str] = Field(default_factory=list)
intent
str = ''
model_config
= ConfigDict(extra='allow')
observation_profile
Optional[WebObservationProfile] = WebObservationProfile.SCREENSHOT
original_metadata
dict[str, Any] = Field(default_factory=dict)
runtime_profile
WebRuntimeProfile = WebRuntimeProfile.VISUAL_BROWSER
seed
int = 0
sites
list[str] = Field(default_factory=list)
start_urls
list[str] = Field(default_factory=list)
task_id
str
task_kwargs
dict[str, Any] = Field(default_factory=dict)
verifier_profile
Optional[str] = None
nemo_gym.web.models.WebTask.stringify_task_id(
value: typing.Any
) -> str
classmethod
class nemo_gym.web.models.WebVerifierResult()

Bases: BaseModel

evidence
list[WebArtifactRef] = Field(default_factory=list)
failure_kind
Optional[str] = None
metadata
dict[str, Any] = Field(default_factory=dict)
raw_score
float = 0.0
reward
float = 0.0
subscores
dict[str, float] = Field(default_factory=dict)
task_success
bool = False
valid_sample
bool = True
verifier_version
str = ''
nemo_gym.web.models.BROWSER_TARGET_CLOSED_STATUS = 'browser_target_closed'
nemo_gym.web.models.CAPTCHA_BUDGET_EXHAUSTED_STATUS = 'captcha_budget_exhausted'