AWS Bedrock AgentCore Runtime上で動作するPowerPoint生成・編集AIエージェントです。Claude Sonnet 4.5を使用して、日本語で対話しながらプレゼンテーションファイルを作成・編集できます。
- 🤖 Claude Sonnet 4.5: 最新のAIモデルで高品質な内容生成
- 📊 新規作成: テキストから新しいプレゼンテーションを生成
- ✏️ テンプレート編集: 既存のPPTXファイルを編集・カスタマイズ
- ☁️ S3統合: 自動的にS3にアップロード・ダウンロード
- 🐳 コンテナ: AWS Lambda Python 3.13 ARM64環境で実行
User → AWS Bedrock AgentCore Runtime → Lambda Container (Python 3.13)
├── Claude Sonnet 4.5 (推論)
├── pptxgenjs (新規作成)
├── python-pptx (編集)
└── S3 (ファイル保存)
- AWS CLI設定済み
- AWS CDK v2インストール済み
- Python 3.11以上
- Node.js 16以上
- Docker Desktop(ローカルビルド/テスト用)
git clone https://github.com/dera-p/test_strands_agent.git
cd test_strands_agentpython3 -m venv .venv
source .venv/bin/activate # Windowsの場合: .venv\Scripts\activate# CDK用
pip install -r requirements-cdk.txt
# ローカル開発用(オプション)
python local/setup_pptx_env.py# CDK Bootstrap(初回のみ)
cdk bootstrap
# デプロイ
cdk deploy
# 出力からRuntime ARNとS3バケット名を確認デプロイ後、以下の情報が出力されます:
RuntimeArn: AgentCore RuntimeのARNOutputBucketName: PPTX出力用S3バケット名
# テスト実行に必要
export AGENT_RUNTIME_ARN="arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/YOUR_RUNTIME"
export AWS_REGION="ap-northeast-1"新規プレゼンテーション作成:
cd tests
python test_agentcore.py- S3にテンプレートをアップロード:
aws s3 cp your_template.pptx s3://YOUR_BUCKET/templates/business_template.pptx- テンプレート編集テストを実行:
python tests/test_template_agentcore.py# ローカルでエージェントを直接実行
python local/my_pptx_agent.py詳細はlocal/README.mdを参照してください。
.
├── agent/ # エージェントモジュール
├── agentskills/ # スキル定義フレームワーク
├── docker/ # Dockerファイル
│ └── Dockerfile.agentcore # AgentCore用Dockerfile
├── infra/ # AWS CDKインフラコード
│ └── stack.py # CloudFormationスタック定義
├── local/ # ローカル開発ツール
│ ├── my_pptx_agent.py # ローカル実行用スクリプト
│ └── setup_pptx_env.py # 環境セットアップ
├── skills/ # スキル実装
│ └── pptx/ # PowerPointスキル
│ ├── scripts/ # JS/Pythonスクリプト
│ │ ├── create_ppt.js # 新規作成
│ │ ├── inventory.py # テキスト抽出
│ │ └── replace.py # テキスト置換
│ └── ooxml/ # OOXML仕様
├── tests/ # テストスクリプト
├── utils/ # ユーティリティ
├── agentcore_entrypoint.py # エントリポイント
├── my_tools.py # ツール実装
└── app.py # CDKアプリ
プロンプトを送信すると、AIが内容を生成してPowerPointファイルを作成します:
prompt = "富士山についてのプレゼンテーションを3スライドで作成してください"既存のPPTXファイルをベースに、特定の箇所だけを編集:
inventory.py: テンプレートのテキスト要素を全て抽出replace.py: JSONで指定した箇所のテキストを置換- その他のスライドは元のまま保持
execute_shell_command: シェルコマンド実行upload_to_s3: S3へファイルアップロードdownload_from_s3: S3からファイルダウンロードsearch_web: Web検索(情報収集)
Playwright Chromiumのインストールでエラーが出る場合、docker/Dockerfile.agentcoreの該当行がコメントアウトされていることを確認してください(現在のPPTX機能では不要)。
IAMロールに適切なS3権限が付与されているか確認してください。CDKスタックで自動設定されます。
AWS Bedrockコンソールで、使用するモデル(Claude Sonnet 4.5等)へのアクセスを有効化してください。
このプロジェクトは実験的なものです。
Issue、Pull Requestを歓迎します。