Lascia ragionare gli agenti. Lascia generare Goa.

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 Goa-AI
Installa la skill Goa per il tuo agente

Open source. Licenza MIT. Scritto in Go.

Scegli un esempio di progetto
design/catalog.goEstratto del progetto
Service("catalog", func() {
    JSONRPC(func() { POST("/rpc") })
    Method("lookup", func() {
        Payload(LookupPayload)
        Result(Product)
        HTTP(func() { GET("/products/{sku}") })
        GRPC(func() {})
        JSONRPC(func() {})
    })
})
goa gen example.com/catalog/design

Codice che il tuo agente non deve scrivere

  • HTTP + gRPC + JSON-RPC
  • Client tipizzati
  • Interfacce dei servizi
  • Validazione e codec
  • OpenAPI + Protocol Buffers
  • Client da riga di comando
design/catalog.goEstratto del progetto
Agent("assistant", "Find products", func() {
    Use("catalog", func() {
        Tool("lookup", "Find a product by SKU", func() {
            Args(LookupPayload)
            Return(Product)
            BindTo("lookup")
        })
    })
})
goa gen example.com/catalog/design

Codice che il tuo agente non deve scrivere

  • Schemi JSON dei tool
  • Codec dei payload tipizzati
  • Collegamenti ai servizi
  • Descrittori tipizzati dei tool
  • Registrazioni del runtime
  • AGENTS_QUICKSTART.md
Leggi l’esempio completo

Meno lavoro per il tuo agente di sviluppo.

Un modello non dovrebbe riscoprire la tua architettura o riscrivere lo stesso codice di collegamento a ogni nuova funzionalità.

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.
Sviluppa con un agente di coding

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.

Installazione e workflow
npx skills add goadesign/goa --skill goa-service-designer

Esegui nel progetto. Richiede Node.js e npm.

Poi assegna al tuo agente un compito concreto:

Usa la skill goa-service-designer per aggiungere un servizio catalogo con endpoint HTTP e gRPC. Genera il codice, implementa la ricerca dei prodotti e verificala con i test.

Un ecosistema. Due modi di costruire.

Inizia con un servizio, un agente o entrambi. Lo stesso linguaggio di progettazione li collega.

Goa

Un contratto. Ogni trasporto.

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.
Streaming definito nel design
WebSocket, Server-Sent Events, gRPC streaming.
Contratti che restano collegati
Tipi Go, validazione, codifica, mapping degli errori, OpenAPI e Protocol Buffers.
Esplora GoaGitHub

Goa-AI

Agenti con un sistema alle spalle.

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

Tool tipizzati e risposte strutturate
Schemi, codec, binding ai servizi e helper per le completion generati.
Composizione e valutazione
Agenti come tool, esecuzioni figlie collegate, suite di valutazione tipizzate e hook per gli scenari.
Esecuzione che puoi gestire
Eventi tipizzati, conferme, cancellazione e policy. Esecuzione locale per iniziare; Temporal per la durabilità.
Esplora Goa-AIGitHub

I tuoi servizi nell’ecosistema AI.

Goa-AI costruisce anche l’infrastruttura che rende disponibili i tool ai tuoi agenti e ad altre applicazioni AI.

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
MCP("catalog", "1.0.0")
JSONRPC(func() { POST("/mcp") })

Method("lookup", func() {
    Payload(LookupPayload)
    Result(Product)
    Tool("lookup", "Find a product by SKU")
})

All’interno di un servizio Goa. Aggiungi Resource e StaticPrompt per esporre altre funzionalità MCP.

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
catalogsearchbilling
Il tuo tool registryScopri schemi. Instrada chiamate. Verifica lo stato.

I tuoi agenti e le tue applicazioni

Progetta l’intento. Genera la ripetizione.

Un solo flusso di lavoro per te, il tuo team e il tuo agente di coding.

  1. Descrivi il contratto

    Definisci tipi, operazioni e vincoli in un progetto Go leggibile.

  2. Esegui il generatore

    Lascia che goa gen produca il codice derivato dal contratto.

  3. Implementa il comportamento

    Tu e il tuo agente scrivete logica dei servizi, planner e test.

  4. Evolvi con riscontri

    Rigenera dopo una modifica al progetto. Compila, testa e verifica il risultato.

Prima di iniziare

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.

Costruisci su basi aperte.

Goa e Goa-AI fanno parte di un insieme di strumenti open source per servizi Go, agenti, osservabilità e sistemi distribuiti.

Esplora l’ecosistema

Sponsor

Scelto da Team di Ingegneri in Tutto il Mondo