Gemini CLI 工具
Gemini CLI 包含內建工具,讓 Gemini 模型能與你的本地環境互動、存取資訊並執行操作。這些工具強化了 CLI 的能力,使其不僅僅侷限於文字生成,還能協助完成各種任務。
Gemini CLI 工具總覽
在 Gemini CLI 的情境下,工具是指 Gemini 模型可以請求執行的特定功能或模組。例如,當你請求 Gemini「摘要 my_document.txt
的內容」時,模型很可能會判斷需要讀取該檔案,並請求執行 read_file
工具。
核心元件(packages/core
)負責管理這些工具,將它們的定義(schema)提供給 Gemini 模型,在收到請求時執行工具,並將結果回傳給模型以進一步處理,最終產生面向使用者的回應。
這些工具提供以下能力:
- 存取本地資訊: 工具讓 Gemini 能存取你的本地檔案系統、讀取檔案內容、列出目錄等。
- 執行指令: 透過像是
run_shell_command
這類工具,Gemini 可以執行 shell 指令(具備適當的安全措施與使用者確認)。 - 與網路互動: 工具可從 URL 擷取內容。
- 執行動作: 工具可修改檔案、寫入新檔案,或在你的系統上執行其他操作(同樣通常會有安全防護)。
- 回應落地: 透過工具取得即時或特定本地資料,Gemini 的回應能更精確、相關,並根據你的實際情境產生。
如何使用 Gemini CLI 工具
要使用 Gemini CLI 工具,只需向 Gemini CLI 輸入提示。整個流程如下:
- 你向 Gemini CLI 輸入提示。
- CLI 將提示傳送給核心元件。
- 核心元件會連同你的提示與對話歷史,將可用工具及其描述/schema 一併傳送給 Gemini API。
- Gemini 模型分析你的請求。如果判斷需要工具,回應中會包含執行特定工具及其參數的請求。
- 核心元件收到工具請求後,進行驗證,並(對於敏感操作通常會先請你確認)執行該工具。
- 工具的輸出結果會回傳給 Gemini 模型。
- Gemini 模型利用工具的輸出產生最終答案,經由核心元件傳回 CLI 並顯示給你。
你通常會在 CLI 中看到工具被呼叫及其執行成功或失敗的訊息。
安全性與操作確認
許多工具,特別是那些能修改檔案系統或執行指令的工具(write_file
、edit
、run_shell_command
),都以安全為設計重點。Gemini CLI 通常會:
- 要求確認: 在執行潛在敏感操作前,會提示你並顯示即將執行的動作。
- 採用沙箱機制(sandboxing): 所有工具都受到沙箱機制的限制(詳見 Gemini CLI 的沙箱機制)。這表示在沙箱環境下運作時,任何你想使用的工具(包括 MCP 伺服器)都必須在沙箱環境內可用。例如,若要透過
npx
執行 MCP 伺服器,npx
執行檔必須安裝在沙箱的 Docker 映像檔內,或可在sandbox-exec
環境中取得。
在允許工具執行前,請務必仔細檢查確認提示。
進一步了解 Gemini CLI 的工具
Gemini CLI 內建工具大致可分為以下幾類:
- 檔案系統工具: 用於與檔案和目錄互動(讀取、寫入、列出、搜尋等)。
- Shell 工具(
run_shell_command
): 用於執行 shell 指令。 - Web Fetch 工具(
web_fetch
): 用於從 URL 擷取內容。 - 網頁搜尋工具 (Web Search Tool)(
web_search
): 用於網頁搜尋。 - 多檔案讀取工具(
read_many_files
): 專門用於讀取多個檔案或目錄內容的工具,常由@
指令呼叫。 - 記憶體工具(
save_memory
): 用於跨工作階段儲存與回憶資訊。
此外,這些工具還包含:
- MCP 伺服器 (MCP servers): MCP 伺服器作為 Gemini 模型與本地環境或其他服務(如 API)之間的橋樑。
- 沙箱機制 (Sandboxing): 沙箱機制將模型及其變更與你的環境隔離,以降低潛在風險。