エージェントのスキルを使用してデータ プロダクトを構築する
このガイドでは、GitHub リポジトリで直接提供される特殊な Cortex Framework エージェント スキルを、AI コーディング アシスタント(Gemini と Antigravity エージェント開発フレームワークの組み合わせなど)で使用して、Cortex Framework のベスト プラクティスに準拠したカスタム データ プロダクトを構築する方法について説明します。
これらの機能を使用すると、自然言語を使用して、特定のビジネス要件に基づいて新しいデータ プロダクトをリクエストできます。たとえば、買掛金消費データ プロダクトをリクエストして、合計支払期日、支払期日超過額、売上高に関する分析情報を取得できます。その結果、顧客固有の要件とデータに基づいて構築された、完全に統合された Cortex Framework データ プロダクトが作成され、実行できるようになります。
概要
エージェント データ プロダクト ビルダーは、Cortex Framework 内のデータ プロダクトのエンドツーエンドの開発ライフサイクルを自動化します。AI アシスタントに構造化された開発ワークフローを実行するように指示することで、ファイル構造の手動スキャフォールディング、複雑な SAP スキーマのナビゲーション、基盤レイヤの構成、カスタム Namespace の管理、ボイラープレート Dataform SQLX コードの記述を行う必要がなくなります。
AI アシスタントは、次のコアタスクを管理します。
- 計画と要件のマッピング: 具体的なビジネス要件を実行可能なデータ モデリングと開発計画に変換します。
- ライブ スキーマ検索: レプリケートされた SAP データ ディクショナリ(DDIC)テーブルをクエリするスクリプトを実行して、カスタム Z フィールドなど、顧客固有のコンテキスト情報を提供します。
- ボイラープレート スキャフォールディング: 必要な構成ファイル、メタデータ、SQLX または JavaScript コード アーティファクトをすべて自動的に生成します。
- データ品質ゲート: ローカルビルドの実行、SQL コードのコンパイル、単体テストと統合テストの実行、命名標準への準拠の検証により、データ プロダクトを検証します。
- ドキュメントの作成: データ プロダクト モジュールのエンティティ リレーションシップ(ER)図と主キーの視覚化など、ドキュメント アセットを自動的に作成します。
これらのエージェント スキルを使用したデータ プロダクトの開発は、反復的なプロセスです。最初の目標から始め、ER 図やスキーマなど、エージェントが提案する実装計画を確認し、AI アシスタントにロジックを会話形式で絞り込むように依頼できます。エージェントは開発を加速させますが、リポジトリに commit する前に、生成されたすべてのコードを確認して承認できます。さらに、これらのエージェント スクリプトは認証された認証情報を使用してローカルで実行されるため、既存の Google Cloud と BigQuery のアクセス上限が尊重されます。
前提条件
エージェント スキルを使用する前に、ライブ スキーマ クエリ、データ コンパイル、自動検証を有効にするために、開発環境が次の要件を満たしていることを確認してください。
Google Cloud SDK(
gcloud): ユーザー アカウントで(gcloud)CLI をインストールして認証します。詳細については、デプロイのドキュメントをご覧ください。アプリケーションのデフォルト認証情報(ADC): ローカル コンパイル ツールと pytest スイートが BigQuery と通信できるように、ローカル ADC とプロジェクト ターゲットを構成します。詳細については、デフォルト プロジェクトを準備する Google Cloud をご覧ください。
レプリケートされた SAP データ ディクショナリ(DDIC)テーブル: エージェントがケースに依存しないスキーマ チェックを実行し、フィールド長を正確に検証できるようにするには、次の SAP メタデータ テーブルを未加工のターゲット BigQuery データセットにレプリケートします。
DD03L(テーブル フィールド)DD04T(データ要素テキスト)DD08L(テーブル リレーションシップ)DD01L(ドメイン)DD07L(ドメイン値 - 省略可)DD07T(ドメイン値テキスト - 省略可)
ローカル Python 環境: ローカルの依存関係をインストールし、
uv同期ツールを使用して検証ライブラリと単体テストが正しく機能することを確認します。詳細については、ドキュメントをご覧ください。
セットアップと IDE の構成
開始する前に、インストールとセットアップの手順について、使用する AI コーディング アシスタントのドキュメント(Antigravity など)を参照してください。
必要なインストール アーティファクトを収集し、リポジトリのクローンを作成します。詳細については、インストール アーティファクトをご覧ください。
指定した AI コーディング アシスタント内で、クローン作成した Google Cloud Cortex Framework のソースコード フットプリントを開きます。
Google Cloud Cortex Framework は、リポジトリの .agents/skills/ ディレクトリにある一連の特殊なスキルを通じて、エージェント機能を提供します。これらのスキルは、複数の開発環境で使用できます。
Antigravity フレームワーク: Antigravity は、起動時にすべてのワークスペース スキルを自動的に検出、インデックス登録、有効化します。追加の構成は必要ありません。確認するには、アシスタントに次の質問をします。
「利用可能なスキルは何ですか?」
Gemini Code Assist を使用した VSCode:
- VS Code Marketplace から Gemini Code Assist 拡張機能をインストールします。
cortex-framework-coreフォルダをワークスペースとして開きます。アシスタントは、.agents/skills/ディレクトリからスキルを自動的にスキャンして読み込みます。
**その他の AI CLI ツール **: 指示プロンプトでスキル ディレクトリをネイティブに参照します。例: > 「.agents/skills/ ディレクトリ内の create-data-product スキルを読み取り、スキャフォールディングします...」
カスタム データ プロダクトを作成する
次の手順では、エージェント スキルを使用してカスタム データ プロダクトを作成するための構造化されたデベロッパー ワークフローについて説明します。
ステップ 1: 要件とコンテキストを指定する
AI コーディング アシスタントのチャット インターフェースを使用して、特定のデータ要件を記述するプロンプトを指定します。次に例を示します。
SAP S/4HANA と ECC を対象とする買掛金分析情報用の Cortex Framework データ プロダクトを作成します。Namespace は custom_finance を使用します。主なビジネス要件は、ベンダー全体の合計支払期日と支払期日超過額を追跡し、会社コード別に買掛金回転率を計算することです。
プロンプトで既存の要件や仕様書を直接参照することもできます。これらのドキュメント(Markdown などの構造化された形式で記述できます)は、エージェントに次のような重要なコンテキストを提供します。
- ビジネス コンテキストとドメイン: 詳細な目標、ユーザー ストーリー、ターゲット ユーザー。
- 入力データの仕様: ソーステーブル(
LFA1、BSIK、BSEG、Z...など)、バージョン管理の詳細(ECC と S/4HANA)、除外ルール、カスタム フィールドなど。 - 変換ロジックとビジネスルール: コア マッピング制約、クライアント フィルタリング(
mandt)、ソフト削除(loekz)、支払保留インジケータ(zlspr)マッピングの処理、調整ルール(売上高の歪みを避けるために、企業間ベンダー取引を除外するなど)。 - データの整合性とテスト アサーション: 検証シナリオ(粒度の固有性の検証、最終出力の未払請求額の合計が未加工のソーステーブルと完全に一致することの確認など)。
ステップ 2: 実装計画を確認する
要件を概説すると、エージェントは複数のスキル(query-sap-ddic スキルなど)を使用して、未加工の BigQuery DDIC メタデータ テーブルをクエリします。これにより、エージェントは必要なソーステーブルを特定して検証し、フィールド タイプとリレーションシップが正確であることを確認できます。エージェントは、要件が Cortex Framework のベスト プラクティスに完全に準拠していることを確認するために、他のスキルを呼び出すこともあります。
実装を開始する前に、エージェントは確認用の簡単な実装計画を提供します。この計画には、特定されたソーステーブル、マッピング、データ プロダクトの提案されたアーキテクチャ構造が含まれます。この計画を確認し、確認する前に調整をリクエストしてください。
ステップ 3: データ プロダクトを生成する
実装計画を確認すると、エージェントは create-data-product スキルを使用してディレクトリ構造をスキャフォールディングします。これにより、指定したカスタム Namespace のコア プラットフォームの更新から新しいカスタム開発が分離されます。
src/data_modules/<custom_namespace>/products/<dataproductname>/
├── manifest.yaml
├── table_settings.default.yaml
├── README.md
├── definitions/
│ └── [ecc|s4]/
│ └── <product_name>.js
└── annotations/
└── [ecc|s4]/
└── <product_name>.yaml
フォルダ構造と個々のファイルの詳細については、拡張性ガイドのドキュメントをご覧ください。
このフェーズでは、generate-er-diagram スキルを使用してリレーションシップを自動的に視覚化したり、create-python-tests スキルを使用してアサーションをスキャフォールディングしたりするようにエージェントに依頼することもできます。
ステップ 4: 品質ゲートを実行してデータを検証する
付与された権限に応じて、エージェントは次の必須検証ゲートを自動的に実行するか、実行するように求めるプロンプトを表示します。このプロセス全体を通して、エージェントは詳細なステータス レポートを生成するため、結果を確認できます。
- ビルドの検証: 生成されたすべての SQL モデルが正常にコンパイルされ、ビルドの概要が生成されることを確認するために、
uv run cortex-build --config config/config.yamlを実行します。 - Pytest の実行: Python 単体テストの完全なスイートを実行し、コア ビジネス ロジックとアサーションを検証するテスト実行レポートを出力します。
- リンターと監査:
validate-data-productスキルを活用して、厳密なフィールド パリティ チェックを実行し、命名規則への準拠を検証し、詳細な準備レポートを作成します。
ステップ 5: デプロイして実行する
検証レポートを確認して生成されたコードを承認したら、データ プロダクト アセットをデプロイする準備が整います。
- アセットをデプロイする: ローカルでデプロイ スクリプト(uv run cortex-deploy --config config/config.yaml など)を実行して、コンパイルされたデータ プロダクト定義を構成済みの Dataform ワークスペースに push します。
- データをマテリアライズする: 最終的なデプロイ後のワークフローを完了して、生成された Dataform パイプラインを実行し、BigQuery 内に新しいテーブルとビューを直接マテリアライズします。
- 分析情報を提供する: マテリアライズされると、カスタム データ プロダクトは、Gemini Enterprise などのダウンストリーム分析アプリに接続して、元のビジネス上の質問に対してインテリジェントで実用的な回答を提供できるようになります。
既存のデータ プロダクトを更新する
カスタム データ プロダクトが構築されたら、変更を加えるために最初からやり直す必要はありません。update-data-product スキルを活用して、新しいフィールドを反復的に追加したり、ビジネス ロジックを調整したり、完全に新しいソーステーブルを統合したりできます。次に例を示します。
custom_finance AP データ プロダクトを更新します。LFA1 ソーステーブルから支払条件フィールド(ZTERM)を追加し、最終出力ビューに正しくマッピングされていることを確認します。完了したら、ビルドの検証を実行します。
エージェントは構成を特定し、BigQuery DDIC に正確なフィールド要件をクエリし、Dataform コードを更新して、必要なビルドチェックを実行して変更を検証します。
ベスト プラクティスと制限事項
- スキーマ クエリの失敗: エージェントが SAP メタデータ スキーマを取得できない場合は、ローカルのアプリケーションのデフォルト認証情報(ADC)が有効になっており、ターゲットの未加工データセットに対する BigQuery データ閲覧者 IAM ロールを保持していることを確認してください。
- コンテキストの上限: 数十のテーブルを含む非常に大きなデータ プロダクトを構築している場合、エージェントがコンテキストを失う可能性があります。より小さなアトミックな指示を提供することで、成功率を高めます(たとえば、エージェントにヘッダーレベルのディメンションを最初に構築し、別のフォローアップ プロンプトでアイテムレベルのファクトを追加するように指示します)。