Amazon Web Services ブログ

Amazon Bedrock を活用した AI エージェント開発・共有基盤「KTC Agent Store」の構築と実践

本記事は KINTO テクノロジーズ (KTC) の AI ファースト Group による寄稿です。

はじめに

KINTO テクノロジーズ (以下 KTC) は、クルマのサブスクリプションサービス「KINTO」をはじめとするさまざまなモビリティサービスを展開している トヨタ関連グループ会社です。近年、生成 AI の急速な発展により、ビジネスプロセスの自動化や顧客体験の向上が可能になってきました。KTC でもこの技術革新の波に乗り、Amazon Bedrock を活用した AI エージェント開発・共有基盤「KTC Agent Store」を構築しました。

本記事では、KTC Agent Store の概要、技術的特徴、そして実際の活用事例について紹介します。

KTC Agent Store とは

KTC Agent Store は、AI エージェントを開発・共有するためのプラットフォームです。このプラットフォームにより、開発チームは以下のことが可能になります。

主な機能

  • AI エージェントの新規開発とデプロイ:AI エージェントを効率的に開発し、AWS クラウド環境にデプロイできる
  • AI エージェントテンプレートの公開・共有:開発された AI エージェントのテンプレートを社内で公開・共有できる
  • AI エージェントテンプレートの再利用:公開・共有された AI エージェントテンプレートをダウンロードし、新たなプロジェクトで再利用できる

業務面での価値

KTC では、AI エージェントを大きく 2 種類に分類しています。

パーソナライズ系エージェントは個人作業向けで、Excel 処理やメール作成など日常業務の効率化に役立ちます。Microsoft Copilot などの個人アシスタントも利用しますが、特定業務に特化した専門の AI エージェントを併用することで、業務の生産性をさらに向上できます。

業務システム系エージェントは業務向けでバックエンドで動作し、顧客対応や内部業務処理の自動化、データ分析や意思決定支援などの機能を提供します。

KTC Agent Store により、このような様々なタイプの AI エージェントを開発・利用するための基盤が整いました。これらのエージェントをKTC Agent Store で効率的に開発・共有することで、様々な業務シーンでの AI 活用が可能になります。

例えば、以下のようなユースケースに対応できます。

「私は 40 代、年収 xxx、お勧めの車プランを教えてください」

このような顧客からの問い合わせに対して、パーソナライズされた回答を提供する AI エージェントを簡単に構築できるようになります。

KTC Agent Store v1.0 の開発

KTC Agent Store v1.0 として、Amazon Bedrock Agents を活用して AI エージェントを開発・共有するプラットフォームを開発しました。

狙う効果

KTC Agent Store v1.0 の導入により、以下の効果を狙っています。

  • 開発期間の短縮:従来は数週間かかっていたエージェント開発が、数日で完了できます。
  • 再利用性の向上:共有テンプレートを活用することで、類似機能の実装時間が大幅に削減されます。
  • 運用コストの削減:Amazon Bedrock の従量課金モデルにより、必要な時に必要なだけリソースを使用します。

なぜ Amazon Bedrock を選んだのか?

AI エージェント開発基盤の構築にあたり、Amazon Bedrock を選択した主な理由は以下の通りです。

  • ローコード開発の実現:Amazon Bedrock Agents の機能により、複雑な AI エージェントの作法と AI モデルの知識がなくても、ビジネスロジックに集中してエージェントを開発できます。
  • セキュリティとガバナンス:Amazon Bedrock に組み込まれた Guardrails 機能により、AI エージェントへの入力と出力を制御し、企業のセキュリティポリシーに準拠した運用が可能です。
  • 既存 AWS インフラとの統合:KTC ではすでに多くのシステムを AWS 上で運用しており、Amazon Bedrock を活用することで既存システムとの連携が容易になります。
  • スケーラビリティ:Amazon Bedrock の従量課金モデルにより、利用量に応じた柔軟なスケーリングが可能です。

KTC Agent Store v1.0 のアーキテクチャ

KTC Agent Store v1.0 は、以下のサービスを組み合わせて構築されています。

  • Amazon Bedrock:基盤となる AI エージェントプラットフォーム
  • AWS Lambda:エージェントの処理ロジックを実装
  • Amazon Elastic Container Registry:Docker イメージのリポジトリ
  • AWS CloudFormation, AWS Serverless Application Model (SAM):インフラストラクチャのコード化
  • Amazon S3:インフラストラクチャのスタック管理
  • GitHub リポジトリ:ソースコードとエージェントテンプレートの保存
  • GitHub Actions:CI/CD パイプライン

アーキテクチャ図

利用イメージ

社内のだれでも Agent の新規作成とリリースができる

  1. 開発者は Agent Store 上で AI エージェントの Base テンプレートを取得する。
  2. 取得した Base テンプレートをカスタマイズし、必要な lambda を作成する。
  3. GitHub Actions を実行し、Bedrock Agents をデプロイする。

社内のだれでも作成した Agent を公開できる

  1. 開発者は開発した AI エージェントのテンプレートファイルを作成し、Github 上の Agent Store に Pull Request する。
  2. Agent Store の管理者は、PR を承認し、マージする。

社内のだれでも Agent を取得し再利用できる

  1. 開発者は Agent Store 上に公開された AI エージェントテンプレートを取得する。
  2. 開発者は取得した AI エージェントテンプレートをベースに編集と加筆する。
  3. GitHub Actions を実行し、Bedrock Agents をデプロイする。

メリット

簡単な AI エージェント作成

Amazon Bedrock Agents をベースにしているため、ローコードかつローコストで AI エージェントを実装できます。専門的な AI 知識がなくても、テンプレート機能により、ビジネス部門のメンバーや一般的な開発スキルを持つエンジニアでも、短時間でエージェントの作成から展開までを完結できます。

# エージェント定義の例 (簡略化) 
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
    SuperAgentResource:
      Type: AWS::Bedrock::Agent
      Properties:
        AgentName: !Ref SuperAgentName
        FoundationModel: "anthropic.claude-3-5-sonnet-20240620-v1:0"
        Instruction: "あなたは人事面談結果をラベリングし、レポートを作成するエージェントです。入力された人事面談結果の Excel ファイルパスに基づき、人事面談結果をラベリングするエージェントを呼び出し、ラベリングされたファイルパスをレポートを作成するエージェントに渡し、レポートを作成する"
        Description: "人事面談の結果を処理するスーパーバイザーエージェントです。"
        AgentCollaboration: "SUPERVISOR"
        AgentResourceRoleArn: !Ref SuperAgentRole
        GuardrailConfiguration:
          GuardrailIdentifier: !Ref CommonGuardrail
          GuardrailVersion: !Ref CommonGuardrailVersion
        AgentCollaborators: 
          - AgentDescriptor:
              AliasArn: !GetAtt HumanLabelingAgentRelease.AgentAliasArn
            CollaborationInstruction: "人事面談結果をラベリングする。具体的にラベリング、課題抽出と解決策を出力する。出力されたファイルパスを返す。"
            CollaboratorName: "labelingagent"  
          - AgentDescriptor:
              AliasArn: !GetAtt HumanReportAgentRelease.AgentAliasArn
            CollaborationInstruction: "人事面談結果のレポートを作成するエージェントです。入力された人事面談結果を、ラベリングされたファイルパスに基づいて、グループごとの課題と解決策のレポートを作成する。"
            CollaboratorName: "reportagent"
        GuardrailConfiguration:
          GuardrailIdentifier: !Ref CommonGuardrail
          GuardrailVersion: !Ref CommonGuardrailVersion
        Tags:
          AgentStoreTemplate: "supervisor-agent"  
    SuperAgentRelease:
      Type: AWS::Bedrock::AgentAlias
      Properties:
        AgentAliasName: "human-supervisor-agent"
        AgentId: !Ref SuperAgentResource
        Description: "人事面談結果を処理するスーパーバイザーエージェントバージョン1です。"

以上のように、マルチエージェントのオーケストレーション部分は Python 等でのコーディングを必要とせず、定義を記述するだけで実装できます。開発チームは、Lambda 関数で実装するビジネスロジックに集中することができます。

このアプローチによって、AI エージェント開発の民主化を実現し、専門知識を持たないチームメンバーでも開発に参加できるようになりました。その結果、組織全体での AI 活用が加速し、専門チームへの依存度が低下したことで、アイデア構想から実装までのリードタイムを短縮することに成功しています。

簡単なデプロイとプロビジョニング

CI/CD とプロビジョニングには、KTC で標準で利用している GitHub Actions、AWS SAM を利用しています。これにより、開発チームは既存の知識を活かしながら、容易にキャッチアップして実装できます。

# GitHub Actions ワークフローの例 (簡略化) 
name: Deploy_Agent

run-name: ${{ github.workflow }} / deploy (${{ inputs.env }})

on:
  workflow_dispatch:
    inputs:
      env:
        description: "デプロイ環境(dev/stg/prod)"
        required: true
        default: "dev"
        type: choice
        options:
          - dev
          - stg
          - prod
      working_directory:
        description: 'directory to run sam deploy'
        required: false
        default: './sam'
      sam_version:
        description: 'sam version'
        required: false
        default: '1.134.0'

jobs:
  Deploy:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    environment: ${{ github.event.inputs.env }}
    defaults:
      run:
        working-directory: ${{ github.event.inputs.working_directory }}
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v3

      - name: Setup SAM
        uses: aws-actions/setup-sam@v2
        with:
          sam-cli-version: ${{ inputs.sam_version }}
        
      - name: Setup AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ASSUME_ROLE_ARN }}
          aws-region: ${{ vars.AWS_REGION }}

      - name: SAM Build
        shell: bash
        run: sam build

      - name: SAM Deploy
        shell: bash
        run: sam deploy --config-env ${{ github.event.inputs.env }} --no-confirm-changeset --no-fail-on-empty-changeset

既存システムとの容易な統合

AWS 上で作成したエージェントは、既存システムの AWS バックエンドから簡単に呼び出すことができます。これにより、段階的な導入や既存サービスの強化が可能になります。

# AWS SDK を使用したエージェント呼び出しの例
import boto3
from botocore.config import Config

config=Config(read_timeout=1000)

if __name__ == "__main__":
    agent_id = "YOUR_AGENT_ID"
    agent_alias_id = "YOUR_AGENT_ALIAS_ID"
    user_input = "人事面談結果ファイル\"人事ダミーデータ.xlsx\" に対して、ラベリングして、レポートを作成してください"

    bedrock_agent_runtime = boto3.client('bedrock-agent-runtime', config=config)
    
    response = bedrock_agent_runtime.invoke_agent(
            agentId=agent_id,
            agentAliasId=agent_alias_id,
            sessionId='session-' + str(hash(user_input))[:8],
            inputText=user_input
    )

    event_stream = response['completion']
    for event in event_stream:
        if 'chunk' in event:
            data = event['chunk']['bytes'].decode('utf-8')
            print(data)

責任ある AI

KTC の Security CoE グループと Cloud Infra グループにより、Bedrock Guardrails を活用した「CommonGuardrail」が提供されています。この標準ガードレールは、KTC セキュリティ基準を満たしており、エージェント作成時にデフォルトで適用されます。これにより開発チームは、セキュリティの専門知識がなくてもガードレールを適用するだけで、企業のセキュリティポリシーに準拠した安全な AI エージェントを構築することができます。

# Guardrails 設定の例 (簡略化) 
Resources:    
    SuperAgentResource:
      Type: AWS::Bedrock::Agent
      Properties:
        AgentName: !Ref SuperAgentName
        FoundationModel: "anthropic.claude-3-5-sonnet-20240620-v1:0"
        Instruction: "あなたは人事面談結果をラベリングし、レポートを作成するエージェントです。入力された人事面談結果の Excel ファイルパスに基づき、人事面談結果をラベリングするエージェントを呼び出し、ラベリングされたファイルパスをレポートを作成するエージェントに渡し、レポートを作成する"
        Description: "人事面談の結果を処理するスーパーバイザーエージェントです。"
        AgentCollaboration: "SUPERVISOR"
        AgentResourceRoleArn: !Ref SuperAgentRole
        GuardrailConfiguration:
          GuardrailIdentifier: !Ref CommonGuardrail
          GuardrailVersion: !Ref CommonGuardrailVersion
        AgentCollaborators: 
          - AgentDescriptor:
              AliasArn: !GetAtt HumanLabelingAgentRelease.AgentAliasArn
            CollaborationInstruction: "人事面談結果をラベリングする。具体的にラベリング、課題抽出と解決策を出力する。出力されたファイルパスを返す。"
            CollaboratorName: "labelingagent"  
          - AgentDescriptor:
              AliasArn: !GetAtt HumanReportAgentRelease.AgentAliasArn
            CollaborationInstruction: "人事面談結果のレポートを作成するエージェントです。入力された人事面談結果を、ラベリングされたファイルパスに基づいて、グループごとの課題と解決策のレポートを作成する。"
            CollaboratorName: "reportagent"
        Tags:
          AgentStoreTemplate: "supervisor-agent"  

実際の活用事例

KTC では、Agent Store v1.0 を活用して、1 週間で以下の AIO エージェントを開発・展開しました。

AIO エージェント

生成 AI 時代の到来により、従来の SEO 戦略では限界が見えてきました。ChatGPT や Claude 等の生成 AI が検索行動を変化させ、ユーザーは直接 AI に質問して答えを得るようになっています。この新しい検索パラダイムに対応するため、AIO (AI Optimization) という新たな最適化手法が求められています。

企業が早期に AIO 対応を始める際の課題

企業が AIO 対応を始める際に、現状では以下のような課題があります。

  • AIO (AI 最適化) 手法の未確立: どうすれば自社の情報を生成 AI に引用されやすくなるのか、確立された具体的な手法が存在しない
  • 効率的な分析: ユーザーの検索行動はキーワード (点) ベースからトピック (面) ベースに変わるため、トピックを全てカバーしようとすると調査分析のコストが激増

AIO-Agent は、上記の生成 AI 時代の SEO 課題に対応すべく開発された、マーケティング・SEO 分析自動化エージェントです。

AI エージェントによる統合分析体験

4 つの Lambda 関数が連携する統合型エージェントとして、プロンプト生成から分析結果の解釈・アドバイスまでをエージェントが一貫して実行します。従来膨大な時間がかかると思われる SEO/AIO 分析業務を、自然言語での指示だけで数分で完了し、エージェント自身が結果を読み込んで具体的なアドバイスを提供します。

  • トピックごとのプロンプトを生成 AI で素早く作成
  • GPT などにプロンプトを自動に送信
  • 回答文について再度生成 AI で AIO の観点で評価し、示唆も同時に生成 (LLM-as-a-Judge を参考)
  • 分析結果を表形式で Amazon S3 に格納
  • AI エージェントが過去の分析結果を読み込み、AIO についてのアドバイスを自然言語で提示

シームレスな分析体験を提供

実際の利用時には、ユーザーは自然な会話形式で AIO エージェントと対話するだけで、複雑な分析プロセスを意識せず、価値のあるインサイトを得ることができます。

  • ユーザー: 「AIO 分析をお願いします」
  • AIO-Agent: 「分析が完了しました。アピール度は 6.2 点、競合優位性は 4.8 点でした。特に料金面での競合優位性に課題があります。詳しい改善提案を聞きたいですか?」
  • ユーザー: 「料金面の改善について詳しく教えてください」
  • AIO-Agent: 「分析結果によると、月額料金の訴求が不十分です。具体的には…」

AIO エージェントの処理の流れ 1

AIO エージェントの処理の流れ 2

今後のロードマップ

私たちは段階的に KTC Agent Store の機能を拡張していく予定です。

現在 (v1.0)

  • Single-Agent と Multi-Agent 対応
  • 基本的なエージェント開発・デプロイ機能

次期バージョン (v2.0)

  • フルプロビジョニング
    • IAM Permission Boundary を使った IAM 権限管理
  • Agent Store OSS 版
  • Bedrock Agents + Bedrock Knowledge Base
    • ナレッジデータベースとの連携強化

将来計画 (v3.0)

  • MCP と A2A への対応
    • Model Context Protocol 対応と Agent-to-Agent 通信の実現

まとめ

KTC Agent Store v1.0 は、Amazon Bedrock を活用した AI エージェント開発・共有プラットフォームとして、開発効率の向上、再利用性の促進、責任ある AI を実現しています。このプラットフォームにより、当社は AI エージェントの開発・展開を加速し、ビジネス価値の創出を期待できます。

Amazon Bedrock の柔軟性と拡張性を活かした KTC Agent Store v1.0 は、今後の AI 活用の基盤として、さらなる進化を続けていきます。私たちは、このプラットフォームを通じて、KTC のサービスをより魅力的で効率的なものにし、お客様により良い体験を提供できることを楽しみにしています。


本記事は、AWS プリンシパル ソリューション アーキテクトの國政が担当しました。