Amazon Web Services ブログ

Amazon Bedrock Agentsと Powertools for AWS Lambda で生産性を向上

「Amazon Bedrock Agents と Powertools for AWS Lambda で生産性を向上」と書かれた AWS ブランドの背景デザイン

この記事は「Enhance productivity with Amazon Bedrock Agents and Powertools for AWS Lambda」をソリューションアーキテクトの松本が翻訳したものです。

公共部門は、生産性とサービス提供を向上させるための革新的なソリューションを必要とする独自の課題に直面しています。大規模言語モデル (LLM) はさまざまなアプリケーションで大きな可能性を示していますが、その真価は、最新データ、時間、天気、速報イベントなどのリアルタイム情報にアクセスできるときに発揮されます。この能力は、効果的な公共部門の計画と意思決定に不可欠です。しかし、LLM だけでは、特に動的でタイムセンシティブな業務を管理する公共機関にとって、タイムリーで関連性の高いインサイトを提供するには不十分かもしれません。

学習内容

この記事では、以下について説明します。

  • 公共部門機関が直面する主な課題と、リアルタイムデータアクセスが重要である理由
  • Amazon Bedrock AgentsPowertools for AWS Lambda がこれらの課題にどのように対応するか
  • 公共部門における実用的なアプリケーションを示す実際のユースケース
  • 技術的な実装の詳細とベストプラクティス

主な課題とリアルタイムデータの必要性

公共部門の業務に LLM を実装する際、公共機関は人工知能 (AI) を効果的に活用する能力を制限するいくつかの重要な課題に直面します。リアルタイムデータへのアクセスが限られていると、LLM が最新かつ実用的なインサイトを提供できなくなり、既存システムとの統合の難しさや厳格なコンプライアンス要件がさらに実装を複雑にします。

リアルタイムデータアクセスは、タイムリーな情報が重要な状況での違いを生む優先対応において特に重要です。また、決定が最新の情報に基づいていることを確保するポリシーコンプライアンスや、公共機関がリソースを最も必要とされる場所に効率的に振り向けるのに役立つリソース配分にも同様に重要です。

Amazon Bedrock Agents と Powertools for AWS Lambda の紹介

これらの課題に対処するために、シームレスに連携する 2 つの強力なツールを活用できます。

Amazon Bedrock Agents は、組み込みのビジネスロジックを持つ AWS Lambda 関数を呼び出すための機能呼び出しを利用します。これにより、外部 API へのアクセスとさまざまなデータソースとの統合が可能になり、API を介した公共機関間のコミュニケーションとデータ共有が促進されます。

サーバーレスのベストプラクティスを実装する開発者ツールキットである Powertools for AWS Lambda (Python) と組み合わせることで、公共機関は高いセキュリティとコンプライアンス基準を維持しながら、開発速度を大幅に向上させることができます。

公共部門における実際のアプリケーション

Amazon Bedrock Agents と Powertools for AWS Lambda が、実用的な例を通じて公共機関の業務をどのように改善するかを見てみましょう。

天気予報プロンプト

ユースケースの説明: 州の農業部門は、効果的な害虫駆除と環境への影響を最小限に抑えるために、天気予報に基づいて農薬散布スケジュールを計画する必要があります。

  • ユーザー: シアトル (ワシントン州) の今後 72 時間の予想降水量はどれくらいですか?
  • エージェント: シアトル (ワシントン州) の今後 72 時間の予想降水量は 0.5 インチです。

コンプライアンス文書取得プロンプト

ユースケースの説明: 公共機関の IT 部門は、公共機関が使用するクラウドサービスが連邦セキュリティ基準を満たしていることを確認するために、最新の FedRAMP コンプライアンス文書を必要としています。

  • ユーザー: AWS に最近の FedRAMP コンプライアンス文書はありますか?
  • エージェント: AWS からの最近の FedRAMP コンプライアンス文書をいくつか紹介します…

労働力計画プロンプト

ユースケースの説明: 州の雇用機関は、求職者の就職を支援し、地域の熟練労働力を確保するために、IT スペシャリスト向けの最新の求人情報を提供する必要があります。

  • ユーザー: ワシントン DC から 100 マイル以内の「IT スペシャリスト」の求人を一覧表示してください。
  • エージェント: ワシントン DC から 100 マイル以内の「IT スペシャリスト」の求人をいくつか紹介します…

主要なアプリケーション分野

データと分析業務

公共機関はリアルタイムデータ分析を活用して、実績に基づく政策決定とリソース配分の最適化を推進できます。この基盤により、より応答性が高く効率的な行政サービスが可能になり、運用コストも削減されます。

以下を通じて政策決定とリソース配分を強化します。

  • 将来の計画のためのリアルタイムの国勢調査と人口統計分析
  • 政策評価のための経済指標モニタリング
  • 自動化された財務報告とデータ取得
  • 既存のデータ管理システムとの統合

運用とコンプライアンス管理

統合されたモニタリングとレポート機能を備えた複雑な運用ワークフローの合理化により、規制コンプライアンスを維持しながら効率性を高め、運用リスクを軽減します。

以下の自動化を通じて運用効率を向上させます。

  • リアルタイムの航空状況更新とモニタリング
  • AWS Artifact を介した AWS コンプライアンス文書管理
  • 日付/時間の計算と検証プロセス
  • 規制コンプライアンスの追跡とレポート

環境とインフラストラクチャ管理

包括的なモニタリングとデータ駆動型のインサイトを通じて、環境とインフラストラクチャの管理を改善します。このアプローチにより、公共機関は変化を予測し、迅速に対応し、重要なインフラストラクチャをより効果的に維持できるようになります。

以下を含む重要な環境データをモニタリングおよび分析します。

  • 地震活動と地震追跡
  • 正確な位置情報サービスとマッピング
  • 天気予報と悪天候警報
  • インフラストラクチャの状態とメンテナンススケジューリング

労働力と公衆衛生

リアルタイムデータ分析とトレンドモニタリングを通じて、公衆衛生と労働力の決定を向上させます。このデータ駆動型アプローチにより、正確なヘルスケア計画と戦略的リソース展開が可能になります。

以下によりリソース管理を最適化します。

  • リアルタイムの労働力可用性追跡
  • 求人市場トレンド分析
  • 公衆衛生データモニタリング
  • 人口健康指標

ソリューションアーキテクチャ

コンポーネント

  • Amazon Bedrock LLM: 応答生成に使用される大規模言語モデル。
  • Amazon Bedrock Agent: ユーザーがソリューションと対話するためのオーケストレーションとタスク分析のインターフェース。
  • AWS Lambda と Powertools for AWS Lambda (Python): データ取得と処理のロジックを含む Lambda 関数。
  • Amazon Bedrock Agent アクショングループ: エージェントが実行するアクションを管理します。
  • エージェントビジネスロジック: エージェントがユーザークエリを処理するために従う特定のロジックとルール。
  • Amazon Bedrock Knowledge Base: ポリシー文書、コンプライアンス文書、ビジネス文書を含むリポジトリ。
  • OpenAPI スキーマ: エージェントが呼び出せる API 操作を定義します。
  • 公共機関 API エンドポイント: 公共機関固有のデータとサービスへのアクセスを提供します。
  • Amazon Bedrock Guardrails: セキュリティとコンプライアンスポリシーを適用するメカニズム。

基本的な相互作用

  1.  ユーザープロンプト: AWS Lambda クライアントが Amazon Bedrock Agent にプロンプトを送信します。
  2.  エージェント処理: エージェントは高度な推論を使用してタスクを論理的な順序に分解します。リクエストを満たすために必要な API と対話し、進行するか追加情報を収集するかを決定します。
  3.  ガードレール評価: 入力プロンプトが設定されたガードレールに対してコンプライアンスをチェックされます。入力が評価に失敗した場合、ブロックメッセージが返され、プロセスは終了します。
  4.  データ取得と実行: 入力がガードレール評価に合格した場合、エージェントは関連する Lambda 関数を呼び出し、タスクを完了するために必要に応じて Knowledge Base にクエリを実行します。
  5.  応答生成: タスクの完了後、エージェントは応答を作成します。この応答はコンプライアンスのためにガードレールに対してチェックされます。応答が評価に失敗した場合、ブロックメッセージで上書きされるか、機密情報がマスクされます。
  6.  ユーザー応答: コンプライアンスに準拠した応答が AWS Lambda クライアントに返されます。

図 1. この記事で説明するソリューションのアーキテクチャ図。主要なコンポーネントは Amazon Bedrock、AWS Lambda、および Powertools for AWS Lambda です。

このアーキテクチャをさらに詳しく調べるために、これらのコンポーネントが実用的な実装でどのように連携するかを示す Lambda 関数の例を見てみましょう。

技術的な実装

以下は、Powertools for AWS Lambda を使用して天気データを取得する Lambda 関数の実装例です。

# Powertools for AWS のロギングとトレースを初期化
logger = Logger()
tracer = Tracer(service="WeatherForecastAgent")

# BedrockAgentResolver は Lambda と Bedrock Agent の統合を処理
app = BedrockAgentResolver()

# Bedrock Agent の天気予報呼び出し用のエンドポイントを定義
@app.get("/forecast", description="Retrieve current weather forecast at a station.")
@tracer.capture_method
def get_weather(station_id: str = Query(..., description="The id of the weather observation station.")) -> dict:

    # API 呼び出しをログに記録
    logger.info(
        f"Retrieving weather data for station: {station_id}"
    )

    # 気象観測所の最新の観測データを取得
    base_url = "https://<your-api-endpoint>"
    url = f"{base_url}/{station_id}/observations/latest"
    response = requests.get(url, timeout=30)
    response.raise_for_status()
    
    # API レスポンスを解析
    data = response.json()
    
    # 天気情報を抽出
    temperature = data['properties']['temperature']['value']
    description = data['properties']['textDescription']

    # 取得したデータをログに記録
    logger.info(
        f"Weather for station {station_id}: Temp: {temperature}, Desc: {description}"
    )

    # X-Ray アノテーションをトレースフィルタリング用に追加
    tracer.put_annotation(key="station_id", value=f"{station_id}")

    return {"statusCode": 200, "body": data}

# ロギングとトレースを使用したメイン Lambda ハンドラー
@logger.inject_lambda_context(log_event=True)
@tracer.capture_lambda_handler
def lambda_handler(event: dict, context: LambdaContext) -> dict:
return app.resolve(event, context)

if __name__ == "__main__":
# Bedrock Agent 設定用の OpenAPI スキーマを出力
print(app.get_openapi_json_schema())
Python

この例では:

  • Powertools for AWS Lambda の Logger と Tracer により、関数の実行の包括的な可観測性がロギングとトレースを通じて可能になります。
  • BedrockAgentResolver は Amazon Bedrock Agent と Lambda 関数間のルーティングを処理し、合理化された API 統合を提供します。
  • 構造化ロギングと AWS X-Ray アノテーションが実装され、API 呼び出しを追跡し、詳細なトレース分析を可能にします。
  • Powertools は OpenAPI スキーマを生成する機能を提供し、開発者は Bedrock Agent のセットアップ中に API インターフェースを定義するために使用できます。

次の図は、Amazon Bedrock Agent とのサンプル対話を示しており、エージェントがユーザープロンプトを処理し、リアルタイムデータを取得する方法を示しています。エージェントが外部 API と統合し、タイムリーな応答を生成する能力は、公共部門の生産性とサービス提供を向上させる上で重要です。

図 2. Amazon Bedrock Agent の呼び出し例。

包括的な可観測性を確保するため、サンプル Lambda 関数は Amazon CloudWatch をロギングに使用しています。CloudWatch は関数の実行に関する詳細なログイベントを取得し、開発者が問題を診断しパフォーマンスを監視するのに役立ちます。

図 3. Amazon CloudWatch ログイベントの例。

可観測性をさらに強化するために、Lambda 関数は分散トレース用に AWS X-Ray と統合されています。X-Ray は関数の実行の視覚的なマップを提供し、開発者がシステム全体でリクエストの流れを追跡し、ボトルネックを特定し、パフォーマンスを最適化することを可能にします。

図 4. AWS X-Ray トレースマップの例。

この例は、Amazon Bedrock Agents と統合された Powertools for AWS Lambda のいくつかの付加価値機能を強調しています。組み込みの可観測性、自動スキーマ生成、標準化されたエラー処理の組み合わせにより、開発サイクルが加速し、本番環境レベルの信頼性が維持されます。これらの機能により、開発チームは AI 対応アプリケーションを自信を持って迅速にプロトタイプ作成し、デプロイすることができます。

結論

Amazon Bedrock Agents と Powertools for AWS Lambda を活用することで、公共機関は生成 AI と LLM の可能性を最大限に引き出し、イノベーションを推進し、市民へのサービス提供を改善することができます。これらのツールは、リアルタイムデータへのアクセスを可能にすることで LLM の機能を強化し、開発者の速度を大幅に向上させます。これにより、公共機関はインフラストラクチャの複雑さに対処するのではなく、市民に価値を提供することに集中できます。結果として、より機敏で応答性が高く、効果的な公共部門が実現し、構成員のニーズをより良く満たすことができます。

次のステップ

このブログの技術的なソリューションを確認するには、この投稿の GitHub リポジトリ をご覧ください。さらなる読み物とリソースについては、以下のリンクをご覧ください。

リソース