Skip to content

[WIP] feat: add A2UI (Agent-to-UI) support for Gemini Enterprise#172

Open
luis5tb wants to merge 9 commits into
RHEcosystemAppEng:mainfrom
luis5tb:a2ui
Open

[WIP] feat: add A2UI (Agent-to-UI) support for Gemini Enterprise#172
luis5tb wants to merge 9 commits into
RHEcosystemAppEng:mainfrom
luis5tb:a2ui

Conversation

@luis5tb

@luis5tb luis5tb commented Apr 28, 2026

Copy link
Copy Markdown
Collaborator

Enable rich interactive UI rendering via the A2UI v0.8 protocol, feature-flagged by A2UI_ENABLED (default false). When enabled, the agent's system prompt is augmented with A2UI component schema and the Agent Card declares A2UI extension support, allowing Gemini Enterprise to render native UI widgets (tables, cards, buttons) from agent responses.

luis5tb and others added 6 commits July 6, 2026 09:16
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive testing guide covering dev mode with
SKIP_JWT_VALIDATION, ADK web UI, curl examples, order_id
behavior, and Podman deployment testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch from prompt-only augmentation to SendA2uiToClientToolset for
server-side A2UI JSON validation. Add domain-specific few-shot examples
for Red Hat Insights data (CVEs, advisor, inventory, remediations).
Add A2UI input modes to Agent Card for button/form action payloads.
Cache schema manager and fix docs MIME type inconsistencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update docs to reflect SendA2uiToClientToolset approach instead of
prompt augmentation, add missing examples.py to code layouts, fix
test coverage descriptions, correct TOOL_RESULT_MAX_CHARS default
from 51200 to 204800, and add Bearer token to X-Order-Id curl example.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Upgrade from A2UI v0.8 to v0.9 (createSurface/updateComponents format)
- Rewrite Insights examples in v0.9 format (no Table component in v0.9)
- Pin a2ui-agent-sdk>=0.2.0,<0.2.3 (0.2.3+ has NameError with ADK 2.2.0)
- Remove dead generate_a2ui_instruction() and unused instruction variable
- Update standalone UI renderer to support both v0.8 and v0.9 formats
- Fix logging: use exc_info=True instead of f-string exception formatting
- Update all docs, tests, and config for v0.9

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix Card/Button v0.9 children rendering (was using v0.8 singular
  child only, v0.9 arrays rendered as empty containers)
- Add $data binding resolution in resolveA2UIValue with actual data
  model lookup instead of placeholder text
- Fix createSurface rootId detection via tree analysis instead of
  hardcoding 'root'
- Thread dataModel through all render functions for proper binding
- Narrow except Exception to ImportError in A2UI toolset init
- Add version constraint comment for a2ui-agent-sdk in pyproject.toml
- Remove empty updateDataModel from examples 1, 2, 4 (keep example 3
  which uses data binding)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@luis5tb

luis5tb commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator Author

/retest

luis5tb and others added 2 commits July 8, 2026 10:19
- Add Example 5 (RHEL Lifecycle & Upcoming Changes) to a2ui/examples.py
  showing Planning service data rendered as A2UI cards with data bindings
- Add A2UI Rich Rendering section to response-formatting skill to guide
  the LLM to prefer A2UI components over markdown tables when the
  send_a2ui_json_to_client tool is available

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add eval 4 (a2ui-rendering) to evals.json testing A2UI preference
- Update skill-snapshot with pre-change baselines for all skills
- Add iteration-3 results: with_skill 18/18 (100%) vs old_skill 16/18
  (87.5%), no regressions on evals 1-3, A2UI eval confirms the
  response-formatting skill change works as intended

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant