Topics

試試 Google 的編碼代理「Jules」

  • column

「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 儲存庫複製到虛擬環境中並進行作業。這使得它不僅能修改單一檔案,還能對整個儲存庫進行結構性變更、新增檔案、刪除現有檔案等,全面操控整個專案。
  • 自主作業:從專案初期設定、檔案建立、程式碼產生、測試執行,到提交 Pull Request,Jules 能自主進行整個流程。

Jules 具有更高的自主性,能夠接手整個開發任務,就像一位「代理程式設計師」!

親身體驗看看!

Jules 的使用方法

Jules 主要透過 聊天形式的 UI 來接收指示。

1.存取 Jules:可以從 jules.google.com 存取。

2.連接 GitHub 儲存庫:選擇要作業的 GitHub 儲存庫和分支。我們為這次試用準備了「jules-test」儲存庫。

3.透過提示進行指示:即使用日語也沒問題!這次我們嘗試用 JavaScript 實現時鐘。

4.確認實作計畫:Jules 會先提示實作計畫。使用者進行審查並確認。因為它為工作流程制定計畫,所以非常清楚!

5.執行編碼和確認進度:計畫獲得批准後,Jules 會自動開始編碼並報告工作進度。
雖然需要一些時間,但還是成功生成了 index.html、script.js 和 style.css 檔案!

6.審查和確認變更:變更完成後,Jules 會建立拉取請求並附上變更差異 (diff)。使用者可以進行審查並確認,將其反映到儲存庫中。

提交訊息內容有時候確實難以撰寫??它會幫你自動總結並生成!

點擊右下角的 publish branch,就會推送到 tokyo-clock 分支。

拉取分支後...編輯器中已經生成了檔案!

瀏覽器預覽看起來是這樣的!

過往的 AI 功能中,當你輸入「用 JavaScript 實現時鐘」這樣的提示時,它只會告訴你實現步驟或程式碼內容。但這次不同的是,它從檔案建立到與 git 的整合,一整套工作流程都幫你完成了!

不過,像這次這麼簡單的實現,即使完全委託給它似乎也沒問題。但至於到底能委託多大規模的實現,實際情況如何呢...這就是疑惑之處。

那我再額外請求「讓裝飾更華麗」試試。

它提供了幾個方案,我就交給它全權處理。

它把背景改成漸層了!

僅需建立一個儲存庫,就能從零開始生成檔案、進行程式碼編寫,還能推送到 git——真的是代理程式設計師啊。

不過目前以測試版的形式提供,存在使用限制(例如每天 5 項任務)。

此外,檔案建立和程式實現需要花費一些時間,輸入欄位也出現過錯誤,無法正確反映的情況。

其他方面,當 Jules 遇到錯誤時,該時刻的作業不會被提交,即使希望獲得中途的工作差異也無法反映。

實際上,這次我要求將 JavaScript 時鐘實現改為 Next.js,它確實成功地轉換為 Next.js,環境構建也完成了,但因為中途發生錯誤,最終無法將 Next.js 檔案拉取到本地。雖然很便利,但我也意識到確實存在不少缺點。

總結

隨著 Jules 日益進步,煩人的重複工作可以交給 Jules 處理,我們就能夠投入更多時間學習新技術或享受興趣愛好了呢!

也許 Jules 會成為工程師的得力夥伴,徹底改變軟體開發的常識呢!

圖片引用:取自 Jules 網站

本文作者

我主要從事標記語言、JavaScript、React 和 Next.js 的前端開發。看到自己參與的網站順利上線時最開心!興趣是彈吉他。喜歡貓咪和烤地瓜🐱🍠

Hiracchi

前端工程師 / 2022年入職

查看此員工的文章

信心十足的團隊體制與迅速的應對能力是我們的優勢

Liberogic 擁有經驗豐富的人員積極推進專案,因而獲得客戶的高度評價。
我們恰當地安排專案經理和總監,致力於順利推進整個專案。 我們避免不必要的全面投入而導致成本增加,而是採用適材適所配置資源的方式,因此在業務把握到估價制作與提交的速度上也備受好評。

請注意,我們不積極進行 SES 形式的駐場業務。

Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom、Webex 等幾乎所有主要的專案管理工具和聊天工具都可供您使用。

請諮詢我們解決您的網站問題。

案例分析