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 統合

ツール、リソース、プロンプトを公開するMCPサーバーを構築し、外部MCPツールを利用します。

記憶とセッション

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.