a2ui-project / a2ui-project/a2ui

Unified all-typescript demo app using next.js that performs inference based on Catalog defined in typescript

Ouverte
#1,106 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
P2 sprint ready type: feature/enhancement
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.