# Goa > Goa is a Go framework that gives coding agents less code to write and one contract to reason from. Generate HTTP, gRPC, and JSON-RPC servers, typed clients, validation, and API specifications. Build AI agents, MCP servers, and tool registries with Goa-AI. ## Why use Goa with a coding agent? A coding agent authors code by inference; Goa derives contract code from your design. Each generated server, client, codec, and schema is code the model does not need to write separately. The design concentrates context, the generated structure stays consistent, and the compiler identifies incompatible implementations after changes. Your agent still writes business logic and tests. ## Goa and Goa-AI Goa designs and generates Go service APIs: HTTP, gRPC, JSON-RPC, clients, validation, and specifications. Goa-AI extends the same DSL and generator with typed tools, AI agents, structured completions, evaluations, and MCP servers. It also provides an agent runtime and a hosted tool registry server. You can start with either framework; Goa-AI does not require a separately deployed Goa service. ## Install the Goa service designer skill Run in your application repository with Node.js and npm available: ```bash npx skills add goadesign/goa --skill goa-service-designer ``` For Goa-AI, also read the generated AGENTS_QUICKSTART.md in your application. ## Start here - [Develop with a coding agent](https://goa.design/docs/ai-development/index.md): workflow, generated-code boundaries, and a shared service/agent example. ## Documentation ### Goa - [Quickstart](https://goa.design/docs/1-goa/quickstart/index.md): Complete guide to installing Goa and building your first service - from setup to running a working HTTP endpoint. - [HTTP Guide](https://goa.design/docs/1-goa/http-guide/index.md): Complete guide to HTTP transport in Goa - routing, content negotiation, WebSocket, SSE, CORS, and static content. - [gRPC Guide](https://goa.design/docs/1-goa/grpc-guide/index.md): Complete guide to gRPC transport in Goa - service design, streaming patterns, error handling, and Protocol Buffer integration. - [Error Handling](https://goa.design/docs/1-goa/error-handling/index.md): Complete guide to error handling in Goa - defining errors, transport mapping, custom types, and best practices. - [Interceptors](https://goa.design/docs/1-goa/interceptors/index.md): Complete guide to interceptors and middleware in Goa - type-safe Goa interceptors, HTTP middleware, and gRPC interceptors. - [Production](https://goa.design/docs/1-goa/production/index.md): Production-ready patterns for Goa services - observability, security, and common deployment patterns. - [DSL Reference](https://goa.design/docs/1-goa/dsl-reference/index.md): Complete reference for Goa's design language - data modeling, services, methods, HTTP/gRPC mapping, and security. - [Code Generation](https://goa.design/docs/1-goa/code-generation/index.md): Complete guide to Goa's code generation - commands, process, generated code structure, and customization options. ### Goa-AI - [Quickstart](https://goa.design/docs/2-goa-ai/quickstart/index.md): Generate and run a local AI agent, then add your planner, typed tools, and model integration. - [Toolsets](https://goa.design/docs/2-goa-ai/toolsets/index.md): Learn about toolset types, execution models, validation, structured failure recovery, and tool catalogs in Goa-AI. - [Agent Composition](https://goa.design/docs/2-goa-ai/agent-composition/index.md): Learn how to compose agents using agent-as-tool patterns, run trees, and streaming topology. - [Generated Evaluations](https://goa.design/docs/2-goa-ai/evaluations/index.md): Declare agent test scenarios in your Goa design, implement one typed hook per scenario, and get calibrated, model-graded reports. - [MCP Integration](https://goa.design/docs/2-goa-ai/mcp-integration/index.md): Create MCP servers with tools, resources, and prompts, and consume external MCP tools. - [Memory & Sessions](https://goa.design/docs/2-goa-ai/memory-sessions/index.md): Manage state with transcripts, memory stores, sessions, and runs in Goa-AI. - [Production](https://goa.design/docs/2-goa-ai/production/index.md): Set up Temporal for durable workflows, stream events to UIs, apply adaptive rate limiting, and use system reminders. - [Testing & Troubleshooting](https://goa.design/docs/2-goa-ai/testing/index.md): Learn how to test agents, planners, and tools, and troubleshoot common issues. - [DSL Reference](https://goa.design/docs/2-goa-ai/dsl-reference/index.md): Complete reference for Goa-AI's DSL functions - agents, toolsets, policies, and MCP integration. - [Runtime](https://goa.design/docs/2-goa-ai/runtime/index.md): Understand how the Goa-AI runtime orchestrates agents, enforces policies, and manages state. - [Internal Tool Registry](https://goa.design/docs/2-goa-ai/registry/index.md): Deploy a clustered gateway for cross-process toolset discovery and invocation. - [Tool Payload Defaults](https://goa.design/docs/2-goa-ai/tool-payload-defaults/index.md): How Goa-AI applies Goa-style defaults to tool payloads (decode-body + transform) and what codegen contracts must hold. ### Ecosystem - [Model](https://goa.design/docs/3-ecosystem/model/index.md): Architecture diagrams as code using the C4 model - version-controlled, automatically generated, and interactive. - [Pulse](https://goa.design/docs/3-ecosystem/pulse/index.md): Distributed event infrastructure - streaming, worker pools, and replicated maps for Go microservices. - [Clue](https://goa.design/docs/3-ecosystem/clue/index.md): Microservice instrumentation for Go - logging, tracing, metrics, health checks, and debugging. ## Source - [Goa](https://github.com/goadesign/goa): service DSL and generator. - [Goa-AI](https://github.com/goadesign/goa-ai): agent DSL, generator, and runtime. - [Goa coding skill](https://github.com/goadesign/goa/tree/v3/skills): design-first workflow for coding agents. Edit design and application code. Regenerate gen/ with goa gen; do not edit generated files. Goa-AI also generates AGENTS_QUICKSTART.md for the application's agent design. Generation does not replace business logic, authorization, or tests.