Repository navigation
Add browser REPL and computer toolsets, attempts, arm and suite args, per-trial proxies and VM setup - #9
Open
rgarcia wants to merge 2 commits into
Open
Add browser REPL and computer toolsets, attempts, arm and suite args, per-trial proxies and VM setup#9rgarcia wants to merge 2 commits into
rgarcia wants to merge 2 commits into
Conversation
… site-config proxies
This was referenced Oct 31, 2026
…rial, and create GPU browsers without a memory request
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Generic harness changes for benchmarks that drive the browser through Kernel MCP's browser REPL or computer controls, per-trial proxies for
site-config, and per-trial browser VM setup that configurators can request. No new benchmark here; the retail-cart benchmark is #10, stacked on this PR.Arm and suite args: arms take
toolset_args(passed to the toolset) andagent_kwargs(passed to the Harbor agent); benchmarks takesuite_args.bench prepare/runtake--suite-argand--toolset-argoverrides, also as workflow inputs.Attempts:
bench run --attempts Nruns each task N times per arm (Harbor--n-attempts), also as a workflow input.Browser REPL and computer controls:
kernel-mcp-localtakestoolsets, e.g.["repl"]forbrowser_replinstead ofexecute_playwright_code, or["repl", "computer"]to add OS-levelcomputer_action. Tool calls are logged at the server (mcp-call-log), andkernel-mcp-verifyreads that log, so it works whatever agent harness wraps the calls.Per-trial proxies in
site-config: the configurator used to create one proxy per distinct recipe and reuse it by name. An ISP proxy is a single static IP, so every trial of every task with that recipe left from the same IP. The configurator now emitsproxy_create(aPOST /proxiesbody);KernelTaskEnvironmentcreates a uniquely named proxy before each trial's browser and deletes it after, andbench rundeletes anybench-<run_id>-proxies a crashed trial left behind.Proxy failures are identifiable: a trial whose proxy cannot be created fails with
ProxyCreationError. The report now lists infrastructure failures by arm, exception type and task, and Braintrust metadata carrieserrorType.Per-trial VM setup: a configurator's
browseroutput may includechromium_env(KERNEL_*Chromium launcher variables, or a list of sets with one picked per trial) andvm_setup(shell commands run as root in the browser's VM).KernelTaskEnvironmentapplies both right after creating the browser and before the first page load: it restarts Chromium through supervisord with the variables and checks the page reports the requested macOS user agent or WebGL renderer. A trial where either fails fails withVmSetupError.GPU browsers: Harbor requests
memoryin container mode, which the API rejects withgpu=true, so it's dropped for GPU browsers.Testing
ruff check,ruff format --check,pytest(19 passed);bun test(21 passed),tsc --noEmit,prettier --checkbench prepare kernel-mcp-clawbenchfor the static arms, as in CILive
site-configrun: two trials on the same ISP recipe got separate proxies with different egress IPs, both deleted at teardown, none left after the run. Trials whose proxy failed to create showed up asProxyCreationErrorin the infrastructure failures table.Live: Chromium restarted with
KERNEL_MAC_PERSONA=1and with aKERNEL_WEBGL_RENDERERoverride on GPU browsers, each confirmed from the page;vm_setupcommands run as root on a live browser; both used across the 10-attempt retail-cart runs in Add retail-cart benchmark: guest add-to-cart outcomes on bot-protected sites #10.