a2ui-project / a2ui-project/a2ui
Unified all-typescript demo app using next.js that performs inference based on Catalog defined in typescript
- Lingua principale
- TypeScript
- Stelle
- 16.4k
- Fork
- 1.3k
- Merge medio
- 3g 15h
- PR unite (30g)
- 134
Descrizione
Right now, we only support inference via Python, and rendering in web and Flutter. This is good for an application which happens to use this combination of technologies, but it's kind of tricky to get started for a small web application, because you need to hook up the API (potentially A2A) between server and client and manage surfaces etc correctly. Looking at our existing demo apps, it's quite a bit of code to do this.
In the Flutter Gen UI SDK, we made life easy for developers by handling inference on the client side, which meant that developers can programmatically define a catalog and then use that same object for inference and rendering, avoiding the need for them to think about JSON etc at all, even though it is used under the hood. E.g. see https://github.com/flutter/genui/blob/main/examples/simple_chat/lib/main.dart
Others in the industry are making life *way* easier for developers, e.g. see
https://json-render.dev/docs/generation-modes
This is important, to lower the barriers to entry for people trying out this system. If they see it can work and feel good in a simple, self-contained app, they might then consider expanding to a multi-agent system which requires A2A, MCP, A2UI wire protocol etc. But first, we need people to see it can feel good as a product. We have had some success with this with the Flutter Gen UI SDK, but then struggled with the inverse - use cases where people wanted to have a separate backend etc.
## Proposed demo features
Let's build a demo with these features:
- Supports chat out of the box. Conversation history managed effectively.
- Unified JS codebase for client and agent server
- Minimal boilerplate
- Custom catalog, defined in Zod in TS. No JSON files checked in.
- Uses some common model abstraction layer to call the actual model, maybe Genkit
- No A2A or MCP
- Example tool connected to the agent, to fetch domain-specific data
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Esamina l'esempio esistente di Flutter Gen UI SDK (simple_chat) per comprendere il catalogo e il pattern di inferenza. La demo richiede un'app Next.js con un catalogo TypeScript/Zod, una UI di chat e un'astrazione del modello come Genkit. Inizia configurando un progetto Next.js di base e integrando Zod per la definizione dello schema, quindi collega un semplice strumento per recuperare dati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- next.js, typescript
- Ambito
- ai, developer-experience, full-stack
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100