Amazon Q CLI でゲームを作って特製 T シャツがほしかった（期間延長したってよ）

## はじめに
みなさん、こんにちは。ソリューションアーキテクトの[いなりく](https://twitter.com/inada_riku)です。
Amazon Q Developer CLI を使ってゲームを作るとなんと Amazon Q T シャツが貰えるキャンペーンをやっています。

イベントについて興味がある方はぜひこちらの記事を読んでいただけると嬉しいです。

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

英語版が気になる方はこちらをぜひ読んでください。

https://community.aws/content/2xIoduO0xhkhUApQpVUIqBFGmAc/build-games-with-amazon-q-cli-and-score-a-t-shirt

自分も T シャツを着て [AWS Summit Japan](https://aws.amazon.com/jp/summits/japan/) に行きたい！と思ったのも束の間、こちらの記載があって、泣き崩れました。

> Amazon の従業員は参加できますか？ : キャンペーンに直接関わる主催者または関連会社の従業員は参加資格がありません。

ただ、Amazon Q Developer CLI の良さはぜひお伝えしたいと思い、せっかくなのでこちらの記事で僕の悲しみを成仏することにします。

ただ、単にチャレンジするだけだと面白くないので、先月リリースされた [Strands Agents](https://strandsagents.com/latest/) にチャレンジしてみることとします。

https://aws.amazon.com/jp/blogs/news/introducing-strands-agents-an-open-source-ai-agents-sdk/

ちなみに Strands Agents に関しては、みのるんさん記事を読んで 5 分しか触ってないので、ほぼ知識がないと思っていただければと思います。

https://qiita.com/minorun365/items/dd05a3e4938482ac6055

## 作ったアプリ

Amazon Q Developer CLI にお願いして、Strands Agent を使った AI クイズマスターアプリを作ってみました。作った過程が気になる方は続きを読んでいいただけると幸いです。

https://x.com/inada_riku/status/1932106076763369667

## 事前準備

アカウントの準備や、Amazon Q Developer の初期設定については [こちら](https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/) をご参照ください。

## やってみた

まず [Amazon Q Developer CLI が先週 Claude Sonnet 4 を使えるようになった](https://aws.amazon.com/blogs/devops/access-claude-sonnet-4-in-amazon-q-developer-cli/)ので、Claude 4 Sonnet にしておきます。

```bash
> /model

? Select a model for this chat session ›
❯ claude-4-sonnet (active)
  claude-3.7-sonnet
  claude-3.5-sonnet
```

次に、`~/.aws/amazonq/mcp.json` に [Strands Agents MCP Server](https://github.com/strands-agents/mcp-server) を設定します。

これで、5 分しか触ったことがない私でも Strands Agent を完全に理解した気分になれます。

```json
{
    "strands": {
      "command": "uvx",
      "args": [
        "strands-agents-mcp-server"
      ],
      "autoApprove": [
        "quickstart",
        "model_providers",
        "agent_tools"
      ]
    }
}

```

Strands Agent を完全に理解したので、次に作るゲームすらも Amazon Q Developer CLI に考えてもらいましょう。とりあえず素直に全部お願いします。

```
Strands Agent を使ったゲームを考えたいです。初めて使うのでまずは調査からしてください。その後に、面白いネタを３つ考えてください。
```

こんな雑にお願いしても Amazon Q Developer はちゃんと答えてくれました。(内容の確からしさは保証しません。)

今回は一番 Strands Agent が使われているのことがイメージ付きやすい AI クイズマスターを作ってみることにします。

```
素晴らしい！Strands Agent SDK について詳しく調査できました。これらの情報を基に、面白いゲームのアイデアを3 つ考えてみます。

## Strands SDK調査結果まとめ

Strands Agents SDKは、AIエージェントを構築するためのPython SDKです。主な特徴：

• **エージェント**: モデル、ツール、プロンプトで定義
• **モデル**: Amazon Bedrock、Anthropic、LiteLLM、Ollama等をサポート
• **ツール**: 外部システムとの連携、データアクセス、環境操作が可能
• **豊富な組み込みツール**: ファイル操作、シェル実行、Python REPL、画像生成、AWS
連携など

### 1. 🎲 AIクイズマスター
コンセプト: AIが出題者となって、様々なジャンルのクイズを出題するゲーム

必要なツール:
• calculator - スコア計算
• current_time - 制限時間管理
• file_write - スコア記録

実装の簡単さ:
• エージェントのプロンプトでクイズ生成
• 基本的な入出力のみ
• 複雑なゲームロジック不要

python
from strands import Agent
from strands_tools import calculator, current_time, file_write

agent = Agent(
    tools=[calculator, current_time, file_write],
    system_prompt="あなたはクイズマスターです。様々なジャンルから問題を出題し、正解率を計算してください。"
)


### 2. 🎨 AIしりとり & 絵描きゲーム
コンセプト: AIとしりとりをしながら、単語に関連する絵をAIが描いてくれるゲーム

必要なツール:
• generate_image - 単語の絵を生成
• file_write - ゲーム履歴保存

実装の簡単さ:
• しりとりのルールは簡単
• 画像生成で視覚的に楽しい
• 状態管理は最後の文字だけ

python
from strands import Agent
from strands_tools import generate_image, file_write

agent = Agent(
    tools=[generate_image, file_write],
    system_prompt="しりとりゲームをしましょう。あなたが答えた単語の絵も描いてください。"
)


### 3. 🔮 AI占い師チャットボット
コンセプト: AIが占い師になりきって、ユーザーの質問に占いで答えるゲーム

必要なツール:
• current_time - 今日の日付で運勢変化
• python_repl - ランダム要素生成
• file_write - 占い結果記録

実装の簡単さ:
• チャットベースで簡単
• ランダム要素で毎回違う結果
• 複雑なゲームシステム不要

python
from strands import Agent
from strands_tools import current_time, python_repl, file_write

agent = Agent(
    tools=[current_time, python_repl, file_write],
    system_prompt="あなたは神秘的な占い師です。タロット、星座、数秘術を使って占いをしてください。"
)
```

Amplify Hosting でホストすることまで考えましたが、気力がなかったので弱気なプロンプトを投げて作成を依頼しました。すると、なんと一発で AI クイズマスターを作ってくれました！

Claude 3.7 Sonnet でも試したことがありましたが、Claude Sonnet 4 のパワーアップを感じましたので、ぜひまだモデルを変えて試したことがない方はモデルを変えてチャレンジしてください。

```
> では AI クイズマスターを作ってください。ローカルで動くものがいいです。
```

最後に、[GitHub MCP Server](https://github.com/github/github-mcp-server) を登録して、作ったコードを公開しようかと思いましたが、あまり有用なコードでもないかと思ったので辞めておきます（笑）

## まとめ

今回は Amazon Q T シャツキャンペーンに乗じて、[Strands Agent MCP Server](https://github.com/strands-agents/mcp-server) を使ったアプリ作成に挑戦してみました。従来は、新しいフレームワークが出てくるとやってみた記事を見て、手探りで触ってみる (時々再現できずに挫折する) ことが多かったですが、ドキュメント用の MCP Server があると、まずは動くものを一気に作って、そこから動作を勉強してみる体験が可能になったので、また新たな学習体験だな〜と思いました。今後もドキュメント用の MCP Server が増えていくことを楽しみにしています。

ぜひみなさんもこのキャンペーンにチャレンジして T シャツをゲットしましょう！