Skip to content

Commit 6664b69

Browse files
committed
pass backend cls, instantiate backend in task
1 parent d1d5c6d commit 6664b69

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/agentlab/backends/browser/env.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,18 +133,23 @@ class BrowserEnvArgs(AbstractEnvArgs):
133133
task: AbstractWebTask
134134
task_seed: int
135135
task_name: str
136-
backend: BrowserBackend
136+
backend_cls: type[BrowserBackend]
137137

138138
def __init__(
139-
self, task_name: str, task: AbstractWebTask, backend: BrowserBackend, task_seed: int = 0
139+
self,
140+
task_name: str,
141+
task: AbstractWebTask,
142+
backend_cls: type[BrowserBackend],
143+
task_seed: int = 0,
140144
):
141145
self.task_name = task_name
142146
self.task = task
143147
self.task_seed = task_seed
144-
self.backend = backend
148+
self.backend_cls = backend_cls
145149

146150
def make_env(self, exp_dir: Path) -> BrowserEnv:
151+
backend = self.backend_cls()
147152
env = BrowserEnv(
148-
task_name=self.task_name, task=self.task, backend=self.backend, seed=self.task_seed
153+
task_name=self.task_name, task=self.task, backend=backend, seed=self.task_seed
149154
)
150155
return env

src/agentlab/benchmarks/miniwob/benchmark.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22
from typing import Any
33

4-
from pydantic import ConfigDict, Field
4+
from pydantic import ConfigDict
55

66
from agentlab.actions import ToolsActionSet
77
from agentlab.backends.browser.base import BrowserBackend
@@ -15,20 +15,20 @@
1515
class MiniWobBenchmark(AbstractBenchmark):
1616
model_config = ConfigDict(arbitrary_types_allowed=True)
1717

18-
backend: BrowserBackend
18+
backend_cls: type[BrowserBackend]
1919
name: str = "miniwob"
2020
env_args_list: list[BrowserEnvArgs] = None # type: ignore
2121
dataset: list[MiniWobTask] = None # type: ignore
2222
is_multi_tab: bool = False
23-
high_level_action_set_args: ToolsActionSet = None
23+
high_level_action_set_args: ToolsActionSet = None # type: ignore
2424

2525
def model_post_init(self, __context: Any) -> None:
26-
self.name = f"miniwob_{self.backend.__class__.__name__.lower()}"
26+
self.name = f"miniwob_{self.backend_cls.__name__.lower()}"
2727
self.env_args_list = []
2828
if self.dataset is None:
2929
self.dataset = get_miniwob_tasks()
3030
for task in self.dataset:
3131
name = f"miniwob.{task.task_id}"
32-
env_args = BrowserEnvArgs(task_name=name, task=task, backend=self.backend)
32+
env_args = BrowserEnvArgs(task_name=name, task=task, backend_cls=self.backend_cls)
3333
self.env_args_list.append(env_args)
3434
logger.info(f"Loaded {len(self.env_args_list)} miniwob tasks")

0 commit comments

Comments
 (0)