工具
Gemini CLI 包含內建工具,Gemini 模型可使用這些工具與您的本機環境互動、存取資訊並執行動作。這些工具擴充了 CLI 的功能,使其不僅能產生文字,還能協助處理各種任務。
Gemini CLI 工具總覽
在 Gemini CLI 的情境中,工具是 Gemini 模型可以要求執行的特定函式或模組。例如,如果您要求 Gemini「摘要 my_document.txt
的內容」,模型可能會判斷需要讀取該檔案,並要求執行 read_file
工具。
核心元件 (packages/core
) 會管理這些工具、向 Gemini 模型呈現其定義 (結構描述)、在收到要求時執行它們,並將結果傳回模型以進一步處理成使用者可見的回應。
這些工具提供以下功能:
- 存取本機資訊: 工具可讓 Gemini 存取您的本機檔案系統、讀取檔案內容、列出目錄等。
- 執行指令: 透過
run_shell_command
等工具,Gemini 可以執行 shell 指令 (具備適當的安全措施和使用者確認)。 - 與網路互動: 工具可以從網址擷取內容。
- 採取行動: 工具可以修改檔案、寫入新檔案,或在您的系統上執行其他動作 (同樣地,通常會有安全防護措施)。
- 讓回應有所依據: 透過使用工具擷取即時或特定的本機資料,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 通常會:
- 要求確認: 在執行潛在的敏感操作之前提示您,並顯示即將採取的動作。
- 利用沙盒: 所有工具都受到沙盒強制執行的限制 (請參閱 Gemini CLI 中的沙盒)。這表示在沙盒中操作時,您希望使用的任何工具 (包括 MCP 伺服器) 都必須在沙盒環境中可用。例如,若要透過
npx
執行 MCP 伺服器,npx
執行檔必須安裝在沙盒的 Docker 映像檔中,或在sandbox-exec
環境中可用。
在允許工具繼續執行之前,請務必仔細檢閱確認提示。
進一步了解 Gemini CLI 的工具
Gemini CLI 的內建工具大致可分為以下幾類:
- 檔案系統工具: 用於與檔案和目錄互動 (讀取、寫入、列出、搜尋等)。
- Shell 工具 (
run_shell_command
): 用於執行 shell 指令。 - 網頁擷取工具 (
web_fetch
): 用於從網址擷取內容。 - 網頁搜尋工具 (
web_search
): 用於搜尋網路。 - 多檔案讀取工具 (
read_many_files
): 一種專門用於從多個檔案或目錄讀取內容的工具,通常由@
指令使用。 - 記憶工具 (
save_memory
): 用於跨工作階段儲存和擷取資訊。
此外,這些工具還包含: