a2ui-project / a2ui-project/a2ui
Unified all-typescript demo app using next.js that performs inference based on Catalog defined in typescript
- Langage dominant
- TypeScript
- Étoiles
- 16.4k
- Forks
- 1.3k
- Merge moyen
- 3 j 15 h
- PR mergées (30 j)
- 134
Description
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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Examinez l’exemple existant de Flutter Gen UI SDK (simple_chat) pour comprendre le catalogue et le modèle d’inférence. La démo a besoin d’une application Next.js avec un catalogue TypeScript/Zod, une interface de chat et une abstraction de modèle comme Genkit. Commencez par configurer un projet Next.js de base et intégrer Zod pour la définition du schéma, puis connectez un outil simple pour récupérer des données.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- next.js, typescript
- Domaine
- ai, developer-experience, full-stack
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100