# Goa and Goa-AI

Goa è un framework Go che offre agli agenti di sviluppo meno codice da scrivere e un unico contratto su cui ragionare. Genera server HTTP, gRPC e JSON-RPC, client tipizzati, validazione e specifiche API. Crea agenti AI, server MCP e tool registry con Goa-AI.

GitHub: [Goa](https://github.com/goadesign/goa) · [Goa-AI](https://github.com/goadesign/goa-ai)

Source: https://goa.design/it/

## Meno lavoro per il tuo agente di sviluppo.

### Genera il codice. Risparmia quei token.

Ogni trasporto, client e schema generato è codice che il modello non deve comporre. Dedica quel lavoro alla logica di dominio, a test utili e a tool migliori.

### Dai al contesto una fonte unica.

Tipi, vincoli, descrizioni e metodi vivono nel design. Una struttura generata coerente dà all’agente una mappa del codice e un punto chiaro in cui apportare modifiche.

### Trasforma le incoerenze in errori di compilazione.

Modifica il contratto e rigenera insieme tutte le sue rappresentazioni. Go segnala chiamanti e implementazioni incompatibili, dando all’agente indicazioni concrete per la modifica successiva.

## Goa

Definisci il servizio una volta. Genera insieme API, client, validazione e specifiche. Implementa la logica di business dietro un’interfaccia Go tipizzata.

HTTP, gRPC, JSON-RPC. Server, client tipizzati e client CLI dallo stesso design del servizio.

Tipi Go, validazione, codifica, mapping degli errori, OpenAPI e Protocol Buffers.

[Crea un servizio](https://goa.design/it/docs/1-goa/quickstart/)

## Goa-AI

Progetta tool e risultati. Genera i contratti. Usa il runtime per coordinare chiamate ai modelli, esecuzione dei tool, input umano e workflow durevoli.

Schemi, codec, binding ai servizi e helper per le completion generati. Agenti come tool, esecuzioni figlie collegate, suite di valutazione tipizzate e hook per gli scenari.

Eventi tipizzati, conferme, cancellazione e policy. Esecuzione locale per iniziare; Temporal per la durabilità.

[Crea un agente IA](https://goa.design/it/docs/2-goa-ai/quickstart/)

## Crea server MCP dai tuoi servizi.

Esponi i metodi dei servizi come tool MCP. Pubblica risorse e template di prompt. Goa-AI genera gestione del protocollo e adapter: MCP diventa un’altra interfaccia della tua applicazione. Gli agenti possono anche usare tool MCP esterni.

[Crea un server MCP](https://goa.design/it/docs/2-goa-ai/mcp-integration/)

## Ospita un registry per i tuoi tool.

Esegui il server registry incluso come catalogo condiviso e gateway di invocazione. Pubblica toolset, scopri gli schemi e instrada le chiamate verso provider sani. Agenti e provider possono essere distribuiti e scalati indipendentemente. Basato su Redis e Pulse.

[Ospita un tool registry](https://goa.design/it/docs/2-goa-ai/registry/)

## Insegna al tuo agente il metodo Goa.

Installa la skill Goa service designer nel progetto. Guida il tuo agente attraverso design, generazione, implementazione e verifica, indicando quali file modificare e quali rigenerare.

```bash
npx skills add goadesign/goa --skill goa-service-designer
```

Esegui nel progetto. Richiede Node.js e npm.

[Installazione e workflow](https://goa.design/it/docs/ai-development/#install-the-skill)

## Perché usare Goa se un agente può scrivere il codice?

Un agente scrive codice per inferenza; Goa deriva il codice dei contratti dal design. Server, client, codec e schemi generati sono codice che il modello non deve scrivere separatamente. Il design concentra il contesto, la struttura resta coerente e il compilatore segnala le implementazioni incompatibili dopo una modifica. L’agente scrive comunque logica di business e test.

## Qual è la differenza tra Goa e Goa-AI?

Goa progetta e genera API di servizi Go: HTTP, gRPC, JSON-RPC, client, validazione e specifiche. Goa-AI estende lo stesso DSL e generatore con tool tipizzati, agenti AI, completion strutturate, valutazioni e server MCP. Fornisce anche un runtime per agenti e un server tool registry da ospitare. Puoi iniziare con entrambi; Goa-AI non richiede un servizio Goa distribuito separatamente.

## Posso usare Goa-AI solo per creare un server MCP?

Sì. Aggiungi dichiarazioni MCP a un servizio Goa per generare un server che espone tool, risorse e template di prompt. Implementa i metodi del servizio dietro gli adapter generati. Non serve eseguire un agente Goa-AI per offrire MCP.

## In che modo la generazione riduce il lavoro dell’LLM?

Goa genera il codice di trasporto e dei contratti senza far comporre quei file a un LLM. Elimina così una categoria di lavoro sui token di output. Il risparmio totale dipende da attività, modello, contesto e iterazioni: confronta modifiche complete, inclusi test e revisione, per misurare l’effetto nel progetto.

