ABRA: Agent-Bound UI for Human-Agent Communication beyond Chat with Reusable Views
Organizations: Megagon Labs
Abstract
Agents can create rich representations, yet these representations are rarely used as a medium for expressing user intent. We present Agent-Bound UI, an interaction model that separates reusable interaction structures from task-specific meanings. Agents bind task-specific meanings to interactions in reusable views and publish the resulting bindings as shared state, enabling humans and agents to understand and act on shared surfaces whose meanings vary across tasks. We implement ABRA, a framework-agnostic prototype of Agent-Bound UI, in which users and agents collaborate through chat and shared interactive canvases. We demonstrate ABRA through a representative use case and evaluate four LLM-backed agents on canvas authoring, owner-side consequence resolution, and cross-agent invocation. The code and demo video are available at https://github.com/megagonlabs/abra.
Figures & tables
| View | Elements | Actions with Local Effects (view-executed) | Actions with Consequences (agent-resolved) |
|---|---|---|---|
| graph | node, edge | highlight; select; show detail; reposition / pan / zoom / fit; layout | add node; add edge; edit node; delete selection |
| table | row, column, cell | highlight; select; block-select; reorder; sort; filter | add row; add column; edit cell; edit column; delete selection; clear |
| text | paragraph, line | highlight; select; collapse / expand; find | add line; edit line; delete selection |
| display | item | highlight; focus; change layout; fit | none (read-only) |
| Criterion | Question | Scale |
| create_canvas | ||
| view_selection | Did the run build the view(s) the case expects? | recall 0–1, exact |
| referent_coverage | Are the task’s information-unit kinds present at all (placement aside)? | covered/total |
| element_binding | Does each element kind stand for the referent kind the task intends? | pass/na |
| spec_format | Is the spec structurally whole? (the home for any structural anomaly) | pass |
| element_format | Are ids and paths written in the contract’s form? | pass/na |