【要約】サブスクの見張り番AIエージェントを作った話(Strands Agents SDK + AgentCore Runtime) [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者は、サブスクリプションの予期せぬ値上げ等の金銭的損失を解決しようとした。その過程で、以下の技術的課題に直面した。
- ・検知すべき異常(値上げ、重複、新規、カテゴリ重複)の定義。
- ・エージェントの長時間実行と、ブラウザの非同期な承認操作を同期させる仕組みの構築。
- ・ローカル開発環境における、並列書き込みによるファイル破損。
- ・Vercel上でのOIDC Federationを用いたAWS認証の失敗。
// Approach
開発者は、Strands Agents SDKとAmazon Bedrock AgentCore Runtimeを用い、以下の手法を採用した。
- ・検知ロジック:Claude Sonnet 4.6を用い、4つのルールに基づき請求をチェックする。
- ・同期メカニズム:WebSocketを使わず、DynamoDBの同一行をエージェントとWeb UIが相互にポーリングする。
- ・承認フロー:エージェントがPENDINGを書き込み、人間が承認すると、処理を再開する仕組みだ。
- ・トラブル対応:ローカルの破損にはロックを導入し、認証エラーにはIAMユーザーへの切り替えで対処した。
// Result
開発者は、ハッカソンへの応募を通じて、以下の成果を得た。
- ・プロトタイプの実現:DynamoDBを介した、人間による承認待ちを含むエージェントの動作を実証した。
- ・実装の柔軟性:Web UIだけでなく、CLIからも承認可能な設計を実現した。
- ・今後の展望:銀行・カードAPIとの連携や、メール・SMSによる通知機能の追加を計画している。
Senior Engineer Insight
> DynamoDBを介したポーリングによる同期は、実装の簡潔さと確実性を両立した優れた回避策だ。しかし、大規模環境ではDB負荷が課題となる。実戦ではEventBridge等を用いたイベント駆動型への移行が必須だ。また、ローカル環境の簡易的な実装が、並列処理時のデータ破損を招いた点は教訓となる。開発環境と本番環境の挙動の差異を最小化する設計が、堅牢なシステム構築には不可欠である。