AgentLab
A BrowserGym-based framework for building, running, evaluating, and reproducing web-agent experiments.
- Source repo
- ServiceNow/AgentLab
- Stars
- ★ 638
- Last updated
- 2mo ago
- License
- NOASSERTION
- Primary language
- Python
- FA score
- 53/100 · Major gaps
At a glance
- Works with
- Universal · cross-platformOpenAI API
- You'll need
- Typical use
- A web-agent researcher comparing several AgentArgs configurations and seeds on MiniWoB can run the matrix as Studies and consolidate the outcomes.
- Main limitation
- It is explicitly not a consumer product; adopters must prepare benchmark environments, model credentials, and experiment infrastructure themselves.
- Source review
- 53/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
AgentLab is a research framework for developing and evaluating web agents across benchmarks supported by BrowserGym. Its Study and make_study interfaces organize runs on benchmarks including MiniWoB, WebArena, WorkArena, VisualWebArena, AssistantBench, and OSWorld. Ray can execute large experiment sets in parallel, while the unified LLM API supports OpenAI, Azure OpenAI, OpenRouter, and self-hosted TGI paths. Results are available through ExpResult, load_result_df, and the AgentXray interface for traces, screenshots, actions, and summaries. The project explicitly positions itself as infrastructure for web-agent research rather than a consumer product.
A developer prepares the selected benchmark, creates a Study with make_study(benchmark=..., agent_args=..., comment=...), and runs it with study.run(n_jobs=...). Each agent-on-task execution is a job; the Ray backend can terminate jobs that exceed a configured timeout and supports large parallel runs. Existing studies can be reopened with Study.load(), unfinished or errored tasks can be located with find_incomplete(include_errors=True), and then rerun. For analysis, inspect_results.load_result_df() gathers experiment summaries into a dataframe, while bgym.ExpResult exposes detailed screenshots and steps_info actions. The agentlab-xray command opens a Gradio interface over experiments in AGENTLAB_EXP_ROOT, allowing users to select an experiment, agent, task, and seed to inspect a trace.
- A web-agent researcher comparing several AgentArgs configurations and seeds on MiniWoB can run the matrix as Studies and consolidate the outcomes.
- An evaluation team running WebArena or VisualWebArena can use the Ray backend for parallel work while accounting for task dependencies and timed-out jobs.
- A developer implementing a BrowserGym agent can use MostBasicAgent as a reference and implement the AgentArgs API plus the extended bgym.AbstractAgentArgs.
- A researcher investigating a failed web task can use AgentXray to inspect the selected task and seed through screenshots, actions, and profiling steps.
- A team reproducing a reported experiment can retain benchmark, package, and commit information in Study and use ReproducibilityAgent to rerun actions on the same task seeds.
How do you install or deploy this agent?
Python 3.11 or 3.12 is required.
pip install agentlab
playwright installPrepare the chosen benchmark according to its setup instructions. For OpenAI-backed models, set credentials; OpenRouter or Azure OpenAI variables can be configured when applicable:
export AGENTLAB_EXP_ROOT=<experiment-results-directory>
export OPENAI_API_KEY=<your-openai-api-key>How do you use this agent?
With default OpenAI credentials configured, start the web assistant with:
agentlab-assistant --start_url https://www.google.comRun a first experiment:
from agentlab.agents.generic_agent import AGENT_4o_MINI
from agentlab.experiments.study import make_study
study = make_study(
benchmark="miniwob",
agent_args=[AGENT_4o_MINI],
comment="My first study",
)
study.run(n_jobs=5)Inspect completed or ongoing experiments with:
agentlab-xrayWhat are this agent's strengths and limitations?
- It puts multiple BrowserGym-supported web benchmarks into one Study workflow instead of requiring separate experiment organization and result structures per benchmark.
- Its Ray backend includes timeout termination for stuck jobs, which is useful for research matrices with many tasks, seeds, or ablations.
- It provides one documented LLM API path for OpenAI, Azure OpenAI, OpenRouter, and self-hosted TGI.
- It combines dataframe-level summaries and detailed ExpResult access with AgentXray's interactive trace inspection.
- Study records benchmark, package, and commit information, and ReproducibilityAgent supports examining rerun differences.
- It is explicitly not a consumer product; adopters must prepare benchmark environments, model credentials, and experiment infrastructure themselves.
- Some benchmarks require self-hosted services, Docker, static files, or the live web, creating additional environment and operational overhead.
- WebArena and VisualWebArena tasks can affect instance state; instances are reset before evaluation, and cross-instance evaluations are not currently supported.
- Model API changes, live websites, regional differences, and stochasticity can affect reproducibility; temperature 0 only reduces most stochasticity.
- AgentXray depends on Gradio, and the documentation notes possible display issues that may require refreshing and reselecting the experiment.
How does this agent compare with similar options?
BrowserGym is the benchmark ecosystem AgentLab builds on, not a separate substitute: BrowserGym supplies supported benchmarks, while AgentLab handles agent configuration, experiment execution, parallelism, result analysis, and reproducibility records.
Key facts side by side with the most closely related agents.
| Agent | Source review | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|
| AgentLab This agent | 53 · Major gaps | ★ 638 | 2mo ago | Python | OpenAI API |
| BrowserGym Web-Agent Lab | 54 · Major gaps | ★ 1.4k | 1d ago | Python | OpenAI API |
| Open Operator Evals | 29 · Major gaps | ★ 47 | 1y ago | Python | — |
| CamoFox Browser Server | 72 · Some gaps | ★ 396 | 1mo ago | JavaScript | Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: framework designed for research, explicitly warns not a consumer product; uses environment variables for API keys, no hardcoding; provides experiment replay and result analysis, but no user confirmation mechanism or clear sensitive data handling. Deductions: lack of user confirmation, insufficient sensitive data handling documentation, dependency security not explicitly audited.
Evidence shows: unit tests cover key paths, error handling with retry mechanisms, but no detailed documentation of failure messages. Deduction: insufficient failure message documentation.
Evidence shows: targets researchers, supports multiple benchmarks, provides various configuration options, but trigger precision (e.g., task dependency handling) is limited. Deduction: insufficient trigger precision documentation.
Evidence shows: README well-structured, installation instructions detailed, naming stable, examples and FAQ present, known limitations mentioned, license clear, but version changelog missing. Deduction: missing version changelog.
Evidence shows: outputs loadable and analyzable, visualization tools provided, high marginal value (accelerates research), cost-benefit reasonable (open source free). Deduction: none significant.
Evidence shows: README cites papers and benchmarks, but no detailed experiment reproduction steps, limited cross-source verification. Deductions: insufficient cross-source verification, unclear separation of facts and inferences.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Framework explicitly warns it is not a consumer product; use with caution.
- API keys managed via environment variables; ensure environment security.
- Many dependencies; keep updated for security.