ポイント: 自動化されたAIガバナンスパイプラインは、Control-M、Amazon Bedrock、Snowflakeを統合してポートフォリオリバランスプロセスを強化します。データを検証し、レポートを生成し、タイムリーな意思決定のためにワークフローをオーケストレーションすることで、信頼性のある出力を確保します。
- Control-Mは、運用管理のためにワークフロー全体のライフサイクルを管理します。
- AWS DataBrewは、不正確な出力を防ぐためにデータを検証します。
Control-MがAmazon Bedrock、Snowflake、DataBrew、SES、QuickSightを使用して、プロダクショングレードのAIガバナンスパイプラインをどのようにオーケストレーションするかを学びましょう。
AIエージェントがプレイグラウンドで魅力的な応答を生成するのは簡単です。しかし、そのエージェントが毎四半期、新しいデータで、正しい順序で、結果を適切な人々やシステムに届ける信頼できる出力を生成するのは全く異なる問題です。
デモとプロダクションAIワークフローの間には通常、エージェント自体ではなく、その周囲のすべて、データの検証、オーケストレーション、同期、運用の可視性などが関係しています。
エージェントは、推論を行う前に検証済みの上流データを必要とします。古いガバナンススナップショットや欠落したリスク指標によって引き起こされる幻覚は、単なるモデルの問題ではなく、パイプラインの信頼性の問題です。同時に、下流のシステムはエージェントの出力に正しく対応する必要があります: レポートを生成し、ダッシュボードを更新し、推奨事項をアーカイブし、ガバナンスの決定を監査可能な形で保持する必要があります。
すべてが正しい順序で発生し、運用の可視性、依存関係の管理、そして全体のワークフローを通じた障害処理が必要です。
これがオーケストレーションの問題です。また、AIエージェントを実験からプロダクションに移行する際に、組織が直面する最大の課題の一つでもあります。
この記事では、BMCのControl-Mを使用してワークフローをオーケストレーションし、Amazon Bedrockエージェントを使用してAI駆動のポートフォリオ推論を行い、AWS DataBrew、Amazon Simple Email Service (Amazon SES)、Amazon QuickSight、Amazon Simple Storage Service (Amazon S3)を含むAWS分析サービスを使用してエンドツーエンドのプロダクショングレードのAIガバナンスパイプラインを構築する方法を示します。パイプラインは、SnowflakeからS&P 500のガバナンスデータを取り込み、Amazon Bedrockエージェントを呼び出して戦略的なポートフォリオのリバランス推奨事項を生成し、PDFレポートの生成、メール配信、決定の永続化、ダッシュボードの更新を含む完全な下流ライフサイクルをオーケストレーションします。
私たちが構築したものとその理由
これは、Control-Mを使用してデータとAIワークフローを運用化する三部作の第3フェーズです。フェーズ1では、S&P 500市場データの信頼できるETLおよび記述分析パイプラインの構築について説明しました。Control-Mによってオーケストレーションされ、Amazon QuickSightによって可視化されました。フェーズ2では、その基盤を予測分析に拡張し、Control-Mによってオーケストレーションされ、リターン予測、ボラティリティ推定、信頼スコア、売買シグナルを生成しました。
フェーズ3では次のステップを踏みます: 予測スコアのみを生成するのではなく、AIエージェントは現在の市場状況を推論し、ガバナンス信号を評価し、下流の運用アクションを駆動するポートフォリオのリバランス推奨を生成します。
ビジネスの成果は、戦略的ポートフォリオのリバランスのための四半期ごとのガバナンスワークフローです。
Amazon Bedrockエージェント - Sentinel-1戦略資産配分者/ポートフォリオリバランシングエージェント - は、Snowflakeからガバナンスに適した市場インテリジェンスを取り込み、現在のポートフォリオ配分と比較し、市場の脆弱性信号(幅の低下、ボラティリティの拡大、リターンの分散など)がより防御的な配分戦略を正当化するかどうかを判断します。
リスク条件が高まると、ワークフローはテクノロジーエクスポージャーを削減し、配分をStaples、Utilities、Cashに再分配することを推奨します。
Control-Mは、エグゼクティブPDFガバナンスレポートを生成し、レポートをAmazon S3にアーカイブし、レポートをAmazon SESを通じて配布し、Snowflakeにガバナンスの決定を永続化し、Amazon QuickSightダッシュボードを更新して運用の可視性を確保します。
これにより、AIワークフローは孤立したモデル呼び出しからプロダクショングレードのガバナンスプラットフォームに変わります。
アーキテクチャ
フェーズ3のパイプラインは、以前のフェーズで確立されたSnowflakeとS3データ基盤に基づいています。Control-Mは、Snowflake、AWS DataBrew、Amazon Bedrock、AWS Lambda、Amazon SES、Amazon S3、Amazon QuickSight全体の完全なワークフローライフサイクルをオーケストレーションします。
高レベルでは、オーケストレーションワークフローはこの依存関係チェーンに従います:
各ジョブは、その上流の依存関係が成功裏に完了した後にのみ開始されます。任意のステージが失敗した場合、Control-Mは不完全または信頼できないガバナンス出力が下流のユーザーに届く前にワークフローを停止します。
実装中に特に重要になった2つのアーキテクチャ決定がありました。
1つ目は、Bedrockの推論とPDF生成を分離することでした。以前のバージョンでは、PDFコンテンツを直接Bedrockの応答を通じて渡そうとしました。これにより、テキストとして処理された際にバイナリデータが破損する問題が発生しました。最終的なアーキテクチャは、Bedrockエージェントを推論と構造化されたJSON生成に専念させ、LambdaがPDF生成、チャートレンダリング、S3アーカイブ、Snowflakeの永続化を処理します。
2つ目は、S3ウォッチャーを同期ゲートとして導入することでした。Bedrock Flowが完了した後でも、生成されたPDFが下流のLambdaプロセスを通じてアップロードされている可能性があります。
Control-M Managed File Transfer (MFT)ウォッチャーは、レポートがS3に物理的に存在するまで待機し、その後メール配信とダッシュボード更新ステップをリリースすることで、これを解決しました。
これにより、ワークフローは緩く接続されたクラウドサービスの集まりではなく、決定論的なオーケストレーションパイプラインに変わります。
このソリューションを展開する前に、以下を準備してください:
- 管理者アクセスを持つアクティブなAWSアカウント
- あなたのAWSリージョンで有効にされたAnthropic Claude 3.5 Sonnetを持つAmazon Bedrockへのアクセス
- フェーズ1および2からのS&P 500キュレーションガバナンスデータセットを持つSnowflakeアカウント
- Control-M環境 (v9.0.21+) にControl-M for AWS統合プラグインがインストールされている
- ガバナンススナップショットのステージングとPDFレポートのアーカイブ用にAmazon S3バケット
- Bedrock、Lambda、S3、SES、QuickSightアクセスのために設定されたIAMロール (セキュリティの考慮事項を参照)
- メール配信のために確認済みの送信者および受信者のIDを持つAmazon SES
- PDF生成、S3アーカイブ、およびSnowflake永続化のためのAWS Lambda関数が展開されている (ReportLabとMatplotlibの必要なLambdaレイヤーを含む)
- ガバナンスダッシュボード可視化のためにSnowflake接続が構成されたAmazon QuickSightアカウント
ステップ1: Snowflakeからガバナンススナップショットをエクスポート
S&P 500の歴史的およびキュレーションされたガバナンスデータセットはSnowflakeに保存されています。Bedrockエージェントがデータを推論する前に、ワークフローはガバナンス指標を構造化されたJSONスナップショットとしてAmazon S3にエクスポートします。
ガバナンスコンテキストは、VW_MARKET_TREND_CONTEXTから取得されます。これは、市場の幅の指標、ボラティリティメトリクス、ボリンジャーバンドの幅、リターンの分散、移動平均強度信号、ガバナンスリスクスコアを提供するSnowflakeのキュレーションされたビューです。
ワークフローはこのデータをmarket_snapshot.jsonにエクスポートし、これがBedrockエージェントによって消費されるガバナンスコンテキストとなります。
セキュリティの考慮事項
COPY INTO @SP500_CURATED.GOVERNANCE.SP500_S3_STAGE/market_snapshot.json
FROM (
SELECT ARRAY_AGG(
OBJECT_CONSTRUCT(
'date', DATE,
'risk_score', RISK_SCORE,
'vol_change', VOL_CHANGE,
'breadth_change', BREADTH_CHANGE,
'avg_volatility', AVG_VOLATILITY,
'pct_overbought', PCT_OVERBOUGHT,
'return_dispersion', RETURN_DISPERSION,
'dispersion_change', DISPERSION_CHANGE,
'pct_above_ma30', PCT_ABOVE_MA30,
'avg_bb_width', AVG_BB_WIDTH
)
) AS market_data
FROM SP500_CURATED.MARKET.VW_MARKET_TREND_CONTEXT
)
FILE_FORMAT = (TYPE = 'JSON' COMPRESSION = NONE)
OVERWRITE = TRUE
SINGLE = TRUE;
ガバナンススナップショットをBedrockエージェントを呼び出す前にAmazon S3にエクスポートすることで、再現可能なAI入力アーティファクトが作成されます。すべてのワークフロー実行は、推論中に使用された正確なガバナンススナップショットにトレース可能になります。また、Bedrockの実行を直接データベース依存から切り離し、運用の信頼性と監査可能性を向上させます。
その後、ワークフローは以下を含むSnowflakeテーブルにガバナンス出力を書き込みます:
- BF_REPORT_RUNS
- BF_REPORT_ALLOCATIONS
- BEDROCK_DECISION_RESULTS
- DECISION_LOG
これらのテーブルは、ガバナンスの履歴、ワークフローメタデータ、推奨の追跡、下流の報告やダッシュボードのための運用監査可能性を提供します。
ステップ2: AI準備のためのスナップショットの検証
Bedrockエージェントがガバナンススナップショットを処理する前に、AWS DataBrewがエクスポートされたデータを検証します。これがオーケストレーションパイプライン内のAI準備データゲートとなります。
検証レイヤーは、Bedrockエージェントが誤解を招くガバナンス推奨を生成する可能性のある条件をチェックします:
- 空のガバナンススナップショット
- リスクスコアや幅の変化などの欠落したガバナンス指標
- 重複レコード
- 構造的に無効な数値
- スキーマの不整合
このステップは、アーキテクチャにおける最も重要な運用上の安全策の1つとなります。
不完全なガバナンスデータに基づいて推論するAIシステムは、必ずしも明確に失敗するわけではありません。代わりに、信頼性の低い入力に基づいて自信に満ちた推奨を生成します。Control-Mは、Bedrock実行が始まる前にスナップショットを検証することで、信頼できるガバナンスデータのみが推論レイヤーに到達することを保証します。
検証に失敗した場合、Bedrockワークフローは決して開始されません。
これは、デモAIワークフローとプロダクションAIワークフローの明確な違いの1つです。
ステップ3: Bedrockポートフォリオリバランシングエージェントを呼び出す
検証されたガバナンスデータがAmazon S3に段階的に配置されたら、Control-MがBedrockワークフローを呼び出します。
このワークフローは、Amazon Bedrock FlowとAnthropic Claude 3.5 Sonnetで動作するSentinel-1ポートフォリオリバランシングエージェントを使用します。エージェントは、現在の市場条件を2018年のストレス期間と比較し、防御的なポートフォリオポジショニングが必要かどうかを評価します。
エージェントは、Amazon Bedrock上のAnthropic Claude 3.5 Sonnetを使用します。このモデルは、以下の理由から選択されました:
- 構造化された推論および財務分析タスクにおける強力なパフォーマンス
- 200Kコンテキストウィンドウ - 完全なガバナンススナップショットを切り捨てずに取り込むのに十分
- 強力なJSONスキーマ準拠を持つ一貫した構造化出力の生成
- 四半期ごとのガバナンスワークロードに対して推論品質と呼び出しレイテンシのコスト効果の良いバランス
Sentinel-1ポートフォリオリバランシングエージェントは以下のように構成されます:
- データコンテキスト: Current_Portfolio.csvおよび2018年のストレス期間ベンチマークスナップショット(market_snapshot.json)を含むS3バケット
- アクショングループ: ReportArchiverツールが構造化されたJSON分析を受け取り、配分チャートを含むPDFガバナンスレポートを生成し、S3にアーカイブし、安全な事前署名されたダウンロードリンクを返します
- 指示: ボラティリティの拡大、市場の幅の悪化、リターンの分散、セクター集中度を歴史的ストレス期間と比較し、市場状態を分類し、リバランス推奨を生成し、ReportArchiverを完全な構造化JSON分析で呼び出します。
実装中に使用された最終的なワークフロープロンプトは:
Q1 2026のデータはS3に段階的に配置されています(ファイルCurrent_Portfolio.csvを使用)。2018年のストレス期間に対して脆弱性ベンチマークを実施し、Q2のためのPDF戦略的リバランス提案を生成してください。ここにもPDF内にも推奨されるセクターシフトのチャートを表示する必要があります。すべてのチャートを100DPIで描画して、PDFがアーカイブに最適化されていることを確認してください。最後に、そのPDFをReportArchiverツールを介してS3にアーカイブし、正確な安全なダウンロードリンクを提供してください。
Bedrockエージェントは、ボラティリティの拡大、市場の幅の悪化、リターンの分散、ガバナンスリスクスコア、セクター集中リスク、歴史的ストレス条件との類似性を評価します。
得られた応答には、ガバナンス分類、信頼スコア、リバランス推奨、エグゼクティブガバナンスサマリーが含まれます。
{
"market_state": "HIGH_RISK",
"confidence": 0.91,
"recommended_action": "STRATEGIC_REBALANCE",
"rebalance_summary": "Trim Technology exposure by 4-5% and redistribute to Staples, Utilities, and Cash.",
"drivers": [
"Breadth deterioration",
"Elevated risk score",
"Volatility expansion",
"Technology overweight relative to defensive allocation"
],
"executive_summary": "Market fragility indicators suggest reducing concentration risk and increasing defensive allocation."
}
これがワークフロー内のガバナンス決定ポイントとなります。Bedrockエージェントは単に分類スコアを生成するのではなく、多因子市場分析に基づいてポートフォリオガバナンス推奨を生成しています。
ステップ4: レポートがS3に到着したことを確認
Bedrock Flowが完了した後、生成されたPDFレポートはまだ下流のLambdaプロセスを通じてアップロードされているかもしれません。
これにより、同期の課題が生じます。
SESメールジョブがBedrock実行が完了した直後に開始されると、Amazon S3にまだ完全に到着していないレポートを取得しようとする可能性があります。
Control-MはこれをMFTウォッチ専用ジョブを使用して解決します。
ウォッチャーは以下を監視します:
s3://sp500-lambda-bedrock/reports/
レポートに一致する:
Strategic_Rebalance_*.pdf
ワークフローは、レポートが物理的にS3に存在し、確認された完了したガバナンスアーティファクトであることが確認されるまで進行しません。これにより、S3ウォッチャーが単なる監視タスクではなく同期ゲートに変わります。下流のメール配信とダッシュボード更新が常に機能することを保証します。
ステップ5: Amazon SESを介してレポートを配信
レポートがAmazon S3に確認されると、Control-Mは下流のメール配信ワークフローを呼び出します。
Lambda関数が最新のガバナンスPDFレポートをAmazon S3から取得し、構成された受信者にAmazon SESを通じて配布します。
配布されたレポートには以下が含まれます:
- ガバナンスリスク分析
- 歴史的ストレスベンチマーキング
- 現在と目標の配分チャート
- 戦略的リバランス推奨
- エグゼクティブガバナンスサマリー
- AI生成のポートフォリオの根拠
これにより、AI推論が孤立した分析結果ではなく、運用ガバナンスの成果物に変わります。
投資委員会は、ワークフローが完了した直後に手動の介入なしにエグゼクティブ向けのガバナンスレポートを受け取ります。
ステップ6: QuickSightガバナンスダッシュボードを更新
ガバナンスレポートが配布されると同時に、Control-MはSnowflakeのガバナンステーブルに接続されたAmazon QuickSightダッシュボードを更新します。ダッシュボードは、各成功したワークフロー実行後に自動的に更新され、運用チームに最新のポートフォリオ分析とガバナンスメトリクスを提供します。
ダッシュボードは、以下を表示することによってポートフォリオの運用ビューを提供します:
- 現在と目標の配分をセクター別に表示し、ユーザーが既存のポートフォリオウエイトをAI推奨配分と比較できるようにします。
- セクター別のAUM影響($M)を表示し、推奨リバランスに基づく各セクターの資産運用の増減を強調します。
- 主要なポートフォリオリスク指標を表示し、リスクスコア、マーケット幅KPI、ITウエイトパーセントを含め、ポートフォリオ分析に使用される現在の市場条件を要約します。
- 実行履歴を表示し、各ワークフロー実行、生成されたレポートファイル名、実行タイムスタンプ、および歴史的追跡と監査可能性のための主要な市場メトリクスを示します。
ダッシュボードは、生成されたPDFレポートを補完し、ポートフォリオの配分変更、市場指標、ワークフロー実行履歴をインタラクティブに監視する運用ビューを提供します。
PDFは四半期のポートフォリオレビュー会議のためのエグゼクティブ向けガバナンスレポートとして機能し、QuickSightダッシュボードは運用チームがポートフォリオメトリクスを監視し、ワークフロー実行を検証し、歴史的結果をレビューするための手段を提供します。
これらは、AI生成のポートフォリオ推奨を実行可能な運用インテリジェンスに変換します。
主要なアーキテクチャ上の決定
決定1: Bedrockの推論とPDF生成を分離
以前のバージョンでは、ワークフローはPDFコンテンツを直接Bedrockエージェントの応答を通じて渡そうとしました。これにより、テキストとして処理された際にバイナリデータが破損する問題が発生しました。最終的なアーキテクチャは、Bedrockエージェントを推論と構造化されたJSON生成に専念させ、専用のLambda関数がPDF生成、チャートレンダリング、S3アーカイブ、Snowflakeの永続化を処理します。この分離により、各コンポーネントが独立してテスト可能になり、プロダクションガバナンスパイプラインを繰り返して改善する際の重要な利点となります。
決定2: S3ウォッチャーを同期ゲートとして使用
Bedrock Flowが完了した後でも、生成されたPDFが下流のLambdaプロセスを通じてアップロードされている可能性があります。Bedrock実行後すぐにメール配信をトリガーすると、LambdaがS3にまだ物理的に存在しないレポートを取得しようとする可能性があります。Control-M MFTのウォッチ専用ジョブは、S3レポートパスを監視して一致するPDFファイル名パターンを探し、ファイルが実際に存在する場合にのみ下流のジョブをリリースします。これにより、レース条件が決定論的なオーケストレーションゲートに変わります。
決定3: DataBrewをAI準備データゲートとして使用
不完全または不正なガバナンスデータに基づいて推論するAIエージェントは、必ずしも明確に失敗するわけではありません。彼らは信頼性の低い入力に基づいて自信に満ちた推奨を生成します。AWS DataBrewを明示的なAI準備データ検証レイヤーとしてBedrock実行の前に配置することで、完全かつ構造的に有効なガバナンススナップショットのみが推論レイヤーに到達できるようにします。検証に失敗した場合、ワークフローはエージェントが呼び出される前に停止し、不正なデータに基づいてガバナンス推奨を生成および配布するのを防ぎます。
セキュリティの考慮事項
このソリューションは、オーケストレーションパイプライン全体でディフェンスインデプスセキュリティを実装します:
IAM最小特権アクセス
- Bedrockエージェントロール: bedrock:InvokeAgentおよびbedrock:InvokeModelにスコープを設定、Claude 3.5 Sonnet専用
- Lambda実行ロール: S3、SES、Snowflakeへの最小特権アクセスを持つ関数ごとに別々のロール
- Control-Mサービスロール: IAMロールにsts:AssumeRole権限があり、特定のリソースARNにスコープを設定
- S3内のすべてのデータは、AWS KMS顧客管理キーを使用して静止状態で暗号化されます
- サービスエンドポイント間のデータは、TLS 1.2以上を介して暗号化されます
- Snowflake接続は、利用可能な場合はプライベートリンクを介して暗号化されたJDBCを使用します
- レポートアクセス用の事前署名されたS3 URLは、構成可能なTTL(デフォルト: 72時間)後に期限切れになります
Amazon Bedrockガードレール
プロダクションデプロイメントの場合、Amazon Bedrockガードレールを設定することをお勧めします:
- 期待されるJSONスキーマに準拠しない出力をフィルタリング
- 個人情報(PII)を含む応答をブロック
- 特定の金融商品についてのモデルの幻覚を防ぐためにコンテンツフィルターを適用
- 監査目的のためにすべてのガードレール介入をログに記録
監視と可視性
このソリューションは、マルチレイヤーの可視性を提供します:
Control-M監視
- Control-M Webインターフェイスでのリアルタイムのワークフロー実行可視性
- 依存関係に基づくアラート: 上流のステップが失敗した場合、下流のステップは保持されます
- SLA管理: パイプライン全体が予想される期間を超えた場合に時間ベースのアラートを設定
- トレンド分析のための履歴実行レポート
AWS CloudWatch統合
- Lambda関数のログとメトリクス(期間、エラー、スロットル)をAmazon CloudWatch経由で表示
- Bedrock呼び出しメトリクス(レイテンシ、トークン使用量、スロットリング)
- オブジェクト作成の追跡のためのS3イベント通知
- 異常なBedrock応答時間のためのカスタムCloudWatchアラーム
ガバナンス監査トレイル
すべてのガバナンス決定は、SnowflakeのDECISION_LOGテーブルにタイムスタンプ、信頼スコア、モデルバージョン、入力スナップショットハッシュとともに永続化されます。これにより、規制コンプライアンスとモデルパフォーマンストラッキングのためのトレース可能な監査トレイルが提供されます。
完全なワークフローが提供するもの
ワークフローが四半期の終わりに実行されると、投資委員会は市場の脆弱性分析、歴史的ストレスベンチマーキング、現在と目標の配分推奨、AI生成のガバナンスサマリーを含むガバナンスレポートを受け取ります。
同時に、QuickSightダッシュボードが自動的に更新され、ガバナンスの履歴がSnowflakeに永続化され、Control-Mがエンドツーエンドでワークフローライフサイクルをキャプチャします。
手動での介入は必要ありません。
そして、何かが失敗した場合-古いガバナンスデータ、検証の問題、Bedrockのクオータの問題、同期の失敗、または下流の配信の問題-ワークフローは、信頼できない出力が利害関係者に届く前に停止します。
これがプロダクショングレードのAIオーケストレーションの姿です。
フェーズ3では、私たちはガバナンスデータの準備、AI準備の検証、Bedrockの推論、PDFレポート生成、運用通知、ダッシュボード可視化、Snowflakeの永続化を網羅する自動化されたAIガバナンスパイプラインを構築しました-すべてControl-Mを通じて信頼性高くオーケストレーションされます。
Amazon Bedrockエージェント、Bedrock Flow、AWS DataBrew、Lambda、Amazon SES、Snowflake、Amazon QuickSight、Control-Mを統合することで、AIガバナンスが実験的なAI演習ではなく、信頼性の高い運用能力となります。
その結果、エンタープライズAIガバナンスワークフローのためのスケーラブルなオーケストレーションパターンが得られます: エージェントが推論し、クラウドサービスが実行し、Control-Mが全プロセスを正しい順序で信頼性、可視性、監査可能性、運用制御を持って実行します。
始めるための手助けをするために、このソリューションで使用されるControl-Mワークフローを公開GitHubリポジトリに公開しました:
https://github.com/mol-bmc/bedrock-portfolio-rebalance
リポジトリには現在、以下が含まれています:
- エンドツーエンドのオーケストレーションワークフローのためのControl-Mジョブ定義 (jobs.json)。
- プロジェクトに関する基本情報が記載されたREADME。
これらの資産は、Control-Mによってどのようにワークフローがオーケストレーションされているかを理解するための出発点を提供します。ワークフロー定義をインポートしてレビューし、独自のAWS、Snowflake、Amazon Bedrock環境に合わせて接続プロファイル、IAMロール、クラウドリソース、およびデータセットを構成することができます。
プロジェクトが進化するにつれて、追加の実装資産やサポート例がリポジトリに追加される可能性があります。
この実装はAIガバナンスされたポートフォリオリバランスのユースケースを示していますが、オーケストレーションパターンは、信頼できるデータ準備、エージェント推論、下流の自動化、監視、監査可能性を必要とする多くのエンタープライズAIワークフローに適用できます。
これらの投稿は私自身の意見であり、必ずしもBMCの立場、戦略、または意見を表すものではありません。