Amazon Q Developer IDE 拡張の新しい Agentic Coding 機能を体験する

## はじめに
Amazon Q Developer の Visual Studio Code IDE 拡張機能で新しい Agentic Coding 機能が使用できるようになりました。

https://aws.amazon.com/about-aws/whats-new/2025/05/amazon-q-developer-agentic-coding-experience-ide/

これまでも Amazon Q Developer agents for software development (/dev コマンド) を使用することで新しいコードを生成したり、コードの変更を行うことはできていましたが、新しい Agentic Coding 機能では自然言語の指示に基づくコマンドの実行などコード提案以外のアクションも実行できます。

巷で話題の Cline や Cusour などの機能に近づいたイメージです。
また Amazon Q Developer CLI では同様の機能が先行して提供されていました。

https://aws.amazon.com/jp/blogs/news/introducing-the-enhanced-command-line-interface-in-amazon-q-developer/

## 使用回数に制限はある？
Free プラン、Pro プラン ($19/月/ユーザー) ともに 2025/6/1 までは無制限で使用できるようです。Free プランにおける /dev の呼び出しは月 10 回までなのでそれと比べると太っ腹ですね。Pro プランは今後も定額無制限で利用できたらありがたいですが、今後情報がアップデートされたら追記します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/11d33092-a97c-441c-adde-487c78bd0e65.png)

https://aws.amazon.com/q/developer/pricing/?nc1=h_ls

## やってみる
### VS Code 拡張の有効化
新しい Agentic Coding は Amazon Q for VS Code のバージョン 1.63.0 以降で使用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/f8714479-ce83-43b7-b0ec-9b95eee4eac3.png)

https://marketplace.visualstudio.com/items/?itemName=AmazonWebServices.amazon-q-vscode

Builder ID を使用して Free プランで利用するか、Pro サブスクリプションに登録した IAM Identity Cetenr ユーザーでアカウントに接続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/b7dfc7ed-dc43-41e9-afeb-1a4bffc9b1b0.png)

:::note
以降の記述は Pro サブスクリプションを前提としています。Free プランの場合は一部の内容が、異なる可能性があります。
:::

アクセス許可に関する同意画面が表示されたら、内容を確認してアクセスを許可します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/bbf09598-7f84-494c-8e79-ad72d3627d36.png)


次のようなメッセージが表示されれば準備 OK です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/936c2b3d-ed91-41a4-afd5-6db635a6bc65.png)

#### 参考: 自己証明書の設定
久しぶりに拡張機能をバージョンアップして気づいたのですが、最新のバージョンでは企業内プロキシや VPN 製品の TLS 検査で自己証明書を使用している場合、Amazon Q Developer Profile の取得でエラーが発生し、拡張機能の初期化に失敗します。

拡張機能のログを確認すると以下のようなメッセージが出力されています。

```
2025-05-02 22:23:38.323 [info] [Error - 10:23:38 PM] [2025-05-02T13:23:38.321Z] Error fetching profiles from us-east-1: NetworkingError: self-signed certificate in certificate chain
2025-05-02 22:23:38.323 [info] [2025-05-02T13:23:38.321Z] Amazon Q Token Service Manager: Error updating profiles: Error: Failed to retrieve profiles from all queried regions
2025-05-02 22:23:38.324 [info] [Error - 10:23:38 PM] Error when setting Q Developer Profile to Amazon Q LSP
```

この場合、システム環境変数 `NODE_EXTRA_CA_CERTS` に自己証明書のパスを指定することでエラーを解消できます。

:::note info
Q Developer Profile は Pro サブスクリプションの使用を開始する際に作成する一連の設定です。
:::

https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/subscribe-understanding-profile.html

## SAM アプリケーションの作成
例として AWS SAM CLI でデプロイ可能な AWS SAM アプリケーションをつくってもらいます。Agentic Coding はデフォルトで有効になっているため、そのまま会話を始めるだけで OK です。

:::note
チャットパネルの下部にある `</>` アイコンをクリックすることで Agent Coding を無効にすることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/91b12c17-be33-49fd-80e4-7b5408dbe333.png)
:::

作成を依頼すると、現在のディレクトリ構造を確認し、SAM CLI によるプロジェクトの初期化を提案してくれました。ランタイムがpython3.9 なのが気になるところですが、一旦このまま進めます。Run をクリックすると実際に sam init コマンドを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/fde44805-1313-4870-9c0a-0613ca70cdf0.png)

基本的にファイルの書き込みや参照などは自動で実行され、コマンドの実行についてはユーザーの許可が求められます。拡張機能のログを確認すると、Tool Use によりこれらが動作していることも確認できます。

```
2025-05-02 23:26:36.363 [info] [2025-05-02T14:26:36.359Z] ToolUseEvent: tooluse_B5Zlgk78Q0K7BTzyxMjEqA listDirectory {
  "path": "c:\\vscode\\sam-app"
}

2025-05-02 23:26:46.646 [info] [2025-05-02T14:26:46.644Z] ToolUseEvent: tooluse_Fdf06_CkS3u4HHnHehMRPg executeBash {
  "command": "sam init --runtime python3.9 --dependency-manager ...",
  "cwd": "c:\\vscode\\sam-app",
  "explanation": "SAM CLIを使って新しいPython Hello Worldプロジェクトを初期化します"
}
```

sam init コマンド実行後、コードのカスタマイズも実施してくれています。コードの作成や変更は Undo をクリックすることで取り消すことも可能です。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/5f30a197-73ae-4b69-8306-007b7c23be0b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/13546fa4-546e-4592-b5a0-26b06a4aa115.png)

次にローカルでビルドをお願いしてみます。この環境にインストールされているのは Python 3.11 なのでビルドでエラーが発生します。Python バージョンの確認が提案されるので実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/7e884da4-3d72-4d7d-a8b3-b320f41e6d52.png)

バージョンの出力結果からエラー原因を特定し、コードの修正が行われました。再度ビルドを実行すると今度は成功しました。対応結果もサマってくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/3af5ee60-7d93-4310-9887-9139e43abc13.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/c8bc8cdd-8656-405b-aa00-bdc86861a2c3.png)

## /dev コマンドとの違い
従来から提供されていた Amazon Q Developer agents for software development (/dev) も自律的なコード作成や修正が可能ではありました。比較のため、/dev コマンドで先ほど同じプロンプトを投げてみます。

/dev で可能なのはあくまで自然言語指示とプロジェクトコンテキストによるコード作成、修正であるため、エージェントによるコマンド実行はできません。一から全部コードを書きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/bd8aa773-1a3b-4231-aa85-cca8f80034ba.png)

上述のように思考プロセスが出力される他、作成・修正されたコードは個別に受け入れるか、拒否することも選択できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/60e60910-572a-40fd-965d-7e1cc668ac37.png)

最近の多言語対応により日本語でレスポンスするようになったはずなのですが、英語で返ってきますね。あとは 1 タスクの完了に多くの時間を要してしまう (遅い) 印象があります。


## 現時点できないこと
### Web ページの参照
「@」ボタンをクリックすると Context を追加できるのですが、Web ページの URL を Context に追加することはできません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/54ad96e2-be89-4b42-a572-dcbbe42b0d3c.png)

一応聞いてみると、内容を直接入力してねと教えてくれました。ちょっと手間なケースもあるので今後に期待です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/125105/e2e0238c-72b3-42a4-b5d4-b9dfadfb388f.png)

### モデルの選択
類似ツールのように複数のモデルを切り替えて使用することはできません。Claude 3.7 Sonnet が使用されているようですが、今後 Amazon Nova Premier なども選択できるようにならないかと期待してしまいます。

以上です。
参考になれば幸いです。