Amazon Bedrock AgentCoreを使用したサーバーレス画像編集エージェントの構築
サマリー
Amazon Bedrock AgentCoreを利用して、自然言語で画像を編集するサーバーレスエージェントを構築する方法を解説します。ユーザーは画像をアップロードし、編集内容を記述することで、数秒で編集結果を受け取ることができます。エージェントは設定のみで動作し、複雑なオーケストレーションコードは不要です。
本文
自然言語に基づいて画像を編集するAIエージェントを構築するには、オーケストレーションループ、ツールルーティング、メモリ管理、およびそれらを実行するコンピューティング環境が必要です。Amazon Bedrock AgentCoreハーネスは、設定を通じてその全スタックを処理します。エージェントの機能を宣言すると、ハーネスは状態を持つ隔離されたマイクロVM内でそれを実行し、組み込みのメモリ、ツールルーティング、および可観測性を提供します。
この投稿では、ユーザーが写真をアップロードし、平易な英語で編集内容を説明し、数秒で結果を受け取るサーバーレス画像編集ツールの構築方法を説明します。エージェントはカスタムオーケストレーションコードなしでAgentCoreハーネス上で実行されます。認証、暗号化ストレージ、3つの画像編集ツール、およびReactフロントエンドを含む完全なソリューションを、単一のデプロイコマンドで展開します。インフラストラクチャはAWS Cloud Development Kit (AWS CDK)を使用して定義されます。
このアプリケーションは、「車の色を青に変更する」や「画像を右に200ピクセル延長する」といったプロンプトを受け入れます。Claude Sonnet 4.6によって駆動されるエージェントは、要件を一連のステップに分解し、各ステップに異なるStability AIモデルを関連付けてツール呼び出しをオーケストレーションします。次に、編集を実行し、マイクロVM上でシェルコマンドを使用して透かしを適用し、結果を返します。このアプリケーションは、以下のAgentCoreハーネスの機能を示しています:
- 設定駆動のエージェント作成。エージェントはAPIパラメータを通じて完全に定義されます。Pythonオーケストレーションコード、フレームワーク、コンテナは不要です。
- 呼び出しごとのモデル切り替え。フロントエンドは基本的なチャットをClaude Haiku 4.5に、編集をClaude Sonnet 4.6にルーティングします。エージェントはモデル切り替えを通じて会話のコンテキストを保持します。
- 呼び出しごとのペルソナオーバーライド。ユーザーは業界のペルソナ(不動産、小売、自動車)を選択し、再デプロイなしでドメイン固有のシステムプロンプトを注入します。
- AgentCoreメモリは、会話履歴をAgentCoreサービスに30日間保存します。エージェントはセッション内のターン間で完全なコンテキストを保持し、フロントエンドが履歴を再送信することなく以前の編集を参照できます。このサンプルは、セッションIDをlocalStorageに保持し、ブラウザのリフレッシュを生き残ります。ブラウザデータをクリアするとフロントエンドで新しいセッションが開始されますが、会話履歴はListEvents APIを通じてAgentCoreで利用可能です。
- AgentCore GatewayとMCP。3つのAWS LambdaバックエンドツールがModel Context Protocol (MCP)を通じてセマンティックルーティングで公開されます。エージェントはプロンプトに基づいて適切なツールを選択します。
- InvokeAgentRuntimeCommand。各編集後、Pythonスクリプトが直接AgentCoreランタイムマイクロVM上で実行され、透かしを追加します。モデル推論は行われず、トークンは消費されません。
このソリューションを展開するには、AWSアカウント、Node.js 20.x以降、Python 3.13以降、AWS CLI 2.xの設定、Anthropic Claudeモデルへのアクセス、Stability AIモデルへのアクセスが必要です。デプロイ時間は約3〜5分です。デプロイメントスクリプトは、すべてをエンドツーエンドで処理し、必要なものをインストールし、Lambda依存関係をバンドルし、CDKスタックをデプロイし、フロントエンドを構築し、Amplifyにアップロードし、テストユーザーを作成します。GitHubリポジトリをクローンし、プロジェクトディレクトリに移動して、デプロイメントスクリプトを実行します。デプロイが完了すると、ライブURLとログイン資格情報が表示されます。全リソースは単一のAWS CloudFormationスタック内に作成され、Amazon Cognitoを使用して認証を処理します。画像はAWS Key Management Service (AWS KMS)によって保護されたAmazon S3バケットに保存され、画像編集機能は3つのLambda関数によって提供され、AgentCore Gatewayを通じてMCPツールとして公開されます。フロントエンドでは、AWS AmplifyアプリケーションがReactベースのユーザーインターフェースを提供します。
エディタにサインインすると、左側にキャンバス、右側にチャットインターフェースが表示されます。画像をアップロードし、編集内容を説明し、特定の領域を編集するためにマスクを描画し、結果を確認することができます。エージェントは、透かしを適用した編集画像をチャットスレッドに表示します。ユーザーは、メニューを使用してモデルやペルソナを切り替えることもできます。これにより、会話履歴を失うことなく次のメッセージに変更が適用されます。
このプロジェクトにおいて、ハーネスが具体的に削減したのは、エージェントオーケストレーションコードの行数です。モデル呼び出しループ、ツール実行ハンドラー、ストリーミングパーサー、エラー再試行ロジック、コンテナイメージは不要です。エージェントの動作を変更するには、API呼び出しを行うだけで、コードのデプロイは不要です。エージェントコアランタイムは、エージェントにカスタムオーケストレーションロジックが必要な場合に使用します。ハーネスとエージェントコアランタイムは同じ基盤インフラストラクチャ上で動作します。ハーネスを使用して始め、複雑さが増すにつれてエージェントコアランタイムに移行することができます。データを保持したい場合は、destroyスクリプトを実行する前にバックアップを取ってください。結論として、AgentCoreハーネスはオーケストレーションコードを書くことなく、プロダクション対応の画像編集エージェントを構築することを可能にします。
この投稿では、ユーザーが写真をアップロードし、平易な英語で編集内容を説明し、数秒で結果を受け取るサーバーレス画像編集ツールの構築方法を説明します。エージェントはカスタムオーケストレーションコードなしでAgentCoreハーネス上で実行されます。認証、暗号化ストレージ、3つの画像編集ツール、およびReactフロントエンドを含む完全なソリューションを、単一のデプロイコマンドで展開します。インフラストラクチャはAWS Cloud Development Kit (AWS CDK)を使用して定義されます。
このアプリケーションは、「車の色を青に変更する」や「画像を右に200ピクセル延長する」といったプロンプトを受け入れます。Claude Sonnet 4.6によって駆動されるエージェントは、要件を一連のステップに分解し、各ステップに異なるStability AIモデルを関連付けてツール呼び出しをオーケストレーションします。次に、編集を実行し、マイクロVM上でシェルコマンドを使用して透かしを適用し、結果を返します。このアプリケーションは、以下のAgentCoreハーネスの機能を示しています:
- 設定駆動のエージェント作成。エージェントはAPIパラメータを通じて完全に定義されます。Pythonオーケストレーションコード、フレームワーク、コンテナは不要です。
- 呼び出しごとのモデル切り替え。フロントエンドは基本的なチャットをClaude Haiku 4.5に、編集をClaude Sonnet 4.6にルーティングします。エージェントはモデル切り替えを通じて会話のコンテキストを保持します。
- 呼び出しごとのペルソナオーバーライド。ユーザーは業界のペルソナ(不動産、小売、自動車)を選択し、再デプロイなしでドメイン固有のシステムプロンプトを注入します。
- AgentCoreメモリは、会話履歴をAgentCoreサービスに30日間保存します。エージェントはセッション内のターン間で完全なコンテキストを保持し、フロントエンドが履歴を再送信することなく以前の編集を参照できます。このサンプルは、セッションIDをlocalStorageに保持し、ブラウザのリフレッシュを生き残ります。ブラウザデータをクリアするとフロントエンドで新しいセッションが開始されますが、会話履歴はListEvents APIを通じてAgentCoreで利用可能です。
- AgentCore GatewayとMCP。3つのAWS LambdaバックエンドツールがModel Context Protocol (MCP)を通じてセマンティックルーティングで公開されます。エージェントはプロンプトに基づいて適切なツールを選択します。
- InvokeAgentRuntimeCommand。各編集後、Pythonスクリプトが直接AgentCoreランタイムマイクロVM上で実行され、透かしを追加します。モデル推論は行われず、トークンは消費されません。
このソリューションを展開するには、AWSアカウント、Node.js 20.x以降、Python 3.13以降、AWS CLI 2.xの設定、Anthropic Claudeモデルへのアクセス、Stability AIモデルへのアクセスが必要です。デプロイ時間は約3〜5分です。デプロイメントスクリプトは、すべてをエンドツーエンドで処理し、必要なものをインストールし、Lambda依存関係をバンドルし、CDKスタックをデプロイし、フロントエンドを構築し、Amplifyにアップロードし、テストユーザーを作成します。GitHubリポジトリをクローンし、プロジェクトディレクトリに移動して、デプロイメントスクリプトを実行します。デプロイが完了すると、ライブURLとログイン資格情報が表示されます。全リソースは単一のAWS CloudFormationスタック内に作成され、Amazon Cognitoを使用して認証を処理します。画像はAWS Key Management Service (AWS KMS)によって保護されたAmazon S3バケットに保存され、画像編集機能は3つのLambda関数によって提供され、AgentCore Gatewayを通じてMCPツールとして公開されます。フロントエンドでは、AWS AmplifyアプリケーションがReactベースのユーザーインターフェースを提供します。
エディタにサインインすると、左側にキャンバス、右側にチャットインターフェースが表示されます。画像をアップロードし、編集内容を説明し、特定の領域を編集するためにマスクを描画し、結果を確認することができます。エージェントは、透かしを適用した編集画像をチャットスレッドに表示します。ユーザーは、メニューを使用してモデルやペルソナを切り替えることもできます。これにより、会話履歴を失うことなく次のメッセージに変更が適用されます。
このプロジェクトにおいて、ハーネスが具体的に削減したのは、エージェントオーケストレーションコードの行数です。モデル呼び出しループ、ツール実行ハンドラー、ストリーミングパーサー、エラー再試行ロジック、コンテナイメージは不要です。エージェントの動作を変更するには、API呼び出しを行うだけで、コードのデプロイは不要です。エージェントコアランタイムは、エージェントにカスタムオーケストレーションロジックが必要な場合に使用します。ハーネスとエージェントコアランタイムは同じ基盤インフラストラクチャ上で動作します。ハーネスを使用して始め、複雑さが増すにつれてエージェントコアランタイムに移行することができます。データを保持したい場合は、destroyスクリプトを実行する前にバックアップを取ってください。結論として、AgentCoreハーネスはオーケストレーションコードを書くことなく、プロダクション対応の画像編集エージェントを構築することを可能にします。