a2ui-project / a2ui-project/a2ui

A2UI rendering for ADK agents on Vertex AI Agent Engine / Gemini Enterprise adkAgentDefinition registrations

Đang mở
#1,916 5 bình luận 0 reaction 1 người được giao Được @nan-yu nhận Xem trên GitHub
component: agent_sdk P2 status: first-line-handled type: feature/enhancement
Ngôn ngữ chính
TypeScript
Star
16.4k
Fork
1.3k
Merge trung bình
2 ngày 13 giờ
Pull request đã merge (30 ngày)
134

Mô tả

## Summary

There is currently no way for an ADK agent deployed on **Vertex AI Agent Engine** and registered in **Gemini Enterprise** via `adkAgentDefinition` (`provisionedReasoningEngine`) to render A2UI in the Gemini Enterprise UI. A2UI rendering in GE appears to work only on the `a2aAgentDefinition` path (agent card advertising the A2UI extension, UI payloads travelling as A2A DataParts into `QueryPart.uiJsonPayload`).

The roadmap lists ADK integration as "🚧 In Progress — still designing developer ergonomics". This is a request to make **Agent-Engine-hosted ADK agents surfaced through Gemini Enterprise** a first-class target of that design, not just local/self-served ADK agents.

## Context — production impact

We are a Gemini Enterprise production customer. We had A2UI working end to end in the GE chat panel (interactive investigation forms, live progress checklists) with agents served over Cloud Run A2A using `a2ui-agent-sdk`'s A2A executor integration and an agent card carrying the A2UI v0.8 extension.

We then migrated those agents to the recommended canonical shape — `AdkApp` on Vertex AI Agent Engine, registered in GE as `adkAgentDefinition` — and A2UI rendering silently stopped. Tracing it, the whole chain is A2A-specific and the ADK/Agent Engine path has no equivalent for any link:

1. **Agent side**: `a2ui-agent-sdk` hooks the A2A agent executor to convert tool-emitted A2UI payloads into A2A DataParts. `AdkApp`/`streamQuery` has no executor and no converter, so the A2UI JSON rides along as opaque tool-response content.
2. **Registration side**: `adkAgentDefinition` exposes a single field (`provisionedReasoningEngine.reasoningEngine`) — there is no way to advertise the A2UI extension or any UI capability.
3. **Transport side**: GE's rendering slot (`QueryPart.uiJsonPayload`, documented as A2UI-only as of Q1 2026) is populated from A2A DataParts; there is no documented mapping from Agent Engine `streamQuery` events.

So teams currently face a choice between the recommended ADK/Agent Engine serving shape (losing A2UI in GE) or legacy self-served A2A (keeping A2UI, losing the benefits of the managed path).

## Request

Any of the following would close the gap — listed in rough order of preference:

1. A supported mechanism for A2UI on the ADK/Agent Engine path end to end: an ADK-native way to emit A2UI (e.g. the Agents SDK writing A2UI parts into the event stream) plus GE mapping `streamQuery` events into `uiJsonPayload`.
2. Native A2A serving on Agent Engine reaching a usable state, so Agent-Engine-hosted agents can register in GE as `a2aAgentDefinition` with the A2UI extension — making the existing A2A-based A2UI support apply.
3. At minimum: documentation stating clearly that A2UI in Gemini Enterprise requires the A2A registration path, so teams migrating to `adkAgentDefinition` know the trade-off before they make it.

## Questions

- Is GE-surfaced ADK/Agent Engine rendering in scope for the in-progress ADK integration on the roadmap?
- Is there a preview / trusted-tester programme covering this? We are a production consumer of the capability with daily deployments and eval harnesses exercising the full GE wire path, and can turn feedback around quickly.

## Environment

- google-adk 2.3.0 (Python), a2ui-agent-sdk 0.2.1 (A2UI v0.8 envelopes)
- Vertex AI Agent Engine (Reasoning Engine, `AdkApp`), Gemini Enterprise EU
- GE A2UI-over-A2A registration: working (April 2026 preview); `adkAgentDefinition`: no rendering

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.