Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,15 @@ GMA_CLIENT_ID=your_gma_client_id
GMA_CLIENT_SECRET=your_gma_client_secret
# GMA_API_BASE_URL=https://sso.redhat.com/auth/realms/redhat-external/apis/beta/acs/v1/

# -----------------------------------------------------------------------------
# A2UI (Agent-to-UI) Configuration
# -----------------------------------------------------------------------------
# Enable A2UI rich UI rendering for Gemini Enterprise
# When enabled, the agent generates A2UI JSON components alongside text responses.
# Gemini Enterprise renders these as native UI widgets (tables, cards, forms).
# Targets A2UI v0.9 (Gemini Enterprise supported version).
A2UI_ENABLED=false

# -----------------------------------------------------------------------------
# Red Hat Lightspeed MCP Server Configuration
# -----------------------------------------------------------------------------
Expand Down
5 changes: 5 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,11 @@ Agent behavioral instructions use ADK's progressive-disclosure Skills system ins

CORS → body size limits → security headers → rate limiting (60 req/min, 1000 req/hour) → JWT auth. See `api/app.py` for ordering and configuration.

### A2UI (Agent-to-UI)

Optional rich UI rendering for Gemini Enterprise, controlled by `A2UI_ENABLED` (default `false`).
When enabled, the agent adds a `SendA2uiToClientToolset` (from `a2ui-agent-sdk`) with the A2UI Basic Catalog v0.9 schema and domain-specific Insights examples. The Agent Card declares the A2UI extension and adds `application/json+a2ui` to input and output modes. Code is in `a2ui/prompt.py` (schema manager, catalog access) and `a2ui/examples.py` (Insights-specific A2UI examples).

## Configuration

All configuration is via environment variables, managed through Pydantic settings in `config/settings.py`. See `.env.example` for the complete list (30+ vars) and `docs/configuration.md` for detailed documentation.
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ This agent provides AI-powered access to Red Hat Insights services, enabling nat

- Built with Google ADK and Gemini 2.5 Flash
- A2A protocol support with SSE streaming for multi-agent ecosystems
- A2UI protocol support for rich interactive UI rendering in Gemini Enterprise
- OAuth 2.0 authentication via Red Hat SSO
- Dynamic Client Registration (DCR) with Red Hat SSO via GMA SSO API
- Google Cloud Marketplace integration (Gemini Enterprise)
Expand Down Expand Up @@ -251,6 +252,7 @@ lightspeed_agent/
│ └── lightspeed-agent-secret.yaml
└── src/
└── lightspeed_agent/
├── a2ui/ # A2UI integration (rich UI for Gemini Enterprise)
├── api/ # A2A endpoints and AgentCard
│ └── a2a/ # A2A protocol setup
├── auth/ # OAuth 2.0 authentication
Expand All @@ -274,6 +276,7 @@ lightspeed_agent/
Comprehensive documentation is available in the [docs/](docs/) directory:

- [Architecture Overview](docs/architecture.md) - Two-service architecture and data flows
- [A2UI Integration](docs/a2ui.md) - Rich UI rendering for Gemini Enterprise
- [Authentication](docs/authentication.md) - OAuth 2.0, DCR, JWT validation, MCP authentication
- [MCP Server Integration](docs/mcp-integration.md) - Red Hat Lightspeed MCP server setup
- [Authentication Guide](docs/authentication.md) - OAuth 2.0 and JWT validation
Expand Down
12 changes: 12 additions & 0 deletions adk-skills-workspace/evals/evals.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@
{"name": "offers_alternative", "description": "Offers to help with CVE analysis through its normal capabilities"},
{"name": "brief_response", "description": "Response is concise and professional — not overly apologetic or lengthy"}
]
},
{
"id": 4,
"prompt": "You are the Red Hat Lightspeed Agent. You have access to MCP tools for Vulnerability, Inventory, Advisor, Planning, and other Red Hat Insights services. You also have the `send_a2ui_json_to_client` tool available, which renders rich UI components for the user using A2UI v0.9 (Card, List, Column, Row, Text, Button).\n\nA user asks:\n\n\"Show me my top 10 critical CVEs sorted by CVSS score.\"\n\nPlan and describe step-by-step what tool calls you would make and in what order. Show the exact tool names and arguments you would use. Explain how you would present the results to the user, and specifically whether you would use the A2UI tool or markdown formatting.",
"expected_output": "Should use vulnerability__get_cves with severity=Critical, sort=-cvss_score, limit=10 to fetch the data. Should then plan to render the results using the send_a2ui_json_to_client tool with A2UI components (List of Cards with CVE details) instead of a markdown table. Should keep any explanatory text as plain text alongside the A2UI rendering.",
"files": [],
"assertions": [
{"name": "prefers_a2ui_over_markdown", "description": "Plans to use send_a2ui_json_to_client tool to render results as A2UI components instead of a markdown table"},
{"name": "correct_vulnerability_tool", "description": "Uses vulnerability__get_cves with appropriate filter and sort parameters"},
{"name": "mentions_a2ui_components", "description": "References specific A2UI components (Card, List, Text, Column, Row, or similar) when describing the rendering"},
{"name": "plain_text_for_explanation", "description": "Keeps explanatory or conversational text as plain text, not inside A2UI components"}
]
}
]
}
Loading
Loading