Goa-AI:設計からエージェントへ

Markdown
Goで型付きツールとエージェントの契約を設計。接続コードを生成し、明確な実行モデルで動かします。

概要

Goa-AIはGoaの設計言語とジェネレーターをAIアプリケーションに拡張します。エージェント、ツールの入力と結果、構造化出力、ポリシー、評価シナリオを定義し、型、スキーマ、コーデック、接続コードを生成します。プランナーとアプリケーションの動作は開発者が実装します。

最初のエージェントをつくる、または**コーディングエージェントとの開発手順**へ。別のGoaサービスを先にデプロイする必要はありません。

コーディングエージェントと開発する

ツールスキーマとGoのコーデックは同じ設計から生成されます。BindToを使うと、サービスの型と実装をツールから再利用できます。生成される**AGENTS_QUICKSTART.md**は、そのアプリケーションの設計に基づく実装ガイドです。設計ファイルと一緒にコーディングエージェントへ渡し、gen/の外でプランナーと実行処理を実装します。設計の変更に合わせて再生成、コンパイル、評価を行います。

この仕組みは、反復的なスキーマや接続コードをモデルに書かせる作業を減らします。一定の削減率を保証するものではありません。コンテキスト、再試行、レビューを含めたタスク全体で測定してください。

プロダクトにエージェントを組み込む

ツールの契約

Goaの型、説明、例、検証で入力と結果を定義します。JSONスキーマと型付きコーデックが生成され、モデルの引数は実行前に検証されます。ツールセットを参照してください。

構造化出力

Completion(...)で型付きの回答を宣言します。生成された通常・ストリーミング用ヘルパーが完成した結果を検証します。DSLとランタイムを参照してください。

評価

スイートとシナリオを宣言し、型付きフックを生成して、成果を確認する検査を実装します。意味の評価には評価モデルの較正が必要です。生成される評価を参照してください。

エージェントの連携

エージェントを別のエージェントのツールとして公開できます。子の実行には独自の識別子、親へのリンク、履歴があります。連携ガイドを参照してください。

ストリーミング

ランタイムは回答、ツールの進捗、人からの入力、実行状態を型付きイベントとして出力します。公開範囲と通信方法はアプリケーションが決めます。ストリーミングを参照してください。

永続的な実行

ローカル開発にはインメモリエンジンを使います。永続化、復旧、アクティビティの再試行にはTemporalを設定します。外部への副作用にはアプリケーション側の冪等性と適切な再試行ポリシーが必要です。本番運用を参照してください。

MCPサーバーと自分で運用するツールレジストリ

MCPサーバーを構築。 生成されたプロトコル処理とアダプターを使い、メソッドをツールとして公開し、リソースやプロンプトテンプレートを提供します。外部MCPツールも利用できます。MCP統合を参照してください。

ツールレジストリを運用。 付属サーバーをRedisとPulseに支えられた共有カタログ兼呼び出しゲートウェイとして実行します。プロバイダーがツールセットとスキーマを公開し、利用側はツールを検索して正常なプロバイダーを呼び出します。接続用のヘルパーも生成されます。レジストリの運用を参照してください。

モデルと状態

OpenAI、Anthropic、AWS Bedrock、Google Vertex AIのアダプターを用意しています。機能の違いはランタイムで確認してください。保存領域、セッション、認可、メモリはアプリケーションが管理します。メモリとセッションを参照してください。

アーキテクチャ

設計が静的な契約を定義し、生成コードが型付きパッケージに変換します。ランタイムが実行を調整し、エンジンがローカルまたは永続的なワークフローを提供します。意味の判断はプランナー、ビジネス上の動作はアプリケーションサービスが担います。

ガイド

ローカルのクイックスタートから始め、ツール、モデル、状態、デプロイを追加します。正確な契約にはDSLとランタイムのリファレンスを参照してください。

ドキュメントを読む

クイックスタート

ローカルでAIエージェントを生成・実行し、プランナー、型付きツール、モデル接続を追加します。

ツールセット

Goa-AI におけるツールセットの種類、実行モデル、検証、構造化された失敗回復、ツールカタログについて学びます。

ツール検索と動的カタログ

読み込み方針を生成し、読み込み済みツール用の別ストアなしで変化するカタログを利用する。

エージェントの構成

Agent-as-Tool パターン、ランツリー、ストリーミングトポロジーを使ったエージェントの合成方法を学びます。

プロバイダーが実行する操作

実装をインポートせずにエージェント操作と登録済みツールを呼び出す。

生成型評価

Goa design で評価 scenario を定義し、型付き hook と信頼できる report を生成します。

MCP 統合

Goa の設計から型付き MCP サーバーとクライアントを生成し、認可、ユーザー入力、永続ジョブ、Apps、Skills を組み合わせます。

記憶とセッション

Manage state with transcripts, memory stores, sessions, and runs in Goa-AI.

プロダクション

Temporal による耐久性のあるワークフロー、UI へのイベントストリーミング、適応型レート制限、システムリマインダー。

テストとトラブルシューティング

エージェント、プランナー、ツールのテスト方法と、よくある問題のトラブルシューティングを学びます。

DSLリファレンス

Goa-AI の DSL 関数(エージェント、ツールセット、ポリシー、MCP 連携)を網羅した完全リファレンス。

ランタイム

Goa-AI ランタイムがエージェントをオーケストレーションし、ポリシーを強制し、状態を管理する仕組みを理解します。

内部ツールレジストリ

プロセス境界をまたぐツールセットの発見と呼び出しのために、クラスタ化されたゲートウェイをデプロイします。

Tool Payload Defaults

How Goa-AI applies Goa-style defaults to tool payloads (decode-body + transform) and what codegen contracts must hold.