はじめに
全賭けしろと話題のAIエージェント「Cline」。
実際に賭けてみるにしても、その実力がどの程度か分からないと判断しづらいものです。
「TODOアプリをつくって」や「ECサイトをつくって」といった単純なアプリを作っても、実力が分からない上にXの驚き屋になってしまうため、程よい規模感のアプリを作らせて、その実力を調査してみることにしました。
チケット管理システム「Trak」制作
実働5日足らずで、以下のようなNext.jsアプリを作成することができました。
(忙しい方は⇒[エンジニアのためのお仕事問題集 : 11_trak]一式無料公開しています。)
実用レベルを測定するには、ざっくりした要件から細かい画面の要望までを含むアプリを作るのが適切だと考えました。
ということで、以下のコンセプトで制作を進めてみました。
- 要件定義メモを作成
- Cline に外部設計を行わせる
- Cline が作成した外部設計を元に Cline に実装を行わせる
- 程よく実装が進んだところで本システムを利用して障害チケットを起票する
- Cline に障害チケットの対応をさせる
結果、メンバーやBPに指示出しをするよりだいぶ少ない指示で ほぼすべてのドキュメントやソースコードを Cline によって作成することができました。
通常であれば休日だけでなく平日の夜などに消えゆくモチベーションと戦いながら数ヶ月かけてどうにかするプロジェクトですが、基本土曜日の作業にてひと月足らずで形にすることができました。
わたしがやったことと言えば、「こうしてほしい」と指示を出して Approve ボタンを押して成果物を確認したこと。
たまに、デバッグしたりリファクタリングの指示をしたりしたぐらいでした。
プレイングマネジャーの仕事そのものでした。
AIエージェントClineを触ってみて
つよいところ、よわいところを書いておきます。
Cline のつよいところ
- 設計から実装まで簡単な指示でだいぶ汲み取ってやってくれる
- 通じやすいところ、通じにくいところはあるがやってると分かってくる
- リーダーやPMなど指示を出しをしていた人には使いやすいと思う
- 人類には不可能な物量・速度
- コードの品質はビジネスプログラマーよりは遥かに高い
Cline のよわいところ
- 手癖で書く
- こっそり書き直したところを、豪快に元に戻される
- こだわりの css が消されるのは悲しい
- 部分的には Copilot を使った方が、結果が安定する
- 大きなファイルを読むのは苦手 (これは人間もですね)
- すごい速さで rate limit (単位時間あたり利用制限)が近づく恐怖
- 人類の技術負債は Cline にとっても負債
- マメにリファクタリングした方がよさそう
- リファクタリングを能動的にしない
- マメに指示してあげたり手伝って上げたりしないとダメ
- リファクタリングしておかないと障害が起きた時に原因の特定ができなくなる
- 指示側が妥当なデザインパターンや設計を知っていた方がよさそう
- 実際のところは画面が見えていない
- 直っていないのに「直りました」と言われる
- 画面の微調整は自分でやる方が楽
- UI系の指示を日本語で指示するのは高難易度 (これはClineに限らずですね)
- 人間がやりがちな障害を埋めてくる
- 例) ドラッグ&ドロップで並べ替え時、下に移動する時だけ挿入先が一つずれる
- 例) setState が非同期更新と気づかず、無限に間違ったアプローチでバグ修正をしようとする
効率的な作業に向けて
- 仕様追加時は、仕様メモを書いて Cline に仕上げをやらせる
- Cline の理解度を確認
- Cline 作業時のリファレンス作成
- マメにコミットをしよう
- 勢いよく書き直される
- 動いてたところが動かなくなることもしばしばなので元に戻せるように
- マメにソース整理をしよう
- 新機能追加前にリファクタリング
- リファクタリングしていると機能追加の成功率が爆上がりする
- ついでにソースを学ぼう
- やりたいことに対してベストプラクティスなソース
- 知らない機能が使われていたら積極的に調べよう
まとめ
Trak アプリプロジェクトは着想からおよそ形になるまでだいたい実働5日でした。
Copilt の rate limit がなければもっと早くできたかもしれません。
これは、『人類には不可能なレベルの驚異的な結果』 と言えるでしょう。
ただ、当面は、外部設計の妥当性を確認できるだけの外部設計力と、クリーンなコードをキープして技術負債を産まないだけの設計力とリファクタリング力および複雑な障害のトラブルシューティングができるだけの力を持った人間がいなければ、AIはその力のすべてを発揮できないのかなとも感じました。
無限に試行させれば解決するかもしれませんが、期日までに確実にモノをつくりたいのであれば、「まだ」人類がやるべきことはありそうです。
いずれにしても、AIエージェント Cline は 『全賭けと言うのかは分かりませんが、無ければ暮らせないレベルにはつよい』 と感じましたので、そのつよさは実感しておいた方がよいと思いました。
もしよろしければ、本稿で作成したアプリもご利用頂ければ幸いです。
途中でプロンプトの記録やチケット作成を省略しているため、すべてのチケットやプロンプトは含まれていませんが、プロンプトや作成したドキュメント、ソースコードは以下のリポジトリですべて無料公開しています。