「AIがコード書くとか、もう仕事なくなるんじゃね?」なんて冗談、冗談じゃなくなってきた今日この頃。GitHub CopilotやCodeXなんかがすでにコードを書いてくれますが、今回Googleから登場したJulesは、ちょっとレベルが違うみたいですよ。
Googleの最新AI、Gemini 2.0を搭載してる上に、今回のJulesのポイントは「自律的」!
これ、もしかしたら、私たちの代わりに全部やってくれちゃう日が来るのかもしれませんよ? 期待しかありません!どんなことができるのか、試してみました。
Julesでできること
Julesは、自律的にコーディングタスクを遂行するAIエージェントです。単なるコード生成にとどまらず、以下のような高度な自動化が可能です。
- 複雑なタスクの分解と計画立案:与えられたタスクを小さなステップに分解し、実装計画を立てます。
- コード生成・修正:複数ソースファイルを横断してコードを生成したり、既存のコードを修正したりできます。
- バグ修正・デバッグ:コードのバグを特定し、修正します。
- テストの作成と実行:既存のテストを実行したり、新しいテストを作成したりして、変更が正しく機能するか検証します。
- リポジトリの取得・クローン:GitHubなどのリポジトリからコードを取得し、仮想マシンにクローンして作業を進めます。
- プルリクエストの作成:コードの変更が完了すると、プルリクエストとして提案します。
- 非同期での作業:ユーザーが他の作業をしている間に、バックグラウンドでコーディングタスクを進めることができます。
- 音声サマリー(CodeCast):最近のコードアクティビティを要約した音声を作成できます。
ChatGPTの新機能「Codex」とはどう違う?
Codexとは
CodexにはOpenAIが開発した専用の大規模言語モデル「codex-1」が搭載されています。 これは最新モデル「o3」をベースにソフトウェア開発用に最適化したもので、経験豊富なシニアエンジニアのコーディングスタイルや知見を取り込んだ賢いモデルです。
できること
- コードの補完、提案、生成(リアルタイム)
- コメントからのコード生成
- 既存コードの関数やメソッドの提案
- 既存のコードベースに対する修正・拡張に強み
Codex/Copilotは、主に「入力補助」として、既存のコードを書いたり修正したりする際にリアルタイムで助けになります。AIペアプログラマ(コーディング補助ツール)的な立ち位置です。
一方、Julesは「代理開発者」として、プロジェクトの開始から終了まで、より広い範囲のタスクを自律的に実行できる点が大きな違いです。そのため、ゼロから新しいプロジェクトの初期段階の構築もJulesはこなせる可能性があり、より「開発タスクの自動化」に焦点を当てていると言えます。
- 新規プロジェクトの作成も可能:Julesは、ユーザーに指示されたタスク(例:「基本的なWebアプリケーションを作成せよ」)に応じて、必要なファイルやディレクトリ構造をゼロから作成し、コードを生成する能力を持っています。
- GitHubリポジトリとの深い統合:Julesは、ユーザーが指定したGitHubリポジトリを仮想環境にクローンし、そこで作業を行います。これにより、単一ファイルの変更に留まらず、リポジトリ全体にわたる構造的な変更や、新しいファイルの追加、既存ファイルの削除など、プロジェクト全体を操作することができます。
- 自律的な作業:プロジェクトの初期設定から、ファイルの作成、コードの生成、テストの実行、プルリクエストの作成まで、一連のプロセスを自律的に進めます。
Julesはより自律性が高く、開発タスク全体を任せられる、まるで「代理プログラマ」のような立ち位置です!
実際に使ってみた!
Julesの使い方
Julesは、主にチャット形式のUIを通じて指示を出します。
1.Julesにアクセス:jules.google.com からアクセスできます。
2.GitHubリポジトリの接続:作業対象のGitHubリポジトリとブランチを選択します。今回のお試し用に「jules-test」リポジトリを用意しました。
3.プロンプトでの指示:日本語でも大丈夫です!今回は時計をJSで実装してみます。

4.実装計画の承認:Julesはまず実装計画を提示します。ユーザーはそれをレビューし、承認します。作業プロセスを立ててくれるので分かりやすいですね!

5.コーディングの実行と進捗確認:計画が承認されると、Julesが自動的にコーディングを開始し、作業の進捗を報告します。
ちょっと時間はかかるけど、index.html、script.js、style.cssファイルが生成されました!

6.変更のレビューと承認:変更が完了すると、Julesは変更点の差分(diff)とともにプルリクエストを作成します。ユーザーはそれをレビューし、承認することでリポジトリに反映されます。
コミットメッセージって意外と内容困りませんか??要約して作成してくれるんです!


ブランチをプルすると…エディターにファイルが生成されています!

ブラウザプレビューはこんな感じです!

今までのAI機能では「JavaScriptで時計を実装して」とプロンプトを記述すると、あくまで実装手順やコード内容を教えてくれるパターンでしたが、こちらはもうファイルの作成からgitへの連携まで一連の作業をやってくれるのです!
ただ、今回のようなシンプルな実装なら丸投げしても大丈夫そうですが、これがどのくらいの規模感の実装を任せてしまってよいのかは実際どうなんだろう、、、といったところです。
ではもう少し追加で「装飾を華やかに」と依頼してみます。

いくつか提案してくれましたが、お任せにしてみます。

背景をグラデーションに変更してくれました!
リポジトリを作成するだけで0からファイル生成、コーディングをして、gitにプッシュまでしてくれるなんて!まさに代理プログラマです。
ただ現在はベータ版として提供されており、利用制限(1日あたり5タスクなど)があります。
またファイルの作成、プログラム実装には多少時間がかかるのと、入力欄がバグってうまく反映されなかったりもしました。
その他、Julesがエラーに遭遇した場合、その時点での作業はコミットされないので途中までの作業差分が欲しくても反映されないこともあるようです。
実際に今回のJavaScriptの時計実装をNext.jsにしたい、と依頼し、見事にNext.jsに変換して環境構築まではできたのですが、途中のエラーでNext.jsのファイルは手元にプルできぬまま..となってしまいました。便利な反面、デメリットも少なからずあるかと思いました。
まとめ
Julesがこれからどんどん賢くなっていくとすると、面倒な定型作業はJulesに任せて新しい技術の勉強や趣味の時間など、そういうところに時間をたっぷり使えるようになれるかもしれません!
Julesは、きっとエンジニアの相棒として開発の常識をガラッと変えてくれるかもしれませんね!

マークアップを中心に、JavaScriptやReact、Next.jsを使ってフロントエンドの開発をやっています。自分が関わったサイトが無事に公開されると嬉しかったりします!趣味はギターを弾くこと。コードは書くのも弾くのもどっちも楽しいです!
ひらっち
フロントエンドエンジニア/2022年入社