配置

忽略檔案

透過在專案中建立 `.bobignore` 檔案來控制 Bob 可以存取哪些檔案。

什麼是 .bobignore?

  • 目的:保護敏感資訊、防止意外變更建置產物或大型資產,並通常定義 Bob 在工作區內的操作範圍。
  • 如何使用:在工作區目錄中建立名為 .bobignore 的檔案。在此檔案中列出模式以告訴 Bob 要忽略哪些檔案和目錄。

Bob 會主動監控 .bobignore 檔案。您所做的任何變更都會自動重新載入,確保 Bob 始終使用最新的規則。.bobignore 檔案本身始終被隱式忽略,因此 Bob 無法變更自己的存取規則。

模式語法

.bobignore 的語法與 .gitignore 相同。以下是常見範例:

範例說明
node_modules/忽略整個 node_modules 目錄
*.log忽略所有以 .log 結尾的檔案
config/secrets.json忽略特定檔案
!important.log例外;Bob 將不會忽略此特定檔案,即使存在像 *.log 這樣的更廣泛模式
build/忽略 build 目錄
docs/**/*.md忽略 docs 目錄及其子目錄中的所有 Markdown 檔案

要了解語法,請參閱 .gitignore 的官方 Git 文件。

Bob 工具如何與 .bobignore 互動

.bobignore 規則在 Bob 的檔案工具中強制執行:

讀取和寫入工具

這些工具在任何檔案操作之前檢查 .bobignore。如果檔案符合忽略模式,操作將被阻止:

  • read_file:不會讀取被忽略的檔案。
  • write_file:不會寫入或建立被忽略的檔案。
  • apply_diff:不會對被忽略的檔案應用差異。
  • insert_content:不會在被忽略的檔案中插入內容。
  • search_and_replace:不會修改被忽略的檔案。
  • GetSymbolsOverview:不會解析被忽略的檔案以獲取程式碼符號。

檔案發現和列表

  • list_files 工具:被忽略的檔案會從列表中省略或標記為 🔒 符號(請參閱下面的「使用者體驗」)。
  • 環境詳細資訊:提供給 Bob 的工作區資訊(如開啟的標籤和專案結構)會被過濾以排除或標記被忽略的項目。

命令執行

  • execute_command 工具:Bob 會檢查來自預定義清單(例如 cat 或 grep)的命令是否針對被忽略的檔案。如果是,則阻止執行命令。預定義清單以外的命令不會針對 .bobignore 進行檢查。

限制: .bobignore 和工作區沙箱設定(「允許工作區外的工具請求」)是兩個獨立的控制項。.bobignore 限制 Bob 的檔案工具在工作區內可以存取的檔案。工作區沙箱設定控制檔案工具是否可以在工作區根目錄之外操作。這兩個控制項都不會限制 execute_command 的任意 Shell 操作;Shell 命令仍然可以在作業系統允許的任何位置建立、修改或刪除檔案,無論這些設定為何。

主要限制和範圍

  • 以工作區為中心:.bobignore 規則僅適用於目前 Bob 工作區根目錄內的檔案和目錄。此範圍之外的檔案不受影響。
  • execute_command 範圍:.bobignore 對 execute_command 的強制執行僅涵蓋預定義的檔案讀取命令清單。任意 Shell 命令不受 .bobignore 或工作區沙箱設定的限制。
  • 不是完整的沙箱:.bobignore 控制 Bob 在工作區內的檔案工具存取。它不會建立系統級沙箱,也不會限制 Shell 命令執行。

使用者體驗和通知

  • 視覺提示(🔒):在檔案列表中,被 .bobignore 忽略的檔案可能會標記為鎖定符號(🔒),具體取決於 showbobignoredFiles 設定(預設為 true)。
  • 錯誤訊息:如果工具操作被阻止,Bob 會收到錯誤:「對 [file_path] 的存取被 .bobignore 檔案設定阻止。您必須嘗試在不使用此檔案的情況下繼續任務,或要求使用者更新 .bobignore 檔案。」
  • 聊天通知:當由於 .bobignore 而阻止操作時,您通常會在 Bob 聊天介面中看到通知。

本指南幫助您了解 .bobignore 功能、其功能及其目前的限制,以便您可以有效地管理 Bob 與程式碼庫的互動。

這個主題如何?