【2025年6月20日 訂正】
JulesがAndroid SDKのような大規模フレームワークのインストールに対応していない旨を記載していましたが、その後の検証で、Julesでもインストールが可能であることが確認できました。
以前できなかったのは、指示の仕方に悪かったのか、もしくはJulesの内部システムがアップデートされたのかは分かりません。Julesを用いたビルド確認などの自動化についても、当初の想定より実現の余地がありそうです。
--
近年、ソフトウェア開発の現場でもAIエージェントの活用が注目されています。本記事では、非同期型のAIエージェントとして知られるDevinとJulesの2つを取り上げ、それぞれの特徴や優位性、実際の使用感を比較・考察します。
Devinとは
Devinは、米国のCognition AIによって開発された、自律型のAIソフトウェアエンジニアです。自然言語による指示に基づき、複雑なソフトウェア開発プロジェクトの計画立案から、コーディング、デバッグ、テストに至るまでの一連のタスクを自律的に実行することを目指して設計されています。専用のシェル、コードエディタ、ウェブブラウザといった開発ツール群を内蔵しており、これらを駆使して実際の開発作業を行います。詳細はDevinの公式サイトをご覧ください。
Julesとは
Julesは、Googleによって開発されたAIコーディングアシスタントです。開発者の生産性向上を目的とし、統合開発環境(IDE)内などでの利用を通じて、コード生成、リファクタリング、バグ修正の提案といった多岐にわたるサポートを提供することが期待されています。詳細については、Julesの公式サイトをご覧ください。
作業の自動化と自律性
Devinは、初期に一定の指示を与えることで、Pull Requestの作成に至るまでの一連の作業を自律的に進める能力があります。これにより、ユーザーは作業プロセスから一時的に離れ、他のタスクに集中することが可能です。
一方、Julesは運用において、より細かな指示を都度必要とする傾向があります。現時点では、AIアシスタントとしての側面が強く、完全に作業を任せきりにするには限界があるかもしれません。
環境構築と実行能力
Devinの特筆すべき点として、柔軟な環境構築能力が挙げられます。.NET MAUIのような特定の開発環境の構築にも対応し、ビルドチェックの実行も可能です。ビルド、リント、テストコマンドを適切に設定することで、これらのプロセスも自動化できます。 ただし、設定が不十分な場合、テスト等を省略してPull Requestを作成する傾向が見られることもあります。また、Devinは「指示されたタスクを完遂する」という特性が強く、困難なタスクに対しても諦めずに取り組むあまり、時には意図しないコードを生成してしまうケースも報告されています。
対照的に、Julesは環境のセットアップには対応していません。例えば、Android SDKのような大規模なフレームワークのインストールを指示しても実行されませんでした。このため、最低限のビルド確認といったタスクの自動化は難しい状況です。
GitHub連携
Devinは、issueの閲覧からPull Requestの作成、さらにはPull Requestへのレビューコメントに対する応答まで、GitHubとの密な連携機能を提供します。特にレビューへの応答機能は、開発プロセスにおけるコミュニケーションを円滑にします。
JulesもGitHubリポジトリからコードを取得することは可能ですが、issueの確認やPull Requestの作成・応答といった機能は現時点では提供されていません。特にPull Requestへの応答機能がない点は、レビュープロセスの効率化において課題となる可能性があります。
どちらを使うか?
いくつかコードを書かせてみた感想程度ですが、生成されるコードの品質自体には、現時点で大きな差異は見られませんでした。
機能面ではDevinが優れていると言えます。 Slackで指示を出して、GitHub の Pull Request で開発業務を回すことができると思います。 ぼくは仕事で使うほどには使いこなせておらず、$500のクレジットを有効に活用するのが難しいと感じています。
Julesは機能面でDevinに劣る部分はあるものの、無料であるという大きな利点です。 また、ある程度自律的に開発はやってくれるので、ぼくが最低限やりたいことはJulesでできそうです。
しばらくJulesと一緒にやっていこうかなと思います。 Julesが有料になった時に、またDevinと比較して検討してみたいと思います。