NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

自律型エージェント Google Julesを触ってみる

はじめに

株式会社ネクストスケープ エンタープライズサービス部の小野塚です。

先日5月20日にGoogleからコーディングエージェント「Jules」が発表されました。
もともとは昨年12月にGemini2.0と共に発表され、この5月20日にパブリックベータという形で公開されました。
今回はこのJulesを触ってみた感想となります。
現在このJulesはベータ版で、無料で利用可能です。
また、モデルについては当初のGemini2.0から進化し、2.5 Proを搭載しており、公式サイトに書かれている機能としては以下になります。

・テスト作成

・バグの修正

・新機能の構築

・音声による変更ログの提供

・ライブラリのバージョンを上げる

今回はバグの修正というところでJulesを使ってみたいと思います。

ログイン及び設定

Julesにログインしてみましょう。
https://jules.google.com/

以下がログイン画面になります。昔懐かしい感じの画面になりまして、タコのような宇宙人?=エージェントがコードを修正しているといったところでしょうか。
Googleのサービスなので当然ながらGoogleアカウントが必要になります。右上の「Try Jules」をクリックします。


プライバシーに関するお知らせのダイアログが表示されますので確認の上、次へ進んでください。

画像
次にGitHubに接続します。なので、GitHubアカウント及びリポジトリも必要となりますので併せてご注意ください。

画像
JulesはGitHubリポジトリがベースになります。Firebase StudioやCursorは何もないレベルからソースコードを書いたりできるのですが、JulesはGitHubリポジトリが必要であり、それを元にやり取りを行い、変更・修正を行います。

次にJulesに対する権限設定、

画像

そして参照するリポジトリを設定します。
全てのリポジトリでもよいですし、特定のリポジトリのみでもよいです。リポジトリはPublic、Private、両方ともに対応可能のようでして今回はPrivateにしました。

画像

無事、設定及びGitHubへの接続が終わると以下のようにチャット欄のところに接続したGitHubのリポジトリとブランチが表示・変更できます。

画像
余談なのですが、筆者はテスト用にGitHub上で何もリポジトリが無い状態から先にJulesでGitHubに接続し、「その後に」リポジトリを作成したのですが、何故かJulesでリポジトリやブランチが表示されず、一旦接続情報を削除したりと少々てこずりました。結果、時間の経過で自然に直ったようなのですが、もしかするとベータ版というところも影響しているのかもしれません。

事前準備(対象リポジトリの準備)

更に事前準備を進めます。
JulesはGitHubベースで動きますのでGitHubリポジトリが必要となります。
そこでリポジトリにはNode.jsでWebベースの簡単なToDoアプリを作ってPushしておきました。
更に意図的に構文エラー、論理エラーを仕込んでおきます。
まずは以下の赤枠部分、セミコロンを削除しておきます。Node.jsではエラーにはならないのですが、今回行末には全てセミコロンを設定してありますので、見た目の統一のために追加するのでは。。と思った次第です。

画像
次に以下のコードの34行目の記述を丸々消します。つまり、必要な括弧閉じが書かれていない状態であり、明らかな構文エラーです。


次に以下の新しいToDoを追加する処理においてToDoの数をインクリメントするところを削除します。


そして試しに実行し、エラーが出て起動しないことも確認しておき、これをPushします。

Julesへの依頼~プルリクエストまで

ではいよいよここからが本番です。
元々の画面では全て英語だったのですが、試しに日本語で指示してみます。しかも相変わらずざっくりレベルで。

画像
するとJulesがリポジトリをチェックし、以下のようなメッセージが表示されます。


このメッセージはJulesが立てた実行プランとなりまして、直訳しますと
「public/script.jsでファイルの切り捨てによる構文エラーと、routes/api.jsで新しいTodo IDが生成される方法に潜在的なバグがあることを確認しました。これらの問題を修正する計画を立てました:
public/script.jsの構文エラーを修正する: 標準的なTodoリストの機能を想定して、ファイルを完成させる。
routes/api.jsのTodo ID生成の改善:より安全なID生成ストラテジーを実装する。
APIの基本テストを追加: Todoの追加に関する修正を検証する。
変更を確定する。
フィードバックがあれば教えてください。そうでなければ、承認してください。」
というものになります。どうやら仕込んだバグをちゃんと見つけられたようです。

そこでJulesが立てたこの計画を承認しますとJulesが次々と作業を進めていきます。
まずはscript.jsの修正。。


修正が終わるとウィンドウが2分割され、右側にその内容が表示されます。

括弧を削除したところも修正されています。

画像
インクリメントの部分も元々初期化がなされていなかったようで、初期化処理と、インクリメントも修正されています。


プランの中にテストの追加も書かれてましたが、ちゃんと「test」フォルダを作成し、テストコードも書いてくれています。

ただ、セミコロンを削除した部分だけはそのままとなっていました。

プロンプトが雑すぎたことも影響しているかもしれず、記述の統一等も依頼すれば修正されたかもしれません。


Julesは仮想マシンを内部に持っているそうで、そこでテストコードも実行してくれます。


そしてFixブランチに対してのプルリクエストを提案します。


上記の表示内容において「Publish branch」をクリックするとFixブランチに対してPushを行ってくれます。
。。と、このように自律型エージェントとしてプルリクエストまで実行してくれました。
スクリプトをもっと丁寧な内容にすれば更に期待以上の結果をもたらしてくれるのではと思います。

この後も色々触ってみたのですが、恐らくはベータ版ということもあり、Jules側で次のアクションまでにかなり時間がかかったり、途中でリポジトリを見失ったりもしていまして、少なくても私の環境においては若干の不安定さもありました。
ただ、ここ最近のAI界隈の進化を考えるとこのあたりもすぐに改善してくれると思いますし、日本語での回答も近々に対応してくれるかもしれません。

同じタイミングに発表されたGitHub Copilot Coding Agent、そしてOpenAIのCodex等、コーディングエージェントが次々と出てきており、AIツールの覇権争いはますます激化しそうですね。。

当社ネクストスケープはこのように生成AIを始めとした新しい技術・知識を日々取り入れており、Webサイト、スマホアプリ、Hololensアプリの開発をはじめ、CMSを利用したサイトの新規構築やリニューアルなど、お客様のニーズに幅広く対応いたします。お困りのことがございましたら、いつでもお気軽にお問い合わせください。

nextscape.net

(以下当社お問合せフォーム)

Microsoft Forms