Los agentes razonan. Goa genera.

Goa es un framework Go que da a los agentes de programación menos código que escribir y un único contrato sobre el que razonar. Genera servidores HTTP, gRPC y JSON-RPC, clientes tipados, validación y especificaciones API. Crea agentes de IA, servidores MCP y registros de herramientas con Goa-AI.

GitHub Goa Goa-AI
Añade la skill Goa a tu agente

Código abierto. Licencia MIT. Escrito en Go.

Elegir un ejemplo de diseño
design/catalog.goFragmento del diseño
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

Código que tu agente no tiene que escribir

  • HTTP + gRPC + JSON-RPC
  • Clientes tipados
  • Interfaces de servicio
  • Validación y códecs
  • OpenAPI + Protocol Buffers
  • Clientes de línea de comandos
design/catalog.goFragmento del diseño
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

Código que tu agente no tiene que escribir

  • Esquemas JSON de herramientas
  • Códecs de datos tipados
  • Enlaces a servicios
  • Descriptores de herramientas tipados
  • Registros del runtime
  • AGENTS_QUICKSTART.md
Ver el ejemplo completo

Menos trabajo para tu agente.

Un modelo no debería tener que redescubrir tu arquitectura ni reescribir las mismas conexiones con cada funcionalidad.

Genera el código. Ahorra esos tokens.
Cada transporte, cliente y esquema generado es código que el LLM no necesita redactar. Dedica ese trabajo a la lógica de negocio, pruebas útiles y mejores herramientas.
Un contrato para entender el sistema.
Los tipos, restricciones, descripciones y métodos viven en el diseño. La estructura generada ofrece al agente un mapa del código y un lugar claro donde realizar cambios.
El compilador detecta las divergencias.
Cambia el contrato y regenera todas sus representaciones juntas. Go señala llamadas e implementaciones incompatibles y ofrece al agente indicaciones concretas para la siguiente edición.
Desarrollar con un agente de programación

Enseña a tu agente el método Goa.

Instala la skill Goa service designer en tu proyecto. Guía a tu agente por el diseño, la generación, la implementación y la verificación, indicando qué archivos editar y cuáles regenerar.

Instalación y flujo de trabajo
npx skills add goadesign/goa --skill goa-service-designer

Ejecuta en tu proyecto. Requiere Node.js y npm.

Después, dale una tarea concreta a tu agente:

Usa la skill goa-service-designer para añadir un servicio de catálogo con endpoints HTTP y gRPC. Genera el código, implementa la búsqueda de productos y pruébala.

Un ecosistema. Dos formas de construir.

Empieza con un servicio, un agente o ambos. El mismo lenguaje de diseño los conecta.

Goa

Un contrato. Cada transporte.

Define tu servicio una vez. Genera sus API, clientes, validación y especificaciones juntos. Implementa la lógica de negocio detrás de una interfaz Go tipada.

HTTP · gRPC · JSON-RPC
Servidores, clientes tipados y clientes CLI desde el mismo diseño.
Streaming definido en el diseño
WebSocket, Server-Sent Events, gRPC streaming.
Contratos que siguen conectados
Tipos Go, validación, codificación, mapeo de errores, OpenAPI y Protocol Buffers.
Explorar GoaGitHub

Goa-AI

Agentes respaldados por un sistema.

Diseña las herramientas y los resultados. Genera los contratos. El runtime coordina llamadas a modelos, ejecución de herramientas, intervención humana y flujos duraderos.

Herramientas tipadas y respuestas estructuradas
Esquemas, códecs, enlaces a servicios y helpers de completado generados.
Composición y evaluación
Agentes como herramientas, ejecuciones hijas vinculadas, suites de evaluación tipadas y hooks de escenarios.
Ejecución que puedes operar
Eventos tipados, confirmaciones, cancelación y políticas. Ejecución local para empezar; Temporal para durabilidad.
Explorar Goa-AIGitHub

Tus servicios en el ecosistema de IA.

Goa-AI también aporta la infraestructura que pone herramientas al alcance de tus agentes y de otras aplicaciones de IA.

Crea servidores MCP desde tus servicios.

Expón métodos de servicio como herramientas MCP. Publica recursos y plantillas de prompts. Goa-AI genera el manejo del protocolo y los adaptadores: MCP se convierte en otra interfaz de tu aplicación. Los agentes también pueden consumir herramientas MCP externas.

Crear un servidor MCP
MCP("catalog", "1.0.0")
JSONRPC(func() { POST("/mcp") })

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

Dentro de un servicio Goa. Añade Resource y StaticPrompt para exponer más capacidades MCP.

Aloja un registro para tus herramientas.

Ejecuta el servidor de registro incluido como catálogo compartido y pasarela de invocación. Publica conjuntos de herramientas, descubre sus esquemas y enruta llamadas a proveedores disponibles. Los agentes y proveedores pueden desplegarse y escalar por separado. Basado en Redis y Pulse.

Alojar un registro de herramientas
catalogsearchbilling
Tu registro de herramientasDescubre esquemas. Enruta llamadas. Supervisa el estado.

Tus agentes y aplicaciones

Diseña la intención. Genera lo repetitivo.

Un mismo flujo para ti, tu equipo y tu agente de programación.

  1. Describe el contrato

    Define tipos, operaciones y restricciones en un diseño Go legible.

  2. Ejecuta el generador

    Deja que goa gen produzca el código derivado del contrato.

  3. Implementa el comportamiento

    Tú y tu agente escribís la lógica, los planificadores y las pruebas.

  4. Evoluciona con comprobaciones

    Regenera tras cambiar el diseño. Compila, prueba y revisa el resultado.

Antes de empezar

¿Por qué usar Goa si un agente puede escribir el código?
Un agente escribe código por inferencia; Goa deriva el código de los contratos del diseño. Cada servidor, cliente, códec y esquema generado es código que el modelo no necesita escribir por separado. El diseño concentra el contexto, la estructura sigue siendo coherente y el compilador detecta implementaciones incompatibles tras los cambios. El agente sigue escribiendo lógica de negocio y pruebas.
¿Qué diferencia hay entre Goa y Goa-AI?
Goa diseña y genera API de servicios Go: HTTP, gRPC, JSON-RPC, clientes, validación y especificaciones. Goa-AI amplía el mismo DSL y generador con herramientas tipadas, agentes de IA, resultados estructurados, evaluaciones y servidores MCP. También ofrece un runtime de agentes y un servidor de registro que puedes alojar. Puedes empezar con cualquiera; Goa-AI no requiere un servicio Goa desplegado por separado.
¿Puedo usar Goa-AI solo para crear un servidor MCP?
Sí. Añade declaraciones MCP a un servicio Goa para generar un servidor con herramientas, recursos y plantillas de prompts. Implementa los métodos detrás de los adaptadores generados. No necesitas ejecutar un agente Goa-AI para servir MCP.
¿Cómo reduce la generación el trabajo del LLM?
Goa genera el código de transporte y contratos sin que un LLM redacte esos archivos. Así elimina una categoría de trabajo con tokens de salida. El ahorro total depende de la tarea, el modelo, el contexto y las iteraciones; compara cambios completos, incluidas pruebas y revisión, para medir el efecto en tu proyecto.

Construye sobre bases abiertas.

Goa y Goa-AI forman parte de un conjunto de herramientas abiertas para servicios Go, agentes, observabilidad y sistemas distribuidos.

Explorar el ecosistema

Patrocinadores

Confiado por Equipos de Ingeniería en Todo el Mundo