Google AI代理Jules初體驗:自動化測試、依賴升級,一站式Vibe編碼助手

Google AI代理Jules

你曾經用過 Vibe 編碼嗎?一邊喝著咖啡,一邊聽著 AI 為你編碼?我相信你肯定做過。現在,想象一下,如果像編寫測試用例、升級軟體包這樣的任務都能自動完成,而你只需要專注於邏輯處理,會怎麼樣?聽起來很神奇,對吧?現在,有了 Jules,這一切都成為可能。Jules 是 Google 的最新產品,它允許你在處理專案其他方面時,非同步地 Vibe 編碼。在本文中,我們將深入瞭解 Jules 的工作原理,並嘗試理解它的工作原理以及它是如何改變 Vibe 編碼基準的。我們還將進行一些實際任務來測試 Jules。

什麼是Jules?

Jules 是一個非同步 AI 代理,它在後臺執行,詳細規劃你的任務,然後執行它們。Jules 不是即時自動完成代理。它是非同步工​​作的,這意味著 Jules 允許你分配任務,然後讓你“安心思考”。在此過程中,你的編碼流程不會受到任何阻礙。 Jules 由 Gemini 2.5 Pro 提供支援,該版本在編碼任務方面表現出色。它執行在安全的雲虛擬機器環境中。Jules 與您的 GitHub 整合,以瞭解您的完整程式碼庫。

Jules介面

Jules是如何工作的?

Jules 在工作過程中會經歷一系列事件。讓我們來看看 Jules 在工作過程中執行的一系列操作:

  • 觸發 Jules:Jules 會與您的 GitHub 程式碼庫協同工作;您可以向 Jules 提供 GitHub 問題或標籤,甚至可以在 Jules 的 UI 中執行提示。
  • 程式碼庫克隆:在執行任何操作之前,Jules 會將提供的程式碼庫克隆到其自己的虛擬機器環境中。此外,它還會解決所有依賴關係問題以執行程式。
  • 規劃階段:Jules 理解程式碼庫和查詢,制定執行任務的計劃,並據此制定詳細的計劃。該計劃包括受影響的檔案列表和後續步驟。
  • 程式碼執行:規劃完成後,Jules 會將所有更改應用到程式碼庫,執行測試用例,並捕獲執行前後的差異。
  • 稽覈併合並:Jules 稽覈所有更改,合併更改,並檢視是否存在使用者稽覈差異或拉取請求。

如何訪問Jules?

Jules 的使用非常簡單,只需按照以下步驟操作:

  1. 訪問 jules.google.com 並點選“Try Jules”。
  2. 使用您的 Google 帳戶進行身份驗證並接受隱私宣告。

身份驗證並接受隱私宣告

  1. 單擊“Connect to GitHub”並選擇您希望 Jules 訪問的儲存庫。

Connect to GitHub

  1. 成功後,您將在 Jules 儀表板中看到一個程式碼庫選擇器。

程式碼庫選擇器

使用Jules進行實踐任務

讓我們評估 Jule 在不同實踐任務中的表現。我們有一個名為 test_git 的 GitHub 程式碼庫,我們將在此測試 Jules。

任務 1:為現有函式生成單元測試。我們的程式碼庫包含一個 calculator.py 檔案,其中包含一些簡單的計算器函式:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
# calculator.py def add(a, b): return a + b def subtract(a, b): return a - b def multiply(a, b): return a * b
# calculator.py
def add(a, b):
   return a + b
def subtract(a, b):
   return a - b
def multiply(a, b):
   return a * b

Jules 的任務是分析 Calculator.py,併為其中的所有函式生成相應的單元測試,然後將它們放在一個新檔案中(例如, test_calculator.py )。

提示詞:Create comprehensive unit tests for all functions in the calculator.py file. Ensure the tests cover basic and edge cases. Place the new tests in a file named test_calculator.py”

分析 Calculator.py

規劃階段:

規劃階段

批准該計劃後,Jules 開始執行程式碼。

Jules 開始執行程式碼

我們可以看到 Jules 成功建立了測試用例,並在其虛擬機器環境中執行了它們。這展現了 Jules 的自執行能力。它可以建立測試用例,並獨立執行它們,無需任何人工干預。

任務 2:升級依賴項並解決潛在衝突

我們的程式碼庫中有一個 requirements.txt 檔案,其中包含一個過時的請求庫版本。我們還有一個問題 #1,其中指出我們將嘗試使用 Jules 進行解決。

升級依賴項並解決潛在衝突

提示詞: Resolve the issue #1 Upgrade ‘requests’ library to the latest version and ensure tests pass.”

將“請求”庫升級到最新版本並確保測試透過

Jules 成功檢測到了過時的版本,然後在自己的虛擬機器中執行了 pip install request。最終,它成功更新了依賴項版本。

成功更新了依賴項版本

點選“Publish Branch”後,所有更改都會提交到分支。

任務 3:向程式碼庫新增 README.md 檔案

GitHub 程式碼庫最重要的任務之一是新增 README 檔案,該檔案解釋了專案的所有內容。開發人員經常會跳過這一步,但讓我們看看 Jules 如何幫助我們解決這個問題。

提示詞:“Add a README file for this project, which will include all CLI options.”

向程式碼庫新增 README.md 檔案

Jules 計劃新增 README 檔案和文件,其中還包括如何處理 CLI 命令。

新增 README 檔案和文件

我們可以看到,Jules 新增了定義明確的 README 檔案,並修改了 Calculator.py 檔案以使用 argparse 庫,該庫用於在 Python 指令碼中定義 CLI 命令。

定義 CLI 命令

現在,我們已經在 3 個需要 GitHub 的任務上測試了 Jules。它完成了所有任務,並將更改提交到了各自的分支。您可以在此處找到用於演示的 GitHub 程式碼庫。

限制和注意事項

以下是使用 Jules 時應注意的一些限制和注意事項:

  • 不適用於大型功能:Jules 更擅長處理小型任務,但它在架構調整和需要大量更改的變更方面往往舉步維艱。
  • 請求限制:Jules 的每日任務量有上限,超過一定請求量後將無法訪問。目前,Jules 每天提供 60 個請求。
  • 公開測試版:Jules 仍處於公開測試階段,Google 正在開發最終版本,可能很快就會發布。
  • 需要人工稽覈:我們瞭解 Jules 的功能,但在使用 Jules 後,我們始終會驗證差異並進行額外測試,以避免任何錯誤。

小結

Jules 自動化了諸如依賴項碰撞、編寫或執行測試用例以及更新文件等繁瑣的工作。這讓開發人員的工作變得輕鬆;他們可以將更多精力放在創造性任務上,而不是整天編寫文件和測試用例。我們在這裡測試了 3 個任務,但它的功能幾乎是無限的。您可以盡情發揮創造力。嘗試不同的提示,感受“氛圍編碼效果”。未來,Jules 及其後續產品將改進代理開發,重塑軟體工作流程。

常見問題解答

Q1. Jules 免費嗎?

A. 是的,它在公測版中免費,但有使用限制,但未來的定價尚未最終確定。

Q2. 它支援哪些語言?

A. 最適用於 JavaScript/TypeScript、Python、Go、Java 和 Rust,但其設計與語言無關。

Q3. 它能自動修復複雜的 bug 嗎?

A. Jules 可以處理描述明確的 bug;模糊或架構問題仍然需要人工指導。

Q4. 環境安全性如何?

A. 所有任務都在獨立的雲虛擬機器中執行;Jules 不會持久化您的私有程式碼或洩露機密資訊。

Q5. Jules 會取代開發人員嗎?

A. 不會!它自動化了日常工作,使開發人員可以專注於創造性和戰略性的編碼。人工稽覈仍然必不可少。

評論留言