Paper under double-blind review

The Agent-Native App: Building It (GUIOS) and Measuring It (LiveUIBench)

Anonymous Authors

Built on the executable application APIs of AppWorld

500workflow cases
9+2app domains & families
2,390reserved episodes
10,490deterministic assertions
soonresults (rerun in progress)
LiveUIBench overview: intention plus context must become an Agent-as-GUI workflow surface that survives an open-submit-revise-reopen episode sequence; chat answers, static mockups, and hidden memory each fail a different contract.
Overview. Given an end-user intention and context, a generator must produce an Agent-as-GUI workflow surface — a generated interface that an agent maintains as the user's visible, operable, recoverable task state — and the surface must survive a reserved open–submit–revise–reopen episode sequence. Each existing interaction form fails a different contract: a chat answer must be restated every day, a static mockup routes no control into an agent, and hidden memory leaves the user nothing to reopen.

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):

1 · open 2 · submit 3 · revise 4 · reopen

Episodes mirror how a real user returns to a workspace over days; the reopen episode runs after full teardown.

Five executable contracts

C1 · OPEN

Visible task state

Opening the surface renders task-relevant state and controls. Typical failure: blank shell, transcript answer.

C2 · SUBMIT / REVISE

Action routing

Events dispatch into the app-scoped agent workflow the surface declares. Typical failure: static controls, dead handlers.

C3 · SUBMIT / REVISE

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.

C4 · SUBMIT / REVISE

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.

C5 · REOPEN

Reopen persistence

After closing and reopening, the entity is still visible and editable. Typical failure: state reset, route loss.

SCORING

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 architecture: GUI evaluator for admission checks and behavior evaluator driving online episodes over the same generated surface.
Two evaluators, one action path. The GUI evaluator (/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.
Benchmark pipeline from case sampling through reserved episodes to layered reporting.
Benchmark pipeline. A generator receives only intention and context, emits a workflow-surface package, and is evaluated through reserved open–submit–revise–reopen episodes with per-layer assertions feeding FWR and layer-attributed diagnostics. Every reported number is generated from archived 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.

GUIOS runtime architecture: a whiteboard sentence passes a no-fallback multi-agent generation pipeline into a validated spec package rendered by one universal shell, with every control dispatching through the Agent Gateway into a grounded action loop that makes real AppWorld API calls.
The GUIOS runtime end to end. A whiteboard sentence enters a no-fallback multi-agent generation pipeline; the designed surface must pass spec validation or the runtime returns an explicit error — never a canned shell. The admitted spec package renders through one universal shell as a live app card (visible task state). Controls run no front-end logic: every interaction dispatches through the Agent Gateway (action routing). Each grounded action turn closes a quality loop — the executor makes real AppWorld API calls checked by a Write Verifier (real-API grounding), an independent Grounding Evaluator judges only the evidence, and returned entities are written wholesale into the visible result (grounded visible update). App-scoped state survives reopen (reopen persistence). An action wired to real permissions that makes zero real calls returns HTTP 502: honest failure, never fabrication.

Results

The 500-case suite is new, and every headline number will be compiled from archived report.json artifacts of the OpenRouter rerun — never transcribed by hand. Until those artifacts are archived, this section reports the measurement plan, not numbers.

What will be measured

Six scripted controls. Direct answer, static shell, route-only, hidden state, schema-first, and a multi-agent control — each constructed to pass some contracts and fail a targeted one, calibrating how far a single assertion-level score (APR) overstates workflow competence relative to FWR.

The GUIOS baseline on frontier models. GUIOS — the reference agent-native runtime and the benchmark's own baseline generator — runs end-to-end on multiple backing models behind one OpenRouter-compatible endpoint, over the 172-case public-test split; the sealed split is withheld for hosted evaluation.

A no-grounding ablation. The identical generator with the API-invoking executor disabled passes zero API and database assertions by construction, bounding exactly how much of the remaining score is surface behavior.

Contract localization. Per-contract pass rates (routing, API invocation, database change, grounded visibility, persistence) localize failures. The 319-case pilot found routing and persistence largely solved while only a small fraction of required API invocations actually happened — real-API grounding is expected to remain the dominant bottleneck, now stress-tested by the shared_world family where a second app must discover state the first really wrote.

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.

MirrorSafe folder-mirroring surface: a compare click reports the folders do not fully match MirrorSafe surface after reopen: filled fields and the grounded comparison result persist MirrorSafe surface after the final Mirror now click: both folders match
Deterministically passing session — a folder-mirroring surface completes compare → reopen → mirror: each click routes into the app-scoped file-system workflow, the grounded comparison result is visible, and the filled state survives a reopen. The trajectory judge instead fails this session for an extra revise-and-retry loop after the reopen — the probe's single judge–runner disagreement.
Review Later backlog surface: the first fill echoes a static string instead of any order entity Review Later surface: the workflow reports no API exists for the requested backlog items Review Later surface after reopen: all fields wiped; duplicate-review error from the real Amazon API
Failing session — a purchase-review backlog surface accepts fills and routes clicks, but the result block only echoes a static string; the workflow reports it has no API for the backlog items the intention names, and reopening wipes every filled field. The visible state is never grounded in real order data.
RentGrid Venmo surface: real per-tenant rent payment requests sent for $700 and $650 RentGrid surface: existing request 6098 amended to $690 via the real update_payment_request API Review Later surface: the click routes but the visible result echoes a static string
The grounding discriminator. Left/center: a Venmo rent-collection surface issues real per-tenant payment requests ($700 and $650 to the two named tenants), then amends the existing request 6098 to $690 via the real 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/}
}