大家知道,AI 最一開始是在命令行(command line)發展的。儘管 AI 與機器學習依然火熱,新產品不斷推出,但絕大多數開發者的工作環境仍離不開命令行。正因如此,谷歌將其 Jules 編碼代理(coding agent)推向終端,並推出了一款名為 Jules Tools 的新工具。
谷歌在創立之初便將搜尋引擎定位為網際網路的命令行,如今它為 Jules 這個非同步編碼代理創建了命令行介面,並賦予其一個令人難以抗拒的稱號:Jules Tools。
這一步其實早有預兆,因為多家 AI 領頭企業已經這麼做了。OpenAI 擁有名为 Codex CLI 的命令行介面 (CLI)。Anthropic 的 Claude Code 則是一套 CLI 編碼代理。Cursor 是一個用於 AI 編碼的整合開發環境 (IDE),它也配備了 CLI。
任何面向軟體開發人員的應用程式,終究都需要在某個時間點導入命令行工具。
Google 實驗室的軟體工程師 Jiahao Cai 與產品經理 AK Kulkarni 在發布 Jules Tools 的文章中也表達了相同的看法。
他們表示:「到目前為止,你大概主要透過網頁瀏覽器與 Jules 互動,但我們知道開發者喜歡『住』在終端機裡。這裡是我們進行測試、建置、除錯與發布的地方。因此,我們打造了 Jules Tools,一個輕量級的命令行介面,讓你能在不脫離工作流程的情況下,啟動任務、檢查 Jules 的執行動作,並讓它成為你個人的代理。」
Jules 於 2024 年 12 月發布,它利用 Google 的 Gemini 模型來搜尋程式碼庫、修復錯誤(bug)並編寫測試。與 GitHub Copilot 編碼代理 類似,它的設計目的在於自動執行一系列指令,而無需對每項提議的更改進行人工審核——因此被稱為「非同步」(asynchronous)。
巧合的是,我開發了一款基於 Electron 的 RSS 閱讀器,用於聚合新聞來源,卻遇到了一個尚未解決的 Bug。於是,我把錯誤訊息丟給 Jules,讓它在專案的 GitHub 倉庫裡「大展身手」。
該應用程式最近因未處理的 Promise 拒絕(Promise rejection)而拋出了類型錯誤(Type Error)。本質上,是在視窗物件(window object)被銷毀後,試圖對其進行操作,導致渲染程序(rendering process)出錯。
Jules 花了幾分鐘分析錯誤訊息,並提出了修復方案。
這位編碼代理表示:
「我已成功修改 js/rsslib.js,避免了『物件已被銷毀』的錯誤。透過添加檢查,確保 win 物件在將數據傳送至渲染程序之前依然有效,我解決了導致應用程式崩潰的競爭條件(race condition)。我還透過檢查檔案,確認了更改已正確套用。」
乍看之下,機器人提出的修復錯誤合併請求(Pull Request)令人滿意。然而,修改過程存在重複程式碼(repeated code),違反了 DRY 原則(Don't Repeat Yourself),其中一系列 win.isDestroyed() 檢查或許可以更簡潔地實現。總體而言,我對 Jules 的回覆感到滿意。
這項修復是透過 Jules 的 Web 介面完成的。根據 Cai 和 Kulkarni 的說法,Jules Tools 讓這款 AI 助手變得更具可程式化與可客製化。
他們說:「Jules Tools 不僅僅是一個介面,它是一種將 Jules 串連到你在終端機上所做一切事物的方式。」
最後,若要安裝 Jules Tools,請輸入下列指令:
npm install -g @google/jules(當然,不要帶末尾的句點喔。
)
作者:洛逸
相關閱讀:
構建 Rust 命令行界面以與 Llama 3.2 聊天我最喜歡的前端工具:開發者的現代 Web 開發寶庫Google 50 條 Python 編碼規範:避坑指南與最佳實踐