Devinがすごかったのでみなさまに紹介したい。
Devinとは
Devinは、米国のAIスタートアップCognition Labsが発表した、要件定義から設計、コーディング、デバッグ、デプロイまで、ソフトウェア開発工程を自律的に遂行できる全自動AIエンジニアです。従来のコード補完ツールとは異なり、自然言語で指示するだけで、独自のシェル、エディタ、ブラウザなどの開発ツールを駆使し、人間のエンジニアが行うような一連の作業を自ら計画・実行する点が特徴です。これにより、開発のスピードや効率が飛躍的に向上し、今後のソフトウェア開発の未来を大きく変革する可能性が期待されています。
(https://www.sbbit.jp/article/cont1/140270 参照しつつChatGPTで生成)
やる気あって無限に働く中堅エンジニア
Devin使ってみてですが、雰囲気的には「やる気あって無限に働く中堅エンジニア」という感じです。すでに動いている開発に参画することもできるでしょうし、新しく始めるプロジェクトでも活用すると思いました。
ということで、使用感や嬉しいところ気になるところをメモっておこうと思います。
実際に試した内容
今回は前から作りたいと思っていた検索評価のPythonパッケージをDevinと一緒に作ってみました。
1. 仕様の明確化
ここはDevin関係ないですが、まずはChatGPTで要件定義を済ませて、これから作るパッケージの仕様を明確化します。コード品質上げるのにも重要ですね。初期のフワッとしたコードベースもついでにo1とかo3とか使って書いてもらい、リポジトリに置いておきました。
2. 仕様をDevinに投げる
初期のセットアップ等はこの辺の記事を参考にしながら済ませつつ、以下みたいな感じで初期のプロンプトをDevinに投げます(OSSではないですが...)。


3. 今後の計画について尋ねられるので、LGTMする
ある程度検討ができたら、今後の進め方についてDevinが聞いてくるので進める指示を出す(なんか英語になっている気がするが、気にしない。)。


4. PRを作ってくれるので、PR上でやり取りしながら修正してもらう
ここの体験がめちゃくちゃ良かったです。
自動的にPRを作ってくれるので、私がやることはただコードをレビューして指摘するだけ。

こんなコメント書いたら、修正PRを出してくれるのでそれを見て必要あればコメントして、良さそうであればそれに対してLGTMするだけ。
実行中の様子もこんな感じのダッシュボードで可視化してくれるので、Agentの透明性も高いです。

5. 4を繰り返してタスク完了まで導いてあげる
上記のようなPRでのやり取りを何度か繰り返していると、当初作りたかったものがだいたい完成します。
実装フェーズで困ったら以下のように明確化するための質問をしてくれます。可愛いですね。

これらの質問に答えると、それらを満たしてくれるPR作ってくれるので後はレビューしてやり取りしてマージするだけです。
嬉しさ
指示を求める粒度感が良い:結構大きめの要件を渡すと、それをいくつかのタスクに分割した上で少しずつ確認して進めていくことができます。
Agentからやる気を感じる:Slack連携をすることで、Agentに対して人格っぽいものを感じます。リアルな開発現場でもよくありますが、やる気ある人にせっつかれるとプロジェクトは進みがちです。
開発のスピードが爆速になる:言わずもがな人間が書くより全然早いです。たぶんDevinのキモは「書いたコードを実際に実行しながら修正することで正当性を担保しながらコーディングを進めてくれること」な気がしており、以前やっていたChatGPTが出力したコードを実行しながらちまちま修正していた作業がごっそりなくなりました。テストコードがローカルで全部一発で通るのは気持ち良すぎます。
実行時の挙動がわかりやすい:ダッシュボードで今Devinが何をやっているかが、常に可視化されています。そのため実行に関して結構透明性が高いと思いました。
ながら作業できる:読書とか別の作業しながら、Devinからメンションが来るたびに「どれどれ?」的な感じで返事を送るだけで、プロジェクトが進んでいきます。ソフトウェアエンジニアの生活が豊かになる気がする。
注意点
利用者はエンジニア:とても便利なんですが、エンジニア以外の職種のはまだ活用できないと思います。Gitflowを理解し、ある程度アーキテクチャやコードレビューできるレベルのエンジニアが想定されていると感じます。
シークレットキーの取り扱い分からん:こちらどのように管理すれば良いかがわかっていないです。個人開発とかだったらPrivateリポジトリでやり取りすれば何とかなりそうですが、それなりの規模の会社とかだとこの辺の管理を含めたベストプラクティスを作る必要がありそう。
軽く始めるには料金のハードル高い:エンジニアを雇う的な感覚と照らし合わせれば安いですが、個人で使うには月500$は高いですね。
まとめ
すごい!ただし、結構お金かかるので、私も個人契約はずっとは続けられなさそうです(何か利益を生み出す方法を考えねば・・・)。
これからDevinを始める方は以下の紹介リンクを使っていただけると、+100 ACUs ($200) が貰えます。私も嬉しいのでぜひご利用ください〜。