Abstract
Recurring personal work is stateful and accretes across days: a user should be able to return tomorrow to visible, editable task state an assistant created today. This calls for an agent-native app — an interactive application whose interface, state, and behavior are generated and maintained by an agent — yet each dominant interaction form fails it differently: chat is one-shot, a static mockup routes nowhere, hidden memory exposes no object to trust, and a GUI agent cannot create the missing workspace. We make the concept both buildable and falsifiable over one shared spine of five executable contracts: visible task state, action routing, real-API grounding, grounded visible update, and reopen persistence. GUIOS makes it buildable: a whiteboard runtime that turns one natural-language sentence into a validated spec package rendered as a live interactive app whose controls dispatch to a unified agent backend making real API calls. LiveUIBench makes it falsifiable: 500 cases over nine AppWorld single-app domains plus the multi_tool and shared_world families, with 2,390 episodes and 10,490 deterministic assertions checked against execution traces, API-call records, and AppWorld database diffs. The primary metric, Full Workflow Resolution (FWR), credits a case only when every contract holds in every episode. Results from the 500-case OpenRouter rerun are pending; the prior 319-case pilot found that routing and persistence are largely solved while real-API grounding is the dominant bottleneck.
The Task: Agent-Native Apps, Made Executable
On Monday, a user asks an assistant to plan outfits for a rainy week. On Tuesday, the forecast changes and the user revises the plan. On Wednesday, they reopen the plan before leaving home. A chat answer is one-shot. A generated mockup looks like a planner, but its buttons dispatch to nothing. Hidden agent memory retains the facts but gives the user no visible object to inspect, edit, or trust. A GUI agent can operate an existing app, but cannot create the missing workspace itself.
Agent-native app — an interactive application whose interface, state, and behavior are generated and maintained by an agent. Its evaluable form is the Agent-as-GUI workflow surface: a generated interface the agent maintains as the user's visible, operable, recoverable task state.
Given an intention x and context c, a system produces generate(x, c) → surface | failure. The evaluator never grades the serialized package directly — it renders the surface and executes a reserved episode sequence against it, through user-level actions only (fill, click, observe):
Episodes mirror how a real user returns to a workspace over days; the reopen episode runs after full teardown.
Five executable contracts
Visible task state
Opening the surface renders task-relevant state and controls. Typical failure: blank shell, transcript answer.
Action routing
Events dispatch into the app-scoped agent workflow the surface declares. Typical failure: static controls, dead handlers.
Real-API grounding
The named AppWorld API is invoked and the application database changes — naming an API is not calling it. Typical failure: API named but never called.
Grounded visible update
The concrete returned entity (a playlist title, an amount, a file path) becomes user-visible state. Typical failure: hidden backend memory, generic echo.
Reopen persistence
After closing and reopening, the entity is still visible and editable. Typical failure: state reset, route loss.
Full Workflow Resolution (FWR)
A case is resolved only if every contract holds in every episode — no partial credit at the case level. Assertion Pass Rate (APR) is reported only as a diagnostic.
Dataset
LiveUIBench targets recurring personal workflows where a persistent visible surface is more appropriate than a one-off answer: a weekly commute-playlist builder, a shared-expense settle-up tracker, a download-folder sorter. The 500 cases span nine single-app AppWorld domains (spotify, amazon, gmail, phone, venmo, splitwise, todoist, simple_note, file_system) plus two compositional families: multi_tool (one app spanning ≥3 services) and shared_world (two apps sharing one world, the second discovering state the first wrote). Splits are stratified within every domain and family: 147 dev / 172 public-test / 181 sealed-test; the sealed split is withheld for hosted evaluation.
Each case carries on average 21 deterministic assertions whose expected values are concrete case entities — 2,115 assert a named API invocation, 1,418 assert an application-database change, 2,805 assert a concrete entity in visible state. Intentions and assertions were authored by multi-agent pipelines and adversarially reviewed so every grounding value is a concrete entity, never a generic word. Two live-world soundness audits then repaired 187 and 61 cases via a tracked override layer — the second asking whether a correct app could still fail (underivable expected values, widget-prescriptive wording) — growing the fixture library of seedable world state and quarantining unsatisfiable cases; the audited suite then grew to the 500-case v0.2.0 release with the multi_tool and shared_world compositional families.
{
"id": "spotify-weekly-commute-playlist__submit",
"kind": "submit",
"userMessage": "Vibe is upbeat indie, seed artists Phoenix and
Two Door Cinema Club, about 20 songs for Monday Commute.",
"assertions": [
{ "type": "route_enters_orchestrator", "value": true },
{ "type": "appworld_api_called", "value": "create_playlist" },
{ "type": "appworld_db_changed", "value": "spotify" },
{ "type": "visible_result_grounded", "value": "Monday Commute" }
]
}
Illustrative episode schema (not a sealed-test case). Because AppWorld apps are real executable services with real databases, “the workflow created the Monday Commute playlist” is a checkable fact, not a rubric judgment.
Evaluation Harness
All systems are evaluated through a single adapter boundary: the harness supplies intention and context and receives a package or an explicit failure. The harness never repairs missing routes, missing state, or unrenderable surfaces — a broken package fails exactly as it would for a user. Routing is read from the runtime's agent trace; API invocation from per-action tool-call records; database change from AppWorld snapshots diffed before and after each call; persistence from a fresh state query after teardown.
/evaluator/gui) performs deterministic admission-quality checks on the package and its rendered A2UI model; the behavior evaluator (/evaluator/run) drives long-horizon exploratory sessions one user-level action at a time, ending in an LLM judgment over the full trajectory. All reported scores come from the deterministic runner; on a stratified 15-case probe the two evaluators agreed on 14 of 15 cases — the single disagreement was the behavior evaluator catching a spurious deterministic flake.
report.json / run-summary.json artifacts by checked-in scripts.The GUIOS Baseline
To show the agent-native app is buildable — and to give the benchmark its strongest available baseline — we build GUIOS, a whiteboard runtime engineered contract-by-contract to satisfy the same five-contract spine the benchmark checks. GUIOS enters the benchmark through the same adapter boundary as any other generator: the system we build is the system we then try to refute, so any contract that still fails under it marks a genuine capability frontier rather than a weak baseline.
Results
Every headline number below is compiled from archived report.json artifacts by checked-in scripts (write-frontier-public-rows.cjs, write-multivendor-500.cjs, write-oneshot-500.cjs), never transcribed by hand. Model rows are single runs; the two GPT-5.6-sol single-attempt runs (APR 0.61 vs 0.58) are the only run-to-run band measured so far.
What was measured
Frontier baselines on the public split (172 cases, default protocol). The GUIOS baseline on GPT-5.6-sol resolves 21/172 workflows (FWR 0.12) at APR 0.70; on GPT-5.6-luna 18/172 (FWR 0.10, APR 0.61). Routing is near-perfect (0.98) while grounded visible update is the weakest layer (0.54): the workflow often makes the real call yet fails to surface the returned entity. multi_tool resolves 0/73 and shared_world 1/6 for both models.
Eleven-vendor sweep over all 500 cases (default protocol). Two tiers separate cleanly: Grok 4.5 leads at FWR 0.15 / APR 0.73; four models resolve at least 37 cases, the other seven at most 28. Generation reliability decides the tier, and the per-contract ordering (routing and persistence highest, grounded visibility lowest) is conserved across vendors.
Single-attempt sweep (one designer validation attempt instead of three). Removing retries empties the middle of the field: Grok 4.6 resolves 98/500 (FWR 0.20, APR 0.77) with 2 generation failures, while 5 of nine runs resolve under 3% because they cannot emit a valid surface on the first try. The stage of first failure (orchestrator JSON, slot synthesis, designer validation) orders the field.
Registered controls and ablation. Six scripted controls (direct answer, static shell, route-only, hidden state, schema-first, multi-agent) and a no-grounding ablation are pre-registered to calibrate how far APR overstates workflow competence; their artifacts are pending and marked as such in the paper.
Pilot observations (319-case suite, archived artifacts) are described qualitatively in the paper's case-study appendix; they are not comparable to the 500-case suite and are not shown here as current results.
Behavior Trajectories
The online behavior evaluator archives per-step snapshots of the rendered surface, which the harness renders into trajectory frames — the user's-side view of the same contracts the deterministic assertions check. The frames below come from a five-session probe collected with GPT-5.5 (openai/gpt-5.5 via OpenRouter) driving the full generate–act–reopen loop; the deterministic runner and the trajectory judge agree on 4 of 5 verdicts.
update_payment_request API — grounded transaction entities reach the visible result block, though the session still fails overall (an extra incorrect $50 late-fee request; a lossy reopen). Right: the review-backlog surface's click enters the workflow but produces no real API calls (the write gates rejected every attempt), and the visible result degenerates to echoing a static string — no grounded entity ever reaches the surface. Same generated-app machinery; real, visible API grounding is the discriminator.BibTeX
@article{liveuibench2026,
title = {LiveUIBench: A Behavioral Benchmark for
Agent-as-GUI Workflow Surfaces},
author = {Anonymous Authors},
note = {Paper under double-blind review},
year = {2026},
url = {https://liveuibench.pages.dev/}
}