開発者と読み解くAIの世界

AIエージェント「Devin」はジュニアエンジニアの域を超えていた

AIエージェントの可能性

 本コーナー「開発者と読み解くAIの世界」では、AIアプリ開発に携わるエンジニアより寄稿いただき、開発者目線でみる生成AIの面白さや活用法、開発現場のリアルをお伝えします。

 株式会社Algomatic AXカンパニーのsergicalsixです。

 私たちの会社では、開発タスクの効率化を目的にAIエージェント「Devin」を実際の業務に導入してみました。この記事では、Devinの長所・短所や、Devinを効果的に使う上でのテクニックやシチュエーションについて紹介したいと思います。

本記事のターゲット
  • Devinの導入を検討している方
  • Devinの活用例や特徴、課題を知りたい方

 Devinの導入には大きく、(1)Devinのアカウント登録と支払い、(2)GitHub設定、(3)Slack設定、(4)開発リポジトリのセットアップの4ステップがあります。また、DevinのGitHubの設定において、管理者権限相当の強い権限が必要ですので、導入をご検討の方はご注意ください。

 Devinの場合、月額の最低コストは500米ドルが必要であり、500ドルで250 ACU(Agent Compute Unit)が付与されます。1 ACUあたり約15分、Devinが作業可能であり、ACUの不足分は1 ACUあたり2ドルで追加購入可能です。

 なお、Devinの導入と設定について、詳しくは以下の記事などをご参照ください。

Devinの購入から初期設定まで

Devinとは

 「Devin」は、2024年12月にリリースされたAIエージェントです。

 Devinの特徴は以下の通りであり、Devinは通常のエンジニアとほぼ同じフローで開発が可能な存在といえます。

  • 対話ベースのコミュニケーションが可能である
  • 開発タスク(プログラムの実行やPR作成など)を自律的に実行できる
  • PythonやTypeScriptなどの主要プログラミング言語、GitやGitHubをスムーズに使いこなす
  • クリーンアーキテクチャーなど、一般的な開発知識を有する
  • ナレッジとして独自の開発ルールやノウハウをテキストベースで教え込むことができる

 弊社では、Devinを 「一定の開発知識を持った従順なジュニアエンジニア」 と位置づけているものの、使い方によって ジュニアエンジニアを大きく上回るパフォーマンスを発揮 するため、一般的な ジュニアエンジニアの域 は超えていると考えています。

Devinにできること・できないこと

 まず、Devinができること・できないことを以下に示します。

 大別すると、粒度が小さいタスクであれば、Devinで問題なく実行できますが、自由度が高いゼロからの開発や開発粒度が大きいタスクは苦手です。

 ただ、 リポジトリの膨大なコードを読み込み理解する能力 その内容を説明しドキュメントを作る能力は完全にジュニアエンジニアの域 を超えていますし、 開発知識が豊富なのでタスク遂行力は低くありません @。

 Devinの特長は タスク実行範囲の広さ です。

 局所的にAIを導入するだけであれば、コスト面からDevinではなく、AIワークフローを自前で構築した方が圧倒的に安いです。ただDevinの場合、指示さえすればワークフローなどを新たに作成する必要がなく、タスクを実行してくれるので、Devinは 痒いところに手が届く存在 といえます。

Devinを使いこなすための方針・ポイント

 Devinはエージェントという特性上、すべての粒度に関わらず開発タスクを任せたいところですが、Devinにすべての開発タスクを実行してもらうことは難しく、依頼者側がDevinを制御する必要があります。

 Devinを使いこなすための方針を一言でまとめると、 開発自由度を下げる方向にコントロールして適切なディレクションを行う ことです。

 Devinを使いこなすためのポイントとして、本記事では3点ご紹介します。

ポイント①:オンボーディング・教育

 Devinを使いこなすためには、まず初めに オンボーディングを徹底 することが重要です。オンボーディングを正確に行うことで、後々の手戻りや不具合を大幅に減らすことができます。

 Devinを既存プロジェクトに参画させる際、開発環境用のDockerfileがあればスムーズに環境構築が進みました。ただDevin単体で認証周りは突破できないので、環境構築段階ではDevinをサポートできる体制を整えておく必要があります。

 開発ルールに関しては、現実問題として事前にすべて教えるのは難しいことなので、開発を進めながらDevinのナレッジに追加していく運用がよいでしょう。またcursorrulesやclinerulesなどを設定していれば、ある程度開発ルールを事前に教える手間が省けるのでおすすめです。

ポイント②:タスクの分解

 Devinは先述の通り、 新規機能をゼロから作るような自由度の高いタスクが苦手 です。

 「アーキテクチャーをどう設計するか」など“前提をまだ誰も決めていない”フェーズでは、Devinのアウトプットが期待通りになりにくいです。

 解決策としては タスクの自由度を下げる、つまりタスクを分解するのが効果的 です。

 大きな粒度のタスクを分解し、依存関係を整理してDevinにタスクを依頼することが重要です。ただタスクを適切な粒度に分解する作業は人間が実行する必要はないので、別途LLM(o1 proなど)にタスクをオーケストレートしてもらうのがよいかもしれません。

ポイント③:コンテキスト充足化

 Devinは、依頼の抽象度が高い場合、依頼者の想定とは異なった方法で開発することがあります。結果的に作り直しになることもしばしばあったため、想定通りの開発方法で開発してもらうためにタスク依頼時またはDevinの間違いに気付き次第、コンテキストを追加することが大切です。

 また、Devinは比較的新しいライブラリ(例:LangChain、 LangGraphなど)を短時間で深く理解することは苦手であり、ドキュメントから内部実装や活用パターンを推察してコードを実装することは難しかったです。

 よって、Devinが所持していない情報に関しては、人間がある程度情報を整理し、コンテキストとして与える必要があります。

 以上のポイントを意識することで、Devinのタスク成功率は飛躍的に高まります。

 上記のポイントは、①エンジニアメンバーとの業務、②暗黙知をプロンプトに落とし込むといったプロンプトエンジニアリング業務などに共通点があります。

 したがって、Devinと相性のよい方々は、以下のような方々だと考えています。

  • PM業務でタスクを日常的に分解している方
  • エンジニアリングチームのリード経験がある方
  • (LLMエンジニア業務などで)日々暗黙知を言語化している方

Devinが役に立つシチュエーション

 Devinは、 ある程度長い期間運用されるプロダクトに対して強みが発揮 されます。その理由は以下3点です。

  • Devinが活用可能なツールやスクリプト、環境が用意されているほど、Devinのオンボーディングコストが小さくなり、開発範囲が広くなる
  • コードベースやドキュメントが安定しているプロジェクトほど、Devinがそれらを参照して開発できるため、開発品質が高まる
  • 開発期間が長いほど、Devinに多くのナレッジを追加できるため、Devinのアウトプットの品質が上がる。Devin教育のレバレッジが効く

  コストをかけて環境構築し、Devinが使えるツールやDevinのナレッジを充実させた分だけ、Devinの作業効率が上がります

 逆に、超スピード納期のデモ作成や短期決戦の開発にはオンボーディングコストの観点やDevinの良さを活かしきれないという理由で、Devinは向いていない印象です。

まとめ

 今回はAIエージェント「Devin」についてご紹介しました。

 Devinは、完全にエンジニアを代替する存在ではないものの、一定の条件が揃えば実際の開発の現場でも活躍してくれる存在です。

 この記事が少しでも参考になれば幸いです。

【Algomaticからのメッセージ】

最後に、Algomaticでは 全方位全職種積極採用中 であり、エンジニア職も募集中です!!

弊社に少しでも興味を持たれた方や、生成AIを活用した開発に興味をお持ちの方は、ぜひお話しさせてください!

下記のリンクから 30秒でカジュアル面談が応募できます ので、ぜひご連絡ください。

https://jobs.algomatic.jp

著者プロフィール:sergicalsix

株式会社Algomatic AXカンパニー AIエンジニア

受託分析/開発会社においてシステム開発および社内向け生成AIサービス開発を経験。
2024年12月から株式会社Algomaticに入社。現在はAXカンパニーにて生成AI関連のアプリケーション開発に従事。

・株式会社Algomatic:https://algomatic.jp/

開発者と読み解くAIの世界 記事一覧