模式
Plan 和 Work 是產品模式,不是 Crystal 類型。一個布林值 PlanMode 儲存在工作階段文件上,恢復該工作階段時還原。它不寫入 config.json。切換不會開始新的記錄。
TogglePlan 翻轉該旗標,替換活動的系統訊息,並重新整理介面裝飾。對話的其餘部分保持不變。/plan 會這樣做,並註明 Plan 或 Work。Tab 和 Shift+Tab 從輸入框傳送相同的切換。新工作階段以 Work 開始。
每種模式有自己的系統文字和自己的工具執行器。回合在模型請求執行時使用目前模式的執行器。該回合的外掛模型用途是匹配的 plan 或 work。
兩個目錄都從為該目錄註冊的內建工具開始,然後按順序加入:
- 為該目錄列出的磁碟外掛。
- 為該目錄列出的外部工具。
skill,僅當技能已啟用。describe_image,僅當已設定圖像描述器。
然後 disabledBuiltInTools 從該清單中移除匹配的內建名稱。view_image 不在文字目錄上。它只加入多模態執行器,且僅當工作階段模型接受圖像時。同一個停用清單也可以移除它。
| 模式 | 內建工具 | 副作用 |
|---|---|---|
| Plan | read、list、tree、glob、grep、search、todowrite、todoread、question,加上這些功能開啟時的 skill 和 describe_image,以及圖像回合上的 view_image |
沒有 edit、write、bash、bash_start、bash_status、bash_logs 或 bash_stop。這些名稱不在 Plan 目錄中。 |
| Work | Plan 的內建工具,加上 edit、write 和 bash。存在背景任務註冊表時,還有 bash_start、bash_status、bash_logs 和 bash_stop |
核准之後。bash 使用 bashTimeoutSeconds。 |
為 Plan 列出的外部工具留在 Plan 目錄上。它們的分類下限是 Write + Workspace。宣告的路徑參數可以提高權限或變為 Forbidden。工具提供的分類器可以提高風險或權限,不能降低它們。它們仍然經過核准。
Plan 會拒絕副作用兩次
Section titled “Plan 會拒絕副作用兩次”Plan 目錄省略了副作用工具,因此正常的模型回合不能呼叫它們。如果呼叫仍然到達,核准策略也會在分類之前拒絕它們:
Plan mode does not allow <name>.
該檢查涵蓋 edit、write、bash、bash_start 和 bash_stop。bash_status 和 bash_logs 被分類為讀取,但它們只為 Work 建構。
唯讀工作階段目錄也會在分類之前被拒絕,針對 write 和 edit:
Writing to a read-only session directory is not allowed. Change its access with /access.