Cline＋Amazon Bedrock(Claude)で”国内要件”でもAIエージェントを諦めない

NTTテクノクロス株式会社の渡邉洋平です。

今回はClineとClaudeの連携をAnazon Bedrockで試していきます。Clineの記事はいくつかありますが、今回はAWSユーザをスコープにした記事です。

## Cline？

> Meet Cline, an AI assistant that can use your CLI aNd Editor.

https://github.com/cline/cline


Clineは開発者用のAIアシスタントツール。VSCodeなどにプラグインとして導入することで、コーディングの強力な相棒になってくれる。Cursor無し、特別なライセンス無しでもVSCodeでAIチャットできるぞ、といったプロダクト。

ちなみにCursorとは競合にも見えるが、実際は併用できるらしい。筆者は試せていないが、Claudeの`Computer Use`にも対応している。


https://github.com/cline/cline?tab=readme-ov-file#use-the-browser

## Clineの特徴

Clineを介して指示すると、環境のコンテキストの読み取り、コード生成・更新、実行・結果確認、バグ取りまでのサイクルを自動で提案してくれる。ファイル書きこみやコマンド実行など利用者の判断が居るところだけ承諾を求められ、ボタンを押すだけでコーディングが進む体験を得られる。

性能に関しては、競合？するプロダクトであるCursorに詳しい方も一目置いているようだ。

https://x.com/kinopee_ai/status/1861324951938310223


ClineはOSSであり、LLM APIをリージョン単位で指定できるため、”AIアシスタントツールのLLM APIが、ブラックボックスであって欲しくない”場合にも活躍するだろう。


### 1. 多様なLLM API接続

旧`Claude Dev`という名前からしてClaude前提のプロダクトにも見えるが、現時点では図のように主要LLM APIでも動くことがわかる。

![スクリーンショット 2024-11-14 111418.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/2b63a08f-5d4f-e9e3-0d8a-a427c1a460cc.png)

Ollamaが選べるので、ローカルLLMの選択肢があるのも良さそう。

### 2. LLM APIを、リージョン指定で設定可能

例えばビジネスルール上「国外にデータを送信してはいけない」という要件がある場合、APIのリージョンを固定できるのは強力だ。

例えば、Amazon Q DeveloperではUSリージョンに保持されることが明言されている。

> Regardless of where you use Amazon Q Developer, data is sent to and stored in an AWS Region in the US. 

https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/regions.html

※GitHub Copilotの同様の記述は見つけられなかった。

### 3. (Claudeの場合)日本語チャットも可能

「裏でLLM APIを叩いているだけ」ということは、Claude3系の多言語対応をそのまま活用できる点が魅力だ。つまり、あまり考えずに日本語でやり取りできる。もちろんプロンプトは英語で書くのが一番強力だが、日常使いで日本語クエリを投げられるのは大きい。


## Cline＋Bedrock

AWSユーザとしてみたときに採用の敷居はかなり低く、基本的にIAMの権限をマシンに与えれば、ライセンス購入なしで利用始められるのが良さそう。

Cloud9やSageMaker StudioなどのIAM Role付きWeb IDEと組み合わせることで、爆速でAIエージェント入りの開発環境を整備できるのもいい。

また前述の通り「国内要件」も満たしやすく、エンタープライズでも使い始めやすい。

## 導入方法

今回は簡単に試せる`SageMaker Studio Code Editor` + `Amazon Bedrock`構成を試す。

### 0. SageMaker Studio Code Editor

この準備手順は本質ではないので、以下の手順などでCode Editorが起動している前提とする。

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

### 1. Install

ClineはVS Code Extensionとして提供されているので、このように「cline」と検索窓で調べてinstallボタンを押す。

![スクリーンショット 2024-11-14 010630.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/977e96fc-ff7e-c714-1600-b793c974caa7.png)

導入すると左のメニューにロボットのアイコンが登録される。

![スクリーンショット 2024-11-14 011631.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/e3f055c3-d0bf-0a96-fb18-880294130f9c.png)


### 2. Setting

このような形でAWS RegionとModelを指定する。

![スクリーンショット 2024-11-14 011843.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/f8316333-bd89-77c0-4143-0261bc485f40.png)


#### Credential

設定欄のAccesskey/Secret Keyの入力が必須な雰囲気だが、実際はなくても動く。たとえばCode EditorにIAM Roleが紐づいていればOK。一般的なAWS SDKと同様に扱える。

※具体的にはこの辺が根拠

https://github.com/cline/cline/blob/0d256239f37a556ec7230da4e4f217c2c90dcd3c/src/api/providers/bedrock.ts#L15-L16

## Usage

せっかくなのでClineを動かす雰囲気を紹介する。

今回はAWS料金を通知するサーバレスのシステムを素朴に依頼する。

![スクリーンショット 2024-11-14 140602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/85e7740e-0f95-3041-c5a1-fd553359e7c0.png)

![スクリーンショット 2024-11-14 141018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/5e38b0fb-0147-6d36-4425-921b6d552232.png)

いったん完了したのだが、デプロイ時に失敗したのでエラーメッセージを投げ込んで継続する。

![スクリーンショット 2024-11-14 141111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/db35adea-ce60-4f32-2b11-686962aa5e7e.png)

完成。`npx cdk deploy`も成功していい感じ。

![スクリーンショット 2024-11-14 142242.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/5d2bcfce-faf7-4b32-7fc7-0ebbf2b70777.png)



## 課題

- Chat経由のエージェント特化のプロダクトなので、tab補完や指定範囲のコードに操作を加える、的な操作は期待できない。

- APIコストがなかなか高いのは気になっている。例えば先ほどのやり取りも諸々併せて`$1.5`相当が発生した。

![スクリーンショット 2024-11-14 143749.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528454/cd9916b9-93d4-51e9-4240-e3af0c7faaf1.png)


一番性能が出るのはClaude 3.5 Sonnetだが、BedrockだとPromptキャッシュが未対応なためか、あっという間に$1が飛んでしまう。3.0 Haikuだと大幅にコストは下がるものの、性能が気になる。3.5 Sonnet比でコスト1/3くらいの3.5 Haikuが国内に来てくれると、かなり現実的に利用しやすくなるだろう。
とはいえ人件費に比べればたかが知れてるので「必殺技」として使うのにも効果的だ。

## まとめ

Cline＋Claude＋Bedrockの特徴と使用感が見えてきた。使用感もいいので、常用する予算がなくとも「必殺技」としてエディタに忍ばせておくと効果的だろう。しばらくお世話になりそうだ。