工具
Gemini CLI 包含內建工具,Gemini 模型可使用這些工具與您的本機環境互動、存取資訊並執行動作。這些工具增強了 CLI 的功能,使其超越純文字生成,並協助處理各種任務。
Gemini CLI 工具概覽
在 Gemini CLI 的情境中,工具是 Gemini 模型可以請求執行的特定函式或模組。例如,如果您要求 Gemini「摘要 my_document.txt
的內容」,模型可能會辨識出需要讀取該檔案,並請求執行 read_file
工具。
核心元件 (packages/core
) 管理這些工具,將其定義(結構描述)呈現給 Gemini 模型,在請求時執行它們,並將結果傳回模型以進一步處理為使用者可見的回應。
這些工具提供以下功能:
- 存取本機資訊: 工具允許 Gemini 存取您的本機檔案系統、讀取檔案內容、列出目錄等。
- 執行指令: 使用像
run_shell_command
這樣的工具,Gemini 可以執行 shell 指令(需有適當的安全措施和使用者確認)。 - 與網路互動: 工具可以從 URL 擷取內容。
- 執行動作: 工具可以修改檔案、寫入新檔案,或在您的系統上執行其他動作(同樣,通常會有安全防護措施)。
- 奠基回應: 透過使用工具擷取即時或特定的本機資料,Gemini 的回應可以更準確、更相關,並立足於您的實際情境。
如何使用 Gemini CLI 工具
若要使用 Gemini CLI 工具,請向 Gemini CLI 提供提示。其流程如下:
- 您向 Gemini CLI 提供提示。
- CLI 將提示傳送至核心。
- 核心連同您的提示和對話歷史記錄,將可用工具及其描述/結構描述的列表傳送至 Gemini API。
- Gemini 模型會分析您的請求。如果模型判定需要使用某個工具,其回應將包含執行帶有特定參數的特定工具的請求。
- 核心接收此工具請求,進行驗證,並(對於敏感操作,通常在使用者確認後)執行該工具。
- 工具的輸出會被傳回給 Gemini 模型。
- Gemini 模型使用工具的輸出來形成最終答案,然後透過核心傳回 CLI 並顯示給您。 您通常會在 CLI 中看到訊息,指示工具何時被呼叫,以及它是成功還是失敗。
安全性與確認
許多工具,特別是那些可以修改您的檔案系統或執行指令(write_file
、edit
、run_shell_command
)的工具,在設計時都考慮到了安全性。Gemini CLI 通常會:
- 要求確認: 在執行潛在的敏感操作前提示您,並顯示即將執行的動作。
- 利用沙箱(Sandboxing): 所有工具都受到沙箱強制執行的限制(請參閱 README)。這表示在沙箱中操作時,您希望使用的任何工具(包括 MCP 伺服器)都必須在沙箱環境內部可用。例如,要透過
npx
執行 MCP 伺服器,npx
可執行檔必須安裝在沙箱的 Docker 映像檔中,或在sandbox-exec
環境中可用。
在允許工具繼續執行之前,務必仔細檢閱確認提示。
深入了解 Gemini CLI 的工具
Gemini CLI 的內建工具可大致分為以下幾類:
- 檔案系統工具: 用於與檔案和目錄互動(讀取、寫入、列出、搜尋等)。
- Shell 工具 (
run_shell_command
): 用於執行 shell 指令。 - 網頁擷取工具 (
web_fetch
): 用於從 URL 擷取內容。 - 網頁搜尋工具 (
web_search
): 用於搜尋網路。 - 多檔案讀取工具 (
read_many_files
): 一種用於從多個檔案或目錄讀取內容的專用工具,常由@
指令使用。 - 記憶體工具 (
save_memory
): 用於跨會話儲存和回憶資訊。
此外,這些工具還包含:
- MCP 伺服器:MCP 伺服器作為 Gemini 模型與您的本機環境或其他服務(如 API)之間的橋樑。
- 沙箱 (Sandboxing):沙箱將模型及其變更與您的環境隔離,以降低潛在風險。