# Goa and Goa-AI

Goaは、コーディングエージェントが書くコードを減らし、推論の基準となる契約をひとつにまとめるGoフレームワークです。HTTP・gRPC・JSON-RPCサーバー、型付きクライアント、検証、API仕様書を生成。Goa-AIでAIエージェント、MCPサーバー、ツールレジストリを構築できます。

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

Source: https://goa.design/ja/

## コーディングエージェントの仕事を、絞り込む。

### 生成に任せ、その分のトークンを省く。

生成されたトランスポート、クライアント、スキーマは、LLMが書く必要のないコードです。その分の作業をドメインロジック、有用なテスト、より良いツールに回せます。

### コンテキストの基準を、設計に。

型、制約、説明、メソッドを設計に集約。一貫した生成コードの構造が、エージェントにコードベースの地図と変更すべき場所を示します。

### 契約のずれを、コンパイルエラーに。

契約を変えたら、すべての表現をまとめて再生成。Goが型の合わない呼び出し元や実装を検出し、エージェントの次の修正に具体的な手掛かりを与えます。

## Goa

サービスを一度定義し、API、クライアント、検証、仕様書をまとめて生成。型付きGoインターフェースの先に、ビジネスロジックを実装します。

HTTP, gRPC, JSON-RPC. 同じサービス設計からサーバー、型付きクライアント、CLIクライアントを生成。

Goの型、検証、エンコード、エラーマッピング、OpenAPI、Protocol Buffers。

[サービスをつくる](https://goa.design/ja/docs/1-goa/quickstart/)

## Goa-AI

ツールと出力を設計し、契約を生成。ランタイムがモデル呼び出し、ツール実行、人間からの入力、永続化ワークフローを調整します。

スキーマ、コーデック、サービスへのバインディング、完了ヘルパーを生成。 エージェントのツール化、紐付いた子実行、型付き評価スイート、シナリオフック。

型付きイベント、確認、キャンセル、ポリシー。まずはローカル実行から。永続化にはTemporalを利用。

[AIエージェントをつくる](https://goa.design/ja/docs/2-goa-ai/quickstart/)

## サービスからMCPサーバーを構築。

サービスのメソッドをMCPツールとして公開し、リソースやプロンプトテンプレートも提供。Goa-AIがプロトコル処理とアダプターを生成するため、MCPをアプリケーションの新たなインターフェースにできます。外部MCPツールの利用にも対応します。

[MCPサーバーを構築する](https://goa.design/ja/docs/2-goa-ai/mcp-integration/)

## ツールレジストリを、自分で運用。

付属のレジストリサーバーを、共有カタログ兼呼び出しゲートウェイとして運用。ツールセットを公開し、スキーマを検索して、正常なプロバイダーへ呼び出しをルーティングします。エージェントとプロバイダーは独立してデプロイ・スケールできます。RedisとPulseを使用。

[ツールレジストリを運用する](https://goa.design/ja/docs/2-goa-ai/registry/)

## エージェントに、Goaの作法を。

Goa service designerスキルをプロジェクトにインストール。設計、生成、実装、検証の進め方から、編集するファイルと再生成するファイルの区別まで、コーディングエージェントを導きます。

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

プロジェクト内で実行。Node.jsとnpmが必要です。

[インストールとワークフロー](https://goa.design/ja/docs/ai-development/#install-the-skill)

## コーディングエージェントが書けるのに、なぜGoaを使うのですか？

エージェントは推論によってコードを書き、Goaは設計から契約のコードを導出します。サーバー、クライアント、コーデック、スキーマを個別に書く必要がなくなります。設計にコンテキストを集約し、構造を統一し、変更後の型の不整合をコンパイラーで検出できます。ビジネスロジックとテストはエージェントが実装します。

## GoaとGoa-AIの違いは何ですか？

GoaはGoサービスのAPIを設計・生成します。HTTP、gRPC、JSON-RPC、クライアント、検証、仕様書が対象です。Goa-AIは同じDSLと生成器を拡張し、型付きツール、AIエージェント、構造化された完了、評価、MCPサーバーに対応。エージェントランタイムと自分で運用するツールレジストリも提供します。どちらからでも始められ、別途デプロイしたGoaサービスは不要です。

## MCPサーバーの構築だけにGoa-AIを使えますか？

はい。GoaサービスにMCP宣言を追加すると、ツール、リソース、プロンプトテンプレートを公開するサーバーを生成できます。生成されたアダプターの先にサービスメソッドを実装します。MCPを提供するためにGoa-AIエージェントを実行する必要はありません。

## コード生成はLLMの作業をどう減らしますか？

Goaは、LLMにファイルを書かせることなく、トランスポートと契約のコードを生成します。その分の出力トークンを使った作業を省けます。総削減量はタスク、モデル、コンテキスト、反復回数によって異なるため、テストとレビューを含む変更全体で効果を測定してください。

