Zenn
👨‍🚀

自律型AIエンジニア「Devin」の活用事例 〜1ヶ月の実践から見えた効果的な導入方法〜

2025/02/17に公開
22

はじめに

こんにちは、株式会社スマートラウンドでエンジニアをやっている渡邉です。

昨今、急速なAI技術の進化に伴い、ソフトウェア開発現場においても自律型AIツールの導入が注目されています。弊社では、世界初の完全自律型AIソフトウェアエンジニア「Devin」を社内開発ツールとして採用し、従来の開発プロセスの課題解消を図っています。Devinがリリースされたばかりの今年1月から約1ヶ月が経過し、社内で知見が溜まってきた頃なので実際に得られたDevinの活用方法と開発効率化の実績について詳しくご紹介します。

対象読者:
• 社内の開発プロセス改善に興味のある方
• 自律型エージェントやAIツールの導入を検討している方

Devinとは

https://docs.devin.ai/get-started/devin-intro
公式ドキュメントはこちら👆

Devinは、人間からの指示に基づき、プロジェクトの計画から実装、デバッグ、デプロイまでを自律的に実行できる能力を持っています。

従来のAIツールとの違い

ツール分類 主な特徴
従来のAIツール (例: ChatGPT, Claude等) 人間が具体的な指示を与えると、その指示に従ってテキストや画像などの出力を行う。セッション内でしか知識を蓄積することができないので別セッションでは全体のコンテキストが理解できない。
Devin 人間が指示を与えると、自ら考え、必要な情報を収集しながらタスクを自律的に実行する。知識が蓄積されると、全体のコンテキストを理解できるようになる。

導入の目的

Devinを導入することで、人がやらなくても良い作業を自動化し、チームの開発効率向上を実現したいと考えました。
そのためには、Devinの有効な活用方法を知る必要があったため、公式ドキュメントやDevinの記事を読んで調べてみましたが、事実かどうかは自分で検証してみないとわからない部分が多いので実際にDevinにタスクを任せて模索することから始めました。

Devinの実践的な活用事例

実際にDevinにタスクを任せてみて具体的な活用方法が見えてきたのでをいくつか具体例をご紹介します。
まず、Devinに仕事を任せる大前提として知っておくべきことは、Devinの能力は入社したばかりのジュニアエンジニアレベルであるということです。そのうえでDevinへのアサインが適切かどうかをエンジニアが都度判断する必要があります。

基本的な活用イメージ

①Slack上からDevinにメンションし、仕事を依頼する

②Devinと対話して、Devin自身がコードを実装する

③Devinがプルリクエストを作成し、レビュワー(人間)がマージする

効果的な活用方法

1. 文言の修正

Devinは添付した画像のブラウザ画面から文字を認識し、その文字をリポジトリのファイル内から検索して見つけ出し、修正する能力があります。
文言修正系のタスクは修正自体簡単ですが、作業用ブランチを切ったり、プルリクエストを作成する作業が面倒だったので隙間時間で作業する場合でもコンテキストスイッチが発生しづらくなると感じています。

2. 小さな機能追加

小さな機能追加であれば、Devin自身がロジックを考えて実装してくれます。ただし、冒頭でも説明したようにDevinのコンテキストは入社したばかりなので社内のデザインや実装ルールに対して知識を持っていません。そのため、指示に少しでも曖昧さを残すと実装パターンが一つに定まらないため、意図しないやり方で実装してしまうことがあります。運が良ければ1回の指示で完遂できる場合もありますが、Devinと複数回の対話をする or 一発目の指示を丁寧に細かく書くやり方でタスクを完遂させることができました。Devinがまだ育っていない段階では、Few-shotプロンプティング(参考にする例を提示したプロンプト方法)で指示を出すと精度の高い出力結果を得られやすかったです。
小さな機能追加であっても要件が複雑なものに関しては、Devinに大枠だけ実装してもらって残りを人間が引き継ぐ方が良い場合もあるでしょう。

3. 機能廃止

機能追加と違って機能削除は実装パターンが一つに定まりやすいので影響範囲が少し広くなってもDevinの修正だけで完遂することができました。途中で影響範囲についての確認(以下画像)をされて、自分で目で確認する必要はありましたが、Devinと複数回の対話で完遂できました

4. 新規画面の基盤を作成

新規画面の中身は各ページによってUIデザインが異なるため、丸ごとDevinに作らせるのは現状厳しいと判断しました。しかし、サービス内の新規画面の基盤を実装する際には、弊社で大枠の手順がすでに決まっているため、画面の基盤であればDevinに任せられそうと判断し、実際に試したらDevinと複数回の対話をする or 一発目の指示を丁寧に細かく書くやり方で完遂させることができました。
すでにやり方が決まっている場合は、上記でも述べたFew-shotプロンプティングを活用する方法が最適ですが、今回のように与える参考例が多くなる場合(複数ファイルを横断的に実装する必要があるときなど)はDevinのPlaybook機能を活用するとより少ないプロンプトでDevinが完遂できるようになります。Playbookは事前に用意してあるFew-shotプロンプトにパラメータを渡せる指示書みたいなものでして、実際にこれを活用したら一回のプロンプトで新規画面の基盤を完遂させることができました。

5. コードベース調査の支援

たとえば、「どのファイルのどの関数でその処理が実行されているか」を確認したい場合には、Devinに調査を依頼するのも効果的です。社歴が長く仕様を熟知しているエンジニアであれば、Devinを介さずとも迅速に対象の処理を見つけられますが、入社して間もない社員にとっては、Devinと並行して調査を進めることで、より効率的に作業できるでしょう。ただし、Devinの調査情報を完全に鵜呑みにするのは危険なので実際に目視確認するのは必須です。

非推奨な活用方法

1. UIの修正

UIの修正はコードだけでなく、表示されている画面を人間の目視で確認する必要があるため、Devinに任せるのは難しいです。
ロジックを構築するプログラミング言語であれば、コードだけで処理の結果を検証することができますが、UIを構築するマークアップ言語はエラーが表示されず、目視でしか正しく検証できません。Devinに依頼するとコード上では、それらしい修正をしてくれているのですが、画面を確認すると変化していないことがほとんどです。そこそこうまくいった場合でもスタイルが崩れていたりで、痒いところには手が届かないイメージです。

2. 要件が曖昧なタスク

DevinはAIなので人間よりも曖昧さに弱いです。要件が曖昧であればDevinが判断しないといけない項目が多くなり、想定通りのアウトプットは得られないでしょう。要件を正確に洗い出し、タスクを適切な粒度に分割する役割を人間が担い、分割された細かいタスクをDevinに任せるようにするのが良いと思います。

3. 大量のファイル修正

規則性のある簡易的な変更でも数十〜数百ファイルの修正をする場合、Devinのセッション時間(Devinを使用してタスクを実行する際の基本的な作業単位)が大幅に長くなる、Devinに課金する金額が増えてしまうので、費用対効果に見合わない可能性があります。もちろん、現時点のDevinの話なので、今後Devinの能力が向上すればこのようなセッション時間が長くなる問題も解決するように思えます。

今後の展望

Devinを育成し、最小のインプット(プロンプト)で最大のアウトプットを出せるようにすること

今回の記事ではDevinの主要機能であるKnowledgeについて触れてこなかったのですが、Knowledgeを使うとDevinに指示したことを永続的にDevinが記憶し、社内の開発メンバーとして最適化した行動を取るようになっていきます。
そのため、質の高いKnowledgeを積み上げることがDevinを育成する肝であり、開発メンバー全体で積極的に活用することがDevinの育成に欠かせないと思います。現時点では、Devinにコンテキストを伝えないと複雑なタスクを処理するのは難しいですが、今より社内最適化され、最小のインプット(プロンプト)で最大のアウトプットが出せるようになれば、人間の作業量と指示出しのコンテキストスイッチを減らせるでしょう。

Devinと働く上で必要なマインドセット

Devinは人間の新入社員と似た振る舞いをするため、想定通りのアウトプットが最初から得られなくても長期的な投資と思って割り切る考えが必要だと思います。そう考えることで、自分がやったほうが早くできるタスクでも、まずはDevinに指示してやってもらうというムーブを取るようになり、結果的にDevinの長期的な成長にコミットすることになるからです。

22
スマートラウンド テックブログ

Discussion

ログインするとコメントできます