AIにコードを書いてもらう時代らしいので試した
AIエージェントにコードを書いてもらう!というのが、2024年の暮れくらいからツイッターのタイムライン上で賑わっていたように感じる。cursor composer、GitHub Copilot Edits、あと cline あたりがよく見る名前だっただろうか。
Roo Cline というのがなんとなく評判がいい?ような気がしたので、ちょいとお試しで触ってみた。
なぜ Roo Cline か? → 無料で試せそうだったから
Cline にはいくらか亜種が存在する。元祖を Cline として、Roo Cline とか Recline とかっていう似たような名前のツールがいくらかある。Cline をカスタマイズするにはフォークするしかなかった、というのが背景にあるらしい。
で、この Cline はなんらかの言語モデルの API を叩いて動作する。OpenAI や Gemini みたいなものの API を叩いてもらう構図なのだが、なので基本的には従量課金という話になる。なんだけども、GitHub Copilot の機能を使って動かすこともできるらしく、つまり GitHub Copilot の契約があれば定額で動かすことができるっていう話らしい。定額?ならば試してみよう!ということで手を出してみたのであった。
ちなみに、2025年1月前半の時点では Roo Cline っていうのと Recline っていうのが GitHub Copilot の機能で動かすことができる Cline であるらしい (たぶん。pankona 調査)。
ファーストインプレッション:大変おもしろい
Roo Cline の導入は VSCode のプラグインを入れるだけなので一瞬で済む。簡単。GitHub Copilot の機能で Roo Cline を動かそうという場合には、おそらく GitHub Copilot のプラグインあたりも必要なんだと思われる。
モデルとしては gpt-4o であるとか claude sonnet 3.5 であるとかいくらか選択が可能。sonnet 3.5 を選び、さっそくメンテが滞っていた hashira を持ち出して「このリポジトリでは Go のバージョンが古いみたいなのでできるだけ最新にしてくれたまえ。さて君にできるかな?AI の力を見せてごらんよ」みたいなことをお願いしてみた。
すると go.mod の中身を確認し始めた。go1.20 ですねーみたいなことを認識してくれて、その後は go.1.21 に書き換えてくれた。Task Complete! じゃないんだよ。さっきは煽ってごめんね、真面目にやってください。最新は go1.23.5 です。頼みます。
せっかくなので「最新は go1.23.5 です。更新したらテストが通るかどうかも確認してください。大丈夫そうだったらブランチを切ってコミットしてプッシュまでしてください。gh コマンドを使ってプルリクも作ってください」と一息にお願いしてみた。
すると
- 先ほど同様にファイルの中身を確認し、
- go.mod を go1.23.5 に書き換えて (ここは
go mod tidy
コマンドとかを使わずにいきなり書き換えていた。まあいいんだけど)、 - sdk をダウンロードして然るべき場所に展開し、
- go version で現在の Go コンパイラの版を確認し、
- go test を実行し、
- テストがパスすることを確認し、
- ブランチを切り、コミットを適当に積み、ブランチにプッシュし、プルリクを作る
- プルリクの URL はこれです、というところで Task Complete
こんなふうに作業をしてくれた。なんかすげえじゃん。差分はたった一行のプルリクだけども、結構いろいろやってもらえた感じがした。ありがとう、Roo Cline (その後 CI が通らないことが分かったので追加で色々直してもらえた。ちゃんとすごかった)。
自分は Roo Cline が作業をしている様をずっと眺めているだけだった。洗濯機が回っているのを延々と眺めていた小学校の頃の自分をちょっと思い出した。
他のモデルはなんかいまいち
で、遊び続けていると次第にレートリミットだってことで動かなくなってしまった。おもちゃを取り上げられたような気分だ。ということで sonnet 3.5 以外のモデルに切り替えて引き続き遊んでみたのだが、これがなかなか微妙である。同じファイルの中身の確認をし続けたり、まるであさっての方向の作業をして Task Complete! になってしまったり、まともに動かないという印象をもった。定額使いたい放題ではこのへんが限界か。
ってことで OpenAI に課金して OpenAI の API も試してみた。しかしこれもまあまあ微妙で、先述の sonnet 3.5 のほうがまともに動いてるのではないかっていう気がした。gpt-4o は1時間くらい作業して1,000円以上のコストになってしまったし、gpt-4o-mini あたりは安いんだけど何も進捗を出せずに一処をうろうろしているだけみたいなこともあった。わざと遠回りするタクシー運転手みたいなやつだなと思った。
gemini もちょっと試したんだけど、OpenAI の gpt-4o あたりとあんまり差がないようにも感じた。ある筋の話によると、gemini は食わせられるコンテキストが大きくて「鍛える」ことができるらしい。もしかしたら使いようによってはもっと強いやつなのかもしれないが、ちろっと触った範囲ではよくわからなかった。
sonnet 3.5 しか勝たんのか → そう
やっぱり sonnet 3.5 なのか、ということで Anthropic にも課金して sonnet 3.5 を引き続き試してみた。今度は従量課金だ。レートリミットになることもあるまい。ということでしばらく遊んでみたところ、やっぱりこれがもっともまともに動くという気がした。ちゃんと「わかってる」コードを書いてくる。多少複雑でも延々と動かしていると次第にゴールに辿り着く。しかも gpt-4o よりちょっと安いか?
定額使いたい放題とはなんだったのか
ということで定額使いたい放題を試すために Roo Cline をいじってみたのだが、気づいたらクレカ片手にあっちこっち課金して回っていた。いいんだ、楽しかったからいいんだ。そんでコードを書くならば claude sonnet 3.5 を使うのがいったん強そうだよ、っていうのが定性的ではあるが今回の知見。
いやしかし今後の俺達はどうなるのか
この手の AI エージェントと呼ばれるツールはこの度始めて触ったのであるが、今後のコーディングのありようを考えさせられるツールであるな。ソフトウェアエンジニアがまったく要らなくなるとまではまだ思わないが、仕事のあり方は GitHub Copilot 登場のときのそれよりもだいぶ変わるんじゃないかという気がした。「人が書いて人がレビューして」みたいな感じではなく、「AIに書かせて人がレビューして」っていうのがもしかしたら主流になるのかもしれんなーと。SIer じみた感じになっていくのかもしれない。