配置
忽略檔案
透過在專案中建立 `.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 與程式碼庫的互動。
這個主題如何?