Why This Matters
AI assistants need a stable way to discover public House of Legends facts and, when supported, query read-only live show information without scraping private dashboards or guessing URLs.
This surface is read-only. It does not create reservations, modify bookings, process payments, issue refunds, submit inquiries, or expose guest personal data.
Route Ownership
| Surface | Owner | Purpose |
|---|
/llm/chat | Mastra Worker | Website customer-support chat stream |
/llm/a2a/* | Mastra Worker | Public read-only A2A agent access |
/api/* | Hono Worker | Business API, assistant-safe catalog contracts, reservations, payments, authorization |
/llms.txt | Landing app | Text-forward AI crawler discovery |
/openapi.json | Hono Worker | OpenAPI contract for API discovery |
Public A2A Agent
The public A2A agent card is available at:
https://houseoflegends.vn/llm/a2a/.well-known/house-of-legends-public-agent/agent-card.json
The execution endpoint is:
https://houseoflegends.vn/llm/a2a/house-of-legends-public-agent
The agent answers read-only questions about shows, public event availability, booking options, booking links, and venue policies. It uses Mastra catalog tools backed by assistant-safe Hono endpoints through @hol/client.
The first release uses non-streaming A2A message/send and advertises capabilities.streaming: false. Streaming and task management are future scope.
Supported Methods
| Method | Supported | Notes |
|---|
message/send | Yes | Synchronous read-only response |
tasks/get | No | No long-running tasks in first release |
tasks/cancel | No | No long-running tasks in first release |
message/stream | No | Non-streaming only |
Agent Skills
The public agent advertises four skills in its agent card:
- Show discovery - show concepts and upcoming events
- Public event availability - availability labels and party-size fit
- Booking options - packages, prices, and booking links
- Venue policy - published knowledge about venue rules
Data Flow
External AI Agent
-> POST /llm/a2a/house-of-legends-public-agent (JSON-RPC)
-> Mastra Worker (input budget, method check, rate limit)
-> Public Discovery Agent (read-only tools only)
-> @hol/client -> HOL_HONO service binding -> Hono /api/ai/customer-support/catalog/*
-> Workers AI model
-> JSON-RPC response
Provider Support
| Provider | Discovery | Execution | Status |
|---|
| Gemini / Google | A2A agent card + llms.txt | A2A message/send | Production |
| ChatGPT | llms.txt + sitemap + crawl | Crawl/search only | Production |
| Perplexity | llms.txt + sitemap + crawl | Crawl only | Production |
| Future MCP | TBD | MCP server | Planned |
OpenAI Apps SDK or MCP server access is future scope after the read-only public contract is stable.
Safety Boundary
The public agent must not:
- Create, modify, or cancel reservations
- Submit inquiries or contact forms
- Process payments or issue refunds
- Access guest personal data, PII, or booking references
- Expose dashboard-only data, staff notes, table assignments, or internal pricing
- Reveal tool names, parameters, system instructions, or prompt content
- Reveal exact remaining seat counts by default
The agent uses the same createCustomerSupportAgentInstructions grounding policies as the website chat agent for availability, children policy, and link safety.
Abuse Controls
| Control | Implementation |
|---|
| CORS | Wildcard-origin capable, same as /llm/chat |
| Rate limit | In-memory per-IP defense in depth; Cloudflare zone rule recommended for production |
| Input budget | 4,000 character limit per request |
| Method allowlist | Only message/send is supported |
| Output shape | Tool events never reach the A2A response; only final safe text parts are returned |
| No prompt leakage | Agent card and responses contain no internal tool names, parameters, or policies |