---
title: 執行模式與權限
description: 了解不同的執行模式及其適用時機
---

---

Verdent for VS Code 提供多種執行模式，用來控制 AI 如何與你的檔案互動及執行指令。每種模式在控制力、速度與安全性之間提供不同的取捨。

### 你將學到

- 每種執行模式的運作方式與適用時機
- 權限模型與安全考量
- 模式比較與切換策略
- 用於複雜推理任務的 Think Hard Mode

### 可用的主要模式

<CardGroup cols={2}>
  <Card title="Manual Accept Mode" icon="hand">
    預設模式，每個受保護的操作都會請求權限。提供最高的控制力與監督。
  </Card>
  <Card title="Auto-Run Mode" icon="play">
    自動執行檔案操作，指令則需要權限。在速度與安全之間取得平衡。
  </Card>
  <Card title="Skip Permission Mode" icon="forward">
    在隔離環境中完全自主。任何操作都不會出現權限提示。
  </Card>
  <Card title="Plan Mode" icon="clipboard-list">
    唯讀規劃模式。在開始執行前先審查完整計畫。
  </Card>
</CardGroup>

---

## 執行模式

<Tabs>
  <Tab title="Manual Accept Mode">
    Manual Accept Mode 是預設的執行模式，提供對檔案修改與指令執行的控制。

    **自動執行的操作：**
    - 檔案讀取與程式碼分析
    - 目錄瀏覽

    **需要權限的操作：**
    - 檔案編輯（建立、修改、刪除）
    - 指令執行（終端機指令、測試、建置）

    當 Verdent 需要執行受保護的操作時，會顯示它想採取的動作以及涉及的檔案／指令。你可以對每個操作選擇 **Accept** 或 **Reject**。

    **重要：** 每次授權僅針對該特定操作。Manual Accept Mode 要求在整個工作階段中對每個受保護的操作都進行核准。

    #### 適用時機

    - 學習 Verdent 的功能與工作流程模式
    - 在不熟悉的程式碼庫中工作，需要謹慎監督
    - 對正式環境程式碼或安全敏感區域進行關鍵變更
    - 需要明確核准軌跡的合規要求

    #### 啟用方式

    Manual Accept Mode 預設為啟用狀態。若要切換回來：

    <Steps>
      <Step title="開啟權限選單">
        點擊輸入框中的「Switch Permission」按鈕
      </Step>
      <Step title="選擇 Manual Accept Mode">
        從下拉選單中選擇「Manual Accept Mode」
      </Step>
      <Step title="確認啟用">
        按鈕顯示「Manual」即表示模式已啟用
      </Step>
    </Steps>

    #### 安全考量

    **優點：**
    - 每種工具類型（檔案編輯、指令、工具）首次使用時需核准
    - 在授予存取權之前提供完整可見性
    - 最高的控制力與透明度

    **限制：**
    - 在某種工具類型首次核准後，後續使用將不再出現提示
    - 核准是針對每種工具類型，而非每個操作
    - 處理關鍵程式碼時，請開始新的工作階段以重設工具核准
  </Tab>

  <Tab title="Auto-Run Mode">
    Auto-Run Mode 會自動核准檔案操作，同時要求對指令進行授權。這能減少例行檔案工作的權限提示，同時對高風險操作維持安全性。

    **自動執行：**
    - 在工作區內讀取、編輯、建立、刪除檔案
    - 在工作區內移動、重新命名、整理檔案
    - 檔案搜尋與導覽操作

    **需要權限：**
    - **任何涉及目前工作區以外路徑的指令**
    - **危險的 bash 指令：** `rm -rf`、`git commit`、`git push` 等
    - 指令執行（終端機、腳本、建置）
    - 套件安裝與系統修改

    #### 適用時機

    | 適合使用 Auto-Run 的情況 | 不要用於 |
    |------------------|---------------|
    | 有版本控制的受信任程式碼庫 | 不熟悉的程式碼庫 |
    | 快速原型開發與實驗 | 關鍵的正式環境程式碼 |
    | 多檔案重構（15 個以上檔案 = 省下 15 次提示） | 沒有版本控制安全網 |
    | 需減少中斷的專注開發 | 合規要求 |

    #### 啟用方式

    <Steps>
      <Step title="開啟權限選單">
        點擊顯示目前模式的「Switch Permission」按鈕
      </Step>
      <Step title="選擇 Auto-Run Mode">
        從下拉選單中選擇「Auto-Run Mode」
      </Step>
      <Step title="確認啟用">
        按鈕顯示「Auto」即表示模式已啟用
      </Step>
    </Steps>

    此設定會在工作階段與 VS Code 重新啟動後持續保留。並會全域套用至所有工作區。

    #### 範例工作流程

    **建立 POST /api/tasks 端點：**

    1. 啟用 Auto-Run Mode
    2. 提交：「Create POST /api/tasks endpoint that validates category exists, saves to database」
    3. Verdent 讀取 5 個以上檔案，並自動修改 3 個檔案（無提示）
    4. 在 Source Control 面板中審查變更
    5. 請求測試：「Run the tests for the tasks API」
    6. 出現 `npm test` 指令的權限提示 — Accept
    7. 新增驗證：「Add validation for empty titles」
    8. Verdent 自動編輯（無提示）
    9. 再次請求測試 — 出現權限提示 — Accept
    10. 審查 diff，提交變更

    **結果：** 3 次指令提示、0 次檔案提示。若使用 Manual Accept 則需額外 4 次檔案提示。

    #### 安全考量

    **優點：**
    - 變更立即顯示在 VS Code 中
    - 範圍限定於工作區（無法影響系統檔案）
    - Git 提供回復的安全保障

    **風險：**
    - 沒有檔案操作的監督
    - 預期外的範圍（「Rename User to Account」可能修改數十個檔案）
    - 清理過程中可能刪除檔案
    - 在被提示時可能修改敏感檔案

    **緩解措施：**
    - 使用清楚、明確的提示詞
    - 完成後審查 Source Control 面板
    - 頻繁提交以建立乾淨的檢查點
    - 對複雜操作先使用 Plan Mode
    - 設定 .gitignore 以保護敏感檔案
  </Tab>

  <Tab title="Skip Permission Mode">
    Skip Permission Mode 會略過所有權限提示，允許完全自主。**僅在隔離、可拋棄的環境中使用。**

    **所有操作皆自動執行：**
    - 檔案操作
    - 指令執行
    - 套件安裝
    - 系統層級操作

    <Warning>
    此模式移除了所有安全防護機制。僅在完全隔離、可拋棄且錯誤不會造成任何後果的環境中使用。切勿在正式環境或任何你在意的程式碼庫中使用。
    </Warning>

    #### 適用時機

    | 適合使用 Skip Permission 的情況 | 絕不要用於 |
    |------------------------|---------------|
    | 隔離容器中的自動化 CI/CD 流水線 | 正式環境 |
    | 可拋棄的開發容器（實驗後即刪除） | 含有重要程式碼的開發環境 |
    | 無正式環境連線的沙箱環境 | 任何你在意的程式碼庫 |
    | 人工核准會失去意義的腳本化工作流程 | 共用儲存庫 |
    | | 含有敏感資料的環境 |

    #### 啟用方式

    <Steps>
      <Step title="開啟權限選單">
        點擊「Switch Permission」按鈕
      </Step>
      <Step title="選擇 Skip Permission Mode">
        從下拉選單中選擇「Skip Permission Mode」
      </Step>
      <Step title="確認啟用">
        按鈕顯示「Skip」即表示模式已啟用
      </Step>
    </Steps>

    **啟用前的安全檢查：**
    - 這是可拋棄的容器或 VM 嗎？
    - 這個環境可以被刪除而不會造成任何後果嗎？
    - 這裡有任何正式環境或重要程式碼嗎？

    若前兩項為「否」或第三項為「是」，請勿啟用。

    #### 安全警告

    **所有安全防護機制皆已移除：**
    - 指令會以系統權限立即執行
    - 檔案可能在沒有警告的情況下被修改或刪除
    - 資料庫操作、Git 操作（包括 force push）都會在未經核准的情況下進行
    - 可能安裝惡意套件或洩漏憑證

    **僅在以下情況才安全：**
    - 環境完全可拋棄
    - 不存在任何重要的程式碼或資料
    - 沒有連接到正式系統
    - 你接受任何東西都可能被銷毀
  </Tab>
</Tabs>

---

## Plan Mode

Plan Mode 是一種唯讀互動模式，Verdent 會在此分析程式碼、建立詳細計畫並提出釐清問題，但在你核准之前無法修改檔案或執行指令。

#### 運作方式

1. **分析** — 自動讀取檔案
2. **規劃** — 建立含待辦清單的結構化計畫
3. **釐清** — 提出問題以消除不確定性
4. **核准** — 你審查並決定是否繼續
5. **執行** — 切換至你的權限模式以執行

計畫會顯示要修改的檔案、實作步驟、相依項目以及驗證策略。

#### 適用時機

- 複雜的多檔案變更（在投入前先了解範圍）
- 不熟悉的程式碼庫（在無風險下安全探索）
- 架構決策（在實作前審查方法）
- 避免 Manual Accept 疲勞（審查一次 vs 50 次個別提示）
- 高風險的正式環境變更（執行前提供完整可見性）

#### 啟用方式

<Steps>
  <Step title="開啟模式選單">
    點擊輸入框中的「Switch Mode」按鈕
  </Step>
  <Step title="選擇 Plan Mode">
    從下拉選單中選擇「Plan Mode」
  </Step>
  <Step title="確認啟用">
    模式指示器變為「Plan」即表示模式已啟用
  </Step>
</Steps>

啟用後，Verdent 會進行分析並建立計畫，但在你核准之前不會修改檔案或執行指令。核准後，會切換至你的預設權限模式（Manual Accept 或 Auto-Run）。

#### 安全考量

**優點：**
- 規劃期間零執行風險
- 在投入前提供完整可見性
- 互動式釐清可消除不確定性
- 適合用於正式環境分析

**限制：**
- 核准並不保證正確性（計畫可能存在邏輯錯誤）
- 執行安全性取決於核准後所選的權限模式
- 計畫品質取決於提示詞的清晰度

**最佳實務：**
- 審查計畫是否有邏輯錯誤或誤解
- 若不清楚請提出後續問題
- 在核准執行前優化提示詞
- 考慮將由哪種權限模式執行（Manual Accept 用於監督，Auto-Run 用於速度）

---

## Think Hard Mode

Think Hard Mode 會為複雜推理任務分配最大的運算資源。模型會探索多種方法並提供更周全的解決方案。

**特性：**
- 延長的推理時間
- 對多種解決方法進行更深入的分析
- 更好地處理複雜邏輯、邊緣情況、架構決策
- 每次請求的點數成本較高

#### 適用時機

| 適合使用 Think Hard Mode 的情況 | 不要用於 |
|-------------------------|---------------|
| 具多重取捨的複雜架構決策 | 簡單、直接的任務 |
| 有多個潛在原因的複雜除錯 | 時間敏感的請求 |
| 需要最佳化分析的演算法設計 | 點數預算有限 |
| 正確性至關重要的關鍵業務邏輯 | 標準模式已足夠時 |
| 複雜效能瓶頸的效能最佳化 | |

#### 啟用方式

<Tabs>
  <Tab title="Think Hard 按鈕">
    使用 UI 按鈕進行單次請求的啟用：

    <Steps>
      <Step title="啟用 Think Hard">
        點擊輸入框中的「Think Hard」按鈕／切換開關
      </Step>
      <Step title="提交你的提示詞">
        輸入並提交你的請求
      </Step>
      <Step title="僅限單次請求">
        僅套用於該特定請求 — 不會持續保留
      </Step>
    </Steps>

    適用於所有 AI 供應商。不會持續保留 — 每次需要深度推理的請求都必須重新啟用。
  </Tab>

  <Tab title="自然語言（Claude）">
    在你的提示詞中加入思考關鍵字：

    ```
    Think: Design the optimal database schema for this multi-tenant SaaS application
    ```

    或是為了達到最大程度的推理：

    ```
    Ultrathink: Analyze the trade-offs between different authentication approaches
    ```

    <Note>
    「Think」與「ultrathink」是 Claude 模型特有的功能。這些關鍵字會在 Claude 模型（Sonnet、Opus）中啟用更深入的推理，但可能無法在其他 AI 供應商（GPT-5、MiniMax）上運作。
    </Note>

    僅限單次請求啟用 — 不像 Manual Accept 或 Auto-Run 那樣持續保留。
  </Tab>
</Tabs>

---

## 模式比較

| 模式 | 控制力 | 速度 | 最適合 | 避免使用於 |
|------|---------|-------|----------|------------|
| **Manual Accept** | 最高 | 最慢 | 學習、不熟悉的程式碼、關鍵變更 | 受信任的專案、快速迭代 |
| **Auto-Run** | 中等 | 快 | 受信任的程式碼庫、原型開發、多檔案工作 | 不熟悉的程式碼、無版本控制 |
| **Skip Permission** | 無 | 最快 | CI/CD、可拋棄容器、沙箱 | 正式環境、重要程式碼 |
| **Plan Mode** | 審查優先 | 不適用 | 複雜變更、架構決策 | 簡單任務 |
| **Think Hard** | 單次請求 | 較慢 | 複雜推理、演算法、關鍵邏輯 | 簡單任務、時間敏感 |

### 各模式適用時機

| 情境 | Manual Accept | Auto-Run | Skip Permission | Plan Mode |
|----------|:-------------:|:--------:|:---------------:|:---------:|
| 學習 Verdent | ✓ | | | |
| 不熟悉的程式碼庫 | ✓ | | | ✓ |
| 含 Git 的受信任程式碼庫 | | ✓ | | |
| 關鍵／正式環境程式碼 | ✓ | | | ✓ |
| 快速原型開發 | | ✓ | | |
| 多檔案重構 | | ✓ | | |
| 複雜的架構規劃 | | | | ✓ |
| CI/CD 流水線（隔離） | | | ✓ | |
| 可拋棄容器 | | | ✓ | |
| 合規要求 | ✓ | | | |

---

## 安全最佳實務

<Accordion title="安全層級（從最安全到最不安全）">
  了解每種模式的安全排名，有助於你針對不同風險等級做出適當選擇。

  1. **Plan Mode** — 核准前為唯讀。規劃期間零執行風險。
  2. **Manual Accept Mode** — 每個操作的控制，每種工具類型首次使用時需核准。
  3. **Auto-Run Mode** — 檔案自主，指令需核准。需要 Git 安全網。
  4. **Skip Permission Mode** — 完全自主。僅限隔離環境。

  讓你的模式與風險等級相符：關鍵程式碼使用最安全的模式（Plan、Manual Accept），受信任的程式碼使用較快的模式（Auto-Run），可拋棄環境使用最快的模式（Skip Permission）。
</Accordion>

<Accordion title="一般最佳實務">
  無論你使用哪種執行模式，這些都是適用的基本實務。

  **適用於所有模式：**

  1. **使用版本控制** — 在使用寬鬆模式前先初始化 Git，頻繁提交，提交前審查 diff
  2. **撰寫清楚的提示詞** — 明確說明範圍，明確指定檔案邊界，使用 @-mention 提供上下文
  3. **提交前先審查** — 完成後檢查 Source Control 面板，仔細審查所有 diff，測試變更
  4. **開始全新工作階段** — 在重大任務之間清除上下文，為敏感工作重設工具核准，避免上下文污染
  5. **讓模式與風險相符** — 關鍵程式碼 → Manual Accept 或 Plan Mode，受信任的程式碼 → Auto-Run，實驗 → 搭配 Git 的 Auto-Run，可拋棄環境 → 僅用 Skip Permission

  **安全提醒：**
  - 切勿提交敏感檔案（.env、憑證）
  - 在使用 Auto-Run 前設定 .gitignore
  - 仔細審查指令權限
  - 對影響安全的變更使用 Plan Mode
  - 全新工作階段會重設 Manual Accept 中的工具核准
</Accordion>

<Accordion title="漸進式權限模型">
  了解 Verdent 的權限系統如何運作，有助於你有效地使用它。

  **運作方式：**
  1. **首次使用** — 當你首次使用每種工具類型（檔案編輯、指令執行、工具使用）時，系統會請求權限
  2. **後續使用** — 初次核准後，該工具類型在本次工作階段的其餘時間內將不再出現提示
  3. **新工作階段** — 開始新的工作階段會重設所有核准，讓你重新開始

  **核心原則：** 此模型在安全性與生產力之間取得平衡。你只需審查並核准工具類型一次，之後即可在該核准範圍內高效工作。對於敏感工作，請開始新的工作階段以重設核准。

  **若要重設核准：** 開始新的工作階段
</Accordion>

---

## 另請參閱

<CardGroup cols={2}>
  <Card title="Resource Management" href="/docs/verdent-for-vscode/resource-management/monitoring" icon="chart-line">
    監控 token 用量、點數與效能
  </Card>
  <Card title="Best Practices: Context" href="/docs/verdent-for-vscode/best-practices/context" icon="layer-group">
    跨模式管理上下文視窗
  </Card>
</CardGroup>
