附錄 E - CLI 上的 人工智慧 代理
介紹
開發人員的命令列長期以來一直是精確、命令式命令的堡壘,現在正在經歷深刻的轉變。它正在從一個簡單的 shell 發展成為一個由新型工具支援的智慧協作工作區:人工智慧 代理命令列介面 (CLI)。這些代理不僅僅是執行命令;他們理解自然語言,維護整個程式碼庫的上下文,並且可以執行複雜的多步驟任務,從而自動化開發生命週期的重要部分。
本指南深入介紹了這個新興領域的四家領導企業,探索他們獨特的優勢、理想的用例和獨特的理念,幫助您確定哪種工具最適合您的工作流程。值得注意的是,為特定工具提供的許多範例用例通常也可以由其他代理完成。這些工具之間的主要區別通常在於它們針對給定任務能夠實現的結果的品質、效率和細微差別。有一些特定的基準旨在衡量這些功能,將在以下各節中討論。
Claude 4 CLI(克勞德代碼)
Anthropic 的 Claude CLI 被設計為高階Coding Agent,對專案架構有深入、全面的了解。它的核心優勢是它的「代理」性質,允許它為複雜的多步驟任務創建儲存庫的心理模型。這種互動是高度對話式的,類似於結對程式設計會話,在執行之前解釋其計劃。這使其成為從事涉及重大重構或實現具有廣泛架構影響的功能的大型專案的專業開發人員的理想選擇。
用例範例:
-
大規模重構: 您可以指示它:「我們目前的使用者驗證依賴會話 cookie。重構整個程式碼庫以使用無狀態 JWT,更新登入/登出端點、中間件和前端令牌處理。」然後,克勞德將讀取所有相關檔案並執行協調的變更。
-
API 整合: 在為新的天氣服務提供 OpenAPI 規範後,您可以說:“集成這個新的天氣 API。創建一個服務模組來處理 API 調用,添加一個新組件來顯示天氣,並更新主儀表板以包含它。”
-
文件產生:將其指向一個代碼文件記錄不完善的複雜模組,你可以問:“分析
./src/utils/data_processing.js文件。為每個函數生成全面的 TSDoc 註釋,解釋其用途、參數和返回值。”
Claude CLI 充當專門的程式設計助手,具有核心開發任務的固有工具,包括文件攝取、程式碼結構分析和編輯生成。它與 Git 的深度整合有利於直接分支和提交管理。此代理的可擴展性由多工具控制協定(MCP)調節,使用戶能夠定義和整合自訂工具。這允許與私有 API、資料庫查詢和執行特定於專案的腳本進行互動。這種架構將開發人員定位為代理功能範圍的仲裁者,有效地將 Claude 描述為由使用者定義的工具增強的推理引擎。
Gemini CLI
Google 的 Gemini CLI 是一款多功能開源 人工智慧 代理,專為強大功能和可訪問性而設計。它憑藉先進的 Gemini 2.5 Pro 模型、巨大的上下文視窗和多模式功能(處理圖像和文字)而脫穎而出。其開源特性、慷慨的免費套餐以及「理性與行動」循環使其成為面向廣大受眾(從愛好者到企業開發人員,尤其是 Google Cloud 生態系統內的開發人員)的透明、可控且出色的全能工具。
用例範例:
-
多模式開發: 您提供設計文件中的 Web 元件的螢幕截圖 (gemini describe component.png) 並指示它:“編寫 HTML 和 CSS 程式碼來建立一個看起來與此完全相同的 React 元件。確保它具有響應能力。”
-
雲端資源管理: 使用其內建的 Google Cloud 集成,您可以命令:“查找生產項目中運行早於 1.28 版本的所有 GKE 叢集,並生成 gcloud 命令將其一一升級。”
-
企業工具整合(透過 MCP): 開發人員為 Gemini 提供了一個名為 get-employee-details 的自訂工具,該工具連接到公司的內部 HR API。提示是:“為我們的新員工起草一份歡迎文件。首先,使用 get-employee-details –id=E90210 工具獲取他們的姓名和團隊,然後使用該信息填充welcome_template.md。”
-
大規模重構:開發人員需要重構大型 Java 程式碼庫,以新的結構化日誌框架取代已棄用的日誌庫。他們可以使用 Gemini 並提示如下:讀取“src/main/java”目錄中的所有 *.java 檔案。對於每個文件,將“org.apache.log4j”導入及其“Logger”類別的所有實例替換為“org.slf4j.Logger”和“LoggerFactory”。重寫記錄器實例化以及所有 .info()、.debug() 和 .error() 調用,以使用帶有鍵值對的新結構化格式。
Gemini CLI 配備了一套內建工具,可使其與其環境互動。其中包括用於檔案系統操作(如讀取和寫入)的工具、用於執行命令的 shell 工具以及用於透過 Web 取得和搜尋存取網路的工具。對於更廣泛的上下文,它使用專門的工具一次讀取多個文件,並使用記憶體工具為以後的會話保存資訊。此功能建立在安全的基礎上:沙箱隔離模型的操作以防止風險,而 MCP 伺服器充當橋樑,使 Gemini 能夠安全地連接到您的本地環境或其他 API。
助手
Aider 是一款開源 人工智慧 程式設計助手,透過直接處理您的檔案並將變更提交到 Git,充當真正的配對程式設計師。它的顯著特徵是直接性。它應用編輯,運行測試來驗證它們,並自動提交每個成功的變更。由於與模型無關,它使用戶可以完全控製成本和功能。其以 git 為中心的工作流程使其非常適合重視效率、控制以及所有程式碼修改的透明、可審核追蹤的開發人員。
用例範例:
-
測試驅動開發 (TDD): 開發人員可以說:「為計算數字階乘的函數建立失敗測試。」Aider 編寫測試失敗後,下一個提示是:「現在,編寫程式碼以使測試通過」。 Aider實現該功能並再次執行測試進行確認。
-
精確的錯誤壓縮: 給定錯誤報告,您可以指示 Aider:“billing.py 中的
calculate_total函數在閏年失敗。將文件添加到上下文中,修復錯誤,並根據現有測試套件驗證您的修復。” -
依賴項更新: 您可以指示它:“我們的專案使用過時版本的‘requests’庫。請檢查所有Python文件,更新導入語句和任何已棄用的函數調用以與最新版本兼容,然後更新requirements.txt。”
GitHub Copilot CLI
GitHub Copilot CLI 將流行的 人工智慧 對程式設計師擴展到終端,其主要優勢是與 GitHub 生態系統的原生深度整合。它了解 GitHub 內專案的上下文。它的代理功能允許它分配 GitHub 問題、進行修復並提交拉取請求以供人工審核。
用例範例:
-
自動問題解決: 經理將錯誤通知單(例如,「問題 #123:修正分頁中的逐一錯誤」)指派給 Copilot 代理。然後,代理檢查一個新分支,編寫程式碼,並提交引用該問題的拉取請求,所有這些都無需開發人員手動幹預。
-
儲存庫感知問答: 團隊中的新開發人員可以問:「這個儲存庫中的什麼位置定義了資料庫連接邏輯,需要哪些環境變數?」Copilot CLI 利用其對整個儲存庫的感知來提供檔案路徑的精確答案。
-
Shell指令助手: 當不確定複雜的shell指令時,使用者可以問:gh?找到所有大於 50MB 的文件,壓縮它們,並將它們放在存檔資料夾中。 Copilot 將產生執行任務所需的確切 shell 命令。
Terminal-Bench:命令列介面中 人工智慧 代理的基準
Terminal-Bench 是一種新穎的評估框架,旨在評估人工智慧代理在命令列介面中執行複雜任務的熟練程度。由於其基於文字的沙盒特性,該終端被認為是人工智慧代理操作的最佳環境。初始版本 Terminal-Bench-Core-v0 包含 80 個手動策劃的任務,涵蓋科學工作流程和數據分析等領域。為了確保公平比較,我們開發了一款簡約代理 Terminus,作為各種語言模型的標準化測試平台。該框架專為可擴展性而設計,允許透過容器化或直接連接整合不同的代理。未來的發展包括實現大規模平行評估並納入既定基準。該專案鼓勵開源貢獻以擴展任務和增強協作框架。
結論
這些強大的人工智慧命令列代理的出現標誌著軟體開發的根本性轉變,將終端轉變為動態的協作環境。如我們所見,不存在單一的「最佳」工具;只有一種工具才是「最佳」工具。相反,一個充滿活力的生態系統正在形成,每個代理都提供專業的優勢。理想的選擇完全取決於開發人員的需求:Claude 用於複雜的架構任務,Gemini 用於多功能和多模式問題解決,Aider 用於以 git 為中心的直接程式碼編輯,而 GitHub Copilot 用於無縫整合到 GitHub 工作流程中。隨著這些工具的不斷發展,熟練地利用它們將成為一項基本技能,從根本上改變開發人員建構、調試和管理軟體的方式。
參考
-
人擇。 克勞德。 https://docs.anthropic.com/en/docs/claude-code/cli-reference
-
Google Gemini Cli https://github.com/google-gemini/gemini-cli
-
GitHub Copilot CLI https://docs.github.com/en/copilot/github-copilot-enterprise/copilot-cli
-
終端工作台:https://www.tbench.ai/