Les agents raisonnent. Goa génère.

Goa est un framework Go qui donne aux agents de développement moins de code à écrire et un seul contrat pour raisonner. Générez des serveurs HTTP, gRPC et JSON-RPC, clients typés, validations et spécifications API. Créez des agents IA, serveurs MCP et registres d’outils avec Goa-AI.

GitHub Goa Goa-AI
Équipez votre agent de la skill Goa

Open source. Licence MIT. Écrit en Go.

Choisir un exemple de conception
design/catalog.goExtrait de conception
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

Du code que votre agent n’a pas à écrire

  • HTTP + gRPC + JSON-RPC
  • Clients typés
  • Interfaces de service
  • Validation et codecs
  • OpenAPI + Protocol Buffers
  • Clients en ligne de commande
design/catalog.goExtrait de conception
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

Du code que votre agent n’a pas à écrire

  • Schémas JSON des outils
  • Codecs de données typées
  • Liaisons aux services
  • Descripteurs d’outils typés
  • Enregistrements du runtime
  • AGENTS_QUICKSTART.md
Voir l’exemple complet

Moins de travail pour votre agent.

Un modèle ne devrait pas avoir à redécouvrir votre architecture ni à réécrire les mêmes intégrations à chaque fonctionnalité.

Générez le code. Épargnez ces tokens.
Chaque transport, client et schéma généré est du code que le LLM n’a pas à composer. Consacrez ce travail à la logique métier, aux tests utiles et à de meilleurs outils.
Un contrat pour comprendre le système.
Types, contraintes, descriptions et méthodes sont réunis dans le design. La structure générée donne à l’agent une carte du code et un endroit précis où intervenir.
Le compilateur repère les écarts.
Modifiez le contrat et régénérez ses représentations ensemble. Go signale les appels et implémentations incompatibles : un retour concret pour la prochaine modification de votre agent.
Développer avec un agent de code

Apprenez la méthode Goa à votre agent.

Installez la skill Goa service designer dans votre projet. Elle guide votre agent du design à la vérification, en précisant quels fichiers modifier et lesquels régénérer.

Installation et méthode
npx skills add goadesign/goa --skill goa-service-designer

À exécuter dans votre projet. Nécessite Node.js et npm.

Puis confiez une vraie tâche à votre agent :

Utilise la skill goa-service-designer pour ajouter un service catalogue avec des endpoints HTTP et gRPC. Génère le code, implémente la recherche de produits et teste-la.

Un écosystème. Deux façons de construire.

Commencez par un service, un agent ou les deux. Le même langage de conception les relie.

Goa

Un contrat. Tous les transports.

Définissez votre service une fois. Générez ses API, clients, validations et spécifications ensemble. Implémentez la logique métier derrière une interface Go typée.

HTTP · gRPC · JSON-RPC
Serveurs, clients typés et clients CLI à partir du même design.
Le streaming dans le design
WebSocket, Server-Sent Events, gRPC streaming.
Des contrats qui restent liés
Types Go, validation, encodage, correspondance des erreurs, OpenAPI et Protocol Buffers.
Découvrir GoaGitHub

Goa-AI

Des agents soutenus par un système.

Concevez les outils et les résultats. Générez les contrats. Le runtime coordonne les appels aux modèles, les outils, les interventions humaines et les workflows durables.

Outils typés et réponses structurées
Schémas, codecs, liaisons aux services et helpers de complétion générés.
Composition et évaluation
Agents utilisés comme outils, exécutions enfants liées, suites d’évaluation typées et hooks de scénarios.
Une exécution que vous maîtrisez
Événements typés, confirmations, annulation et politiques. Exécution locale pour commencer ; Temporal pour la durabilité.
Découvrir Goa-AIGitHub

Vos services dans l’écosystème IA.

Goa-AI fournit aussi l’infrastructure qui rend vos outils accessibles à vos agents et aux autres applications IA.

Créez des serveurs MCP à partir de vos services.

Exposez vos méthodes comme outils MCP. Publiez des ressources et des modèles de prompts. Goa-AI génère le protocole et les adaptateurs : MCP devient une interface de votre application. Les agents peuvent aussi utiliser des outils MCP externes.

Créer un serveur MCP
MCP("catalog", "1.0.0")
JSONRPC(func() { POST("/mcp") })

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

Dans un service Goa. Ajoutez Resource et StaticPrompt pour exposer d’autres capacités MCP.

Hébergez votre registre d’outils.

Exécutez le serveur de registre inclus comme catalogue partagé et passerelle d’invocation. Publiez des toolsets, découvrez leurs schémas et routez les appels vers les fournisseurs disponibles. Agents et fournisseurs se déploient et évoluent indépendamment. Avec Redis et Pulse.

Héberger un registre d’outils
catalogsearchbilling
Votre registre d’outilsDécouvrir les schémas. Router les appels. Suivre l’état.

Vos agents et applications

Concevez l’intention. Générez la répétition.

Un même processus pour vous, votre équipe et votre agent de développement.

  1. Décrire le contrat

    Définissez types, opérations et contraintes dans une conception Go lisible.

  2. Lancer le générateur

    Laissez goa gen produire le code qui découle du contrat.

  3. Implémenter le comportement

    Vous et votre agent écrivez la logique métier, les planificateurs et les tests.

  4. Évoluer avec des contrôles

    Régénérez après une modification. Compilez, testez et examinez le résultat.

Avant de commencer

Pourquoi utiliser Goa si un agent peut écrire le code ?
Un agent écrit du code par inférence ; Goa dérive le code des contrats du design. Serveurs, clients, codecs et schémas générés sont autant de code que le modèle n’a pas à écrire séparément. Le design concentre le contexte, la structure reste cohérente et le compilateur repère les implémentations incompatibles après une modification. L’agent écrit toujours la logique métier et les tests.
Quelle est la différence entre Goa et Goa-AI ?
Goa conçoit et génère les API de services Go : HTTP, gRPC, JSON-RPC, clients, validation et spécifications. Goa-AI étend le même DSL et générateur avec des outils typés, agents IA, complétions structurées, évaluations et serveurs MCP. Il fournit aussi un runtime d’agents et un serveur de registre à héberger. Vous pouvez commencer par l’un ou l’autre ; Goa-AI n’exige pas de service Goa déployé séparément.
Puis-je utiliser Goa-AI uniquement pour créer un serveur MCP ?
Oui. Ajoutez des déclarations MCP à un service Goa pour générer un serveur exposant outils, ressources et modèles de prompts. Implémentez les méthodes derrière les adaptateurs générés. Aucun agent Goa-AI n’est nécessaire pour servir MCP.
Comment la génération réduit-elle le travail du LLM ?
Goa génère le code de transport et des contrats sans demander au LLM de composer ces fichiers. Une catégorie de travail en tokens de sortie disparaît. L’économie totale dépend de la tâche, du modèle, du contexte et des itérations : comparez des changements complets, tests et revue inclus, pour mesurer l’effet dans votre projet.

Construisez sur des bases ouvertes.

Goa et Goa-AI font partie d’un ensemble d’outils open source pour les services Go, les agents, l’observabilité et les systèmes distribués.

Découvrir l’écosystème

Sponsors

Adopté par des Équipes d'Ingénierie dans le Monde Entier