AWS CDK リポジトリのPull Requestを毎日分析し、サマリーレポートを自動生成するシステムです
https://d2t5fomzexey4a.cloudfront.net/
- 自動PR分析: 毎日JST 9:00に過去24時間のPRを分析
- AIサマリー生成: Bedrock Agentがカテゴリ分類・要約を自動生成
- レポート閲覧: Next.jsベースのWebフロントエンドでレポートを表示
- 日付切り替え: 過去のレポートを日付で選択して閲覧可能
- 無限ループ防止: ツール使用回数制限により、エージェントの無限ループを防止
.
├── cdk/ # AWS CDKインフラストラクチャ
├── mastra/ # Mastra AIエージェント
└── webapp/ # Next.js フロントエンド
| コンポーネント | 技術 |
|---|---|
| IaC | AWS CDK (TypeScript) |
| AIエージェント | Mastra + Amazon Bedrock |
| フロントエンド | Next.js 15 + React 19 + Tailwind CSS |
| スケジューラ | Amazon EventBridge Scheduler |
| ストレージ | Amazon S3 |
| CDN | Amazon CloudFront |
- Node.js 20+
- pnpm 9+
- AWS CLI (認証設定済み)
- AWS CDK CLI
# 依存関係のインストール
cd cdk && pnpm install
cd ../mastra && pnpm install
cd ../webapp && pnpm installこのプロジェクトは、mainブランチへのpush時に自動的にAWSへデプロイされます。
.github/workflows/deploy.yml: mainブランチへのpush時に自動デプロイ- 手動実行も可能(Actions > Deploy to AWS > Run workflow)
- OIDC連携により
arn:aws:iam::214794239830:role/GithubActionsDeployRoleを使用
cd cdk
pnpm cdk deploycd webapp
pnpm devcd mastra
pnpm devエージェントの無限ループを防ぐため、ツール使用回数に制限を設けています。
- デフォルト値: 50回
- 環境変数:
MAX_TOOL_CALLS - 設定場所:
cdk/lib/cdk-stack.tsのruntimeEnvironmentVariables
制限に達すると、エージェントは以下のエラーメッセージを返して処理を中断します:
ツール使用回数が制限(50回)を超えました。無限ループの可能性があるため処理を中断します。
制限値を変更するには、CDKスタックの環境変数を更新してください:
runtimeEnvironmentVariables: {
REPORT_BUCKET_NAME: reportBucket.bucketName,
MAX_TOOL_CALLS: "100", // お好みの値に変更
}デプロイ後、以下の情報が出力されます:
ReportBucketName: レポート保存用S3バケット名FrontendUrl: フロントエンドのCloudFront URL
MIT

