AIエージェント拡張機能Clineがすごすぎたのでレビュー


# [Cline](https://github.com/cline/cline)とは？
VSCodeなどのIDEで使用することができるオープンソースのAIエージェント拡張機能です。
コードの記述はもちろんのこと、コマンドの入力、ブラウザの操作まで行ってくれるため、
開発効率をはるかに高めることが可能となっています。

:::note warn
OpenAI **API**を使用する場合はChatGPTの**Proプラン**と異なり、別途クレジットを支払う必要がありますのでご注意ください。
:::


# 対象読者
・AIエージェントに興味がある
・VSCodeを使用している
・ChatGPTをよく使っている

# セットアップ
## Cline拡張機能の追加
Cline (prev. Claude Dev)をインストールします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/0b3066b3-0cd2-5ca1-1c42-68ab8a026023.png)





## キーとモデルを設定
左のタブからClineを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/524e6018-6f09-e97d-7c45-13153e493247.png)

<br>
OpenAIを選択し、APIキーを入力しモデルを設定します。

![{2846417A-5DAC-4183-97EB-97B8EEF0F639}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/2c70f0b2-5a99-906f-35f8-4360582155d9.png)




以上で設定は完了です、続いて使い方に移ります。

# 使い方
## 権限の設定
Auto-approveのテキストをクリックして様々な権限の設定が可能です。
今回は全て許可する設定にしています。

![{579224DB-5EE5-4B97-AC06-2D337C42E21D}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/52b30e68-b52d-11c4-1ca8-c929ed6c4523.png)

## 認識させるファイルやディレクトリを追加する
入力欄に"@"を入力することでファイルやディレクトリなどを追加することが可能です。
これにより作業をさせる場所を具体的に指定することができます。

![{7ABD153E-1E92-42F3-826F-03B0CA043133}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/68b1b219-3f45-e9ad-9edb-d12e9a19ffba.png)

## 指示を出す

入力欄から指示を出すことができます、
今回はNextJSで簡単なコンポーネントを作成させた例です。

![{276A8F44-4CE8-474E-97DF-B9BF78588D6C}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/44cb4f73-b225-49de-d19a-205c49dba6ec.png)

上からタスク内容、APIからのレスポンスと使用料金、Clineが行ったファイルなどへの作業内容が表示されています。（注：APIリクエストの度にチャージしたクレジットを使用します）

完了した時点でこのようにコストやトークン数が表示されます。

![{22847BB9-A28D-4737-A4F6-B68944047521}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/c4525f7f-f423-8422-7e56-c55461c26871.png)

今までChatGPTなどでは1ステップごとに追加の指示などが必要でしたが、Clineの場合は指示を完了するまで自動で作業を継続してくれます。

## 作業を巻き戻す
Clineの便利な機能として、特定の段階までファイルの変更内容とタスクの状況を巻き戻せる機能があります。

まずはAIが加えた変更のログに対してRestoreを選択してから、

![{01C7455B-5609-4C24-85CF-928E3F801DBF}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/86f3fac8-5d40-00aa-cfd7-591016b78618.png)

ファイルの状況(Workspace)だけを戻すのか、タスクの状況も戻すのかなどを選択することができます。

![{DD11AD94-016E-4EFD-8C9A-10BD01B04083}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/e8a84279-5189-9ad6-ea7b-88b3c9807912.png)

これにより、想定外の変更が発生した場合でも簡単に巻き戻すことが可能です。

## 複雑なタスクを解決させる
例えば、わざと問題を20個近く発生させたファイルがあったとします。

![{9F0B88DB-8822-493F-ABA4-5943B95C7BC2}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/ba6fdb74-9037-c416-b474-eb187f48518c.png)

以下のような命令を与えてみます。
```
@/src/app/page.tsx 
このファイルの問題をすべて解決してください
動作確認までお願いします。
```

数分間APIへのリクエストとファイルの変更を繰り返したのち、問題を全て解決しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/4b6aed99-82e7-ac68-ab64-7dc239dc3cce.png)

動作確認を依頼した文も覚えており、コマンドを実行しています。

![{60E9A4E8-05D1-4ED7-AC40-D546FE1D5742}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/bf667ca6-40ac-5340-e743-6e43924469e8.png)

既に開発サーバーを起動していたためエラーとなりますがエラー内容も把握しており、原因を報告してくれます。

![{F5D3CEFF-C348-47D3-8674-C9DEA8F35B82}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/71405ffb-dafe-3d65-d7e0-8a9189f82763.png)

手動で開発サーバーを停止してから、再開すると

![{F1E36778-8842-405B-927B-098F3F7522DF}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/ca35441c-8ac9-56ae-90a9-ac480680f851.png)

タスクを完了することができました。
このように、Clineでは複雑な問題も自律的に解決できるようです。

## タスク完了時に通知

タスクを依頼してからブラウザなどを操作していると、完了時に通知をしてくれます。

![{529A1F8E-4961-4640-87B1-18345BAF00BB}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/f3499490-28ad-0223-0ba1-95af725873d5.png)

まるで人にタスクを依頼したような気分になります。
続いてレビューに移ります。

# 良いと感じた点
## 指示を与える煩わしさが激減する
今まではChatGPTなどの補助によって問題を解決したいとき、
何度もコピペを繰り返す必要があったり追加の指示が必要でした。

しかしエージェントはより大きなタスクをまとめてこなしてくれるため、煩わしさが激減したと感じました。

## 制御しやすい
Clineに関しては具体的に指示を出したり簡単に巻き戻しができるため、開発の状況を制御しやすい点は評価できると思います。

## 日本語での入力に対応している
OpenAIのAPIを使用する場合、日本語での指示に対応している点はとても良いと思いました。
また出力は基本的に英語ですが、指示をすれば日本語での報告も可能です。

![{CE0B216F-B1A4-4A65-B7E8-A91678901B7D}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/faff449e-8e25-611b-4746-b9a3df9bcb9b.png)


# いまいちだと感じた点
## コストがかかる
唯一欠点があるとすれば現時点では精度の高いAIを使う場合コストがかかる点です。

今回の例で紹介した20個の構文エラーをOpenAI APIで解決した場合、
日本円で100円ほどのコストが発生しており、簡単なタスクの場合でも毎回数十円発生しています。

個人的には金額以上の価値があると感じていますが、ChatGPTなどの価格と比較するとコストが高いことは否めないでしょう。




# まとめ
トークンの上限がある以上、大規模な開発ができるレベルではありませんが個人開発レベルで問題を早く解決したいときには選択肢の一つになり得ると感じました。しばらく使用して気づきがあれば更新したいと思います。

ご一読いただきありがとうございました。



# 追記
数日間使用したため気づいたことを追記しました。

## モデルはClineの推奨を使用することで精度が高まりコストを抑えられる

OpenAIのAPIではコストが気になってきたので、モデルをClaude 3.5 Sonnetに乗り換えたところ指示ごとのコストをかなり抑えられるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/f99949b5-ee74-7a96-5a07-a368b31c513f.png)

解決までの速度も向上しているため、現在はClaude 3.5 Sonnetを使用しています。

## 確認させるファイルを最小限にすることで精度を高める
最初のレビュー時はPCのディレクトリ読み取りを許可していましたが、
現在はファイルやディレクトリの読み取りを解除したうえで

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/44d9ee5e-6841-9243-86de-8e6de10465fe.png)

作業ファイルを具体的に説明して指示を出すようにしています。

![{CD49C5B9-B1E8-456A-BD55-854244A974B1}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/818d2415-7dac-ba19-b208-42815f3e47da.png)

これらを合わせることでOpenAIのAPIでは毎回平均0.5ドルほど請求されていたところ、0.03ドルなどで使用できるようになりました。

## エージェントの変更内容を簡単に確認するテクニック

コードを編集させると、変更点の確認が大変という課題があります。
そこで、あらかじめコミットをして変更がない状態にしてから

![{21A982AF-CC25-4341-AAD1-E6CFBBEEB41C}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/bf9d7577-cca1-eb81-f3e1-acca4e69c7e3.png)

作業指示を出すことで

![{9D7FCBA7-3FD4-446E-B840-7E1115529A20}.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3840466/4341061d-90b0-81a9-8719-ccf9b7659af3.png)

エディタで変更箇所が分かるため、問題がないかを簡単に確認できます。


参考になれば幸いです。



# 参考
Cline Gitリポジトリ

https://github.com/cline/cline


OpenAI API価格

https://openai.com/api/pricing/

Anthropic API価格

https://www.anthropic.com/pricing#anthropic-api