# 限制與約束 (/zh-Hant/docs/verdent-for-vscode/help-support/limitations)

> 了解 Verdent 的限制與約束



### 你將學到什麼 [#你將學到什麼]

Verdent for VS Code 的已知限制，包括檔案格式限制、工具約束，以及平台特定的考量。

***

## 已知限制 [#已知限制]

<Tabs>
  <Tab title="檔案格式">
    ### 不支援二進位檔案 [#不支援二進位檔案]

    Verdent 的檔案工具僅適用於文字格式。以下類型無法編輯：

    | 格式類型          | 範例                     |
    | ------------- | ---------------------- |
    | **圖片**        | PNG、JPG、GIF、SVG（二進位形式） |
    | **影片**        | MP4、AVI、MOV            |
    | **編譯後程式碼**    | EXE、DLL、SO             |
    | **壓縮檔**       | ZIP、TAR、GZ             |
    | **Office 文件** | DOCX、XLSX、PPTX         |
    | **PDF**       | PDF 檔案                 |

    **替代方案：** 二進位檔案可以在程式碼中被引用或進行概念上的討論，但修改需要外部工具。
  </Tab>

  <Tab title="工具約束">
    ### file\_read 行數限制 [#file_read-行數限制]

    **限制：**

    * 大型檔案（>10,000 行）應分段讀取
    * 完整讀取大型檔案可能導致上下文耗盡

    **解決方案：** 使用行範圍：`file_read("file.js", start_line=100, max_lines=50)`

    ***

    ### bash 指令逾時 [#bash-指令逾時]

    **限制：**

    * 最大逾時時間：120 秒（2 分鐘）
    * 長時間執行的操作會被自動終止

    **解決方案：** 將操作拆分為可在 2 分鐘內完成的較小指令

    ***

    ### 搜尋效能 [#搜尋效能]

    **限制：**

    * 過於寬泛的 glob 模式（`**/*`）可能回傳數千筆結果
    * 正規表示式搜尋比字面字串慢

    **解決方案：** 使用特定模式並排除不必要的目錄
  </Tab>

  <Tab title="上下文視窗">
    ### 上下文耗盡 [#上下文耗盡]

    **問題：** 在長時間的工作階段或複雜操作期間，AI 的上下文視窗可能會被填滿，限制了引用較早對話內容的能力。

    **緩解策略：**

    * 使用子代理進行探索性研究（結果只會消耗主上下文）
    * 使用行範圍策略性地讀取檔案
    * 在讀取完整內容前先使用 `grep_file`
    * 將背景任務委派給 Explorer 子代理

    <Tip>
      對於超過 500 行的檔案，請務必使用行範圍以保留上下文空間。
    </Tip>
  </Tab>
</Tabs>

***

## Verdent 無法做到的事 [#verdent-無法做到的事]

<Tabs>
  <Tab title="系統管理">
    ### 無法直接進行系統管理 [#無法直接進行系統管理]

    **無法：**

    * 以程式方式修改 VS Code 設定
    * 自動安裝 VS Code 擴充功能
    * 變更系統層級的設定
    * 重新啟動 VS Code 或系統服務

    **範圍：** Verdent 在 VS Code 工作區內運作，而非系統管理層級。
  </Tab>

  <Tab title="自主執行">
    ### 無法自主執行 [#無法自主執行]

    **手動接受模式控制：**

    * 使用者必須在手動接受模式中核准工具執行
    * 未經核准不會有自動化的背景操作
    * 無法在 VS Code 關閉時執行指令

    **目的：** 確保安全性以及使用者對所有操作的掌控。

    <Warning>
      Verdent 無法在未經使用者核准的情況下於背景執行指令。所有操作在手動接受模式中都需要明確同意。
    </Warning>
  </Tab>

  <Tab title="即時監控">
    ### 無法即時監控 [#無法即時監控]

    **無法：**

    * 持續監控執行中的程序
    * 即時追蹤檔案系統變更
    * 對系統事件發出警示
    * 持續串流記錄檔

    **替代方案：** 使用 MCP 整合來搭配外部監控工具。
  </Tab>

  <Tab title="網路操作">
    ### 沒有 MCP 時無法進行網路操作 [#沒有-mcp-時無法進行網路操作]

    **內建限制：**

    * 無法發出任意 HTTP 請求（使用 `web_fetch` 處理特定頁面）
    * 無法直接連接資料庫（需要 MCP）
    * 無法直接存取雲端服務（需要 MCP）
    * 沒有即時 API 整合（需要 MCP）

    **解決方案：** 設定 MCP 伺服器以存取外部系統。
  </Tab>
</Tabs>

***

## 平台特定限制 [#平台特定限制]

### 作業系統差異 [#作業系統差異]

**bash 工具行為：**

| 平台              | Shell      | 備註                                 |
| --------------- | ---------- | ---------------------------------- |
| **macOS/Linux** | bash/zsh   | 完整的 bash 功能                        |
| **Windows**     | PowerShell | 部分 bash 指令無法使用，請改用 PowerShell 對應指令 |
| **WSL**         | bash       | Linux 指令可在 WSL 環境中運作               |

**路徑處理：**

* Windows 使用反斜線（`\`），Unix 使用正斜線（`/`）
* 跨平台專案可能需要調整檔案路徑

***

### VS Code 版本需求 [#vs-code-版本需求]

**最低需求：**

* VS Code 版本相容性（請至擴充功能市集查看目前的最低版本）
* 足夠的磁碟空間用於上下文快取

<Info>
  特定版本需求維護於 VS Code 市集的列表中。請查看擴充功能詳細資訊以了解目前的相容性。
</Info>

***

### 工作區約束 [#工作區約束]

**單一工作區聚焦：**

* Verdent 一次只在一個 VS Code 工作區內運作
* 無法同時修改多個已開啟的 VS Code 視窗中的檔案
* 支援多根工作區，但上下文僅限於目前作用中的工作區

***

## 常見限制的替代方案 [#常見限制的替代方案]

<Tabs>
  <Tab title="二進位檔案">
    ### 二進位檔案修改 [#二進位檔案修改]

    **限制：** 無法編輯圖片、PDF 或編譯後的二進位檔

    **替代方案：**

    * 在 bash 指令中引用外部工具：`bash("convert input.png -resize 50% output.png")`
    * 產生可供外部工具執行的指令碼
    * 為二進位檔案操作記錄手動步驟

    **範例：**

    ```bash
    # Image conversion
    bash("convert input.png -resize 50% output.png")

    # PDF to text
    bash("pdftotext document.pdf output.txt")
    ```
  </Tab>

  <Tab title="大型檔案">
    ### 大型檔案處理 [#大型檔案處理]

    **限制：** 超過 10,000 行的檔案會對上下文視窗造成負擔

    **替代方案：**

    * 使用行範圍：`file_read("large.log", start_line=1000, max_lines=100)`
    * 先搜尋：`grep_content("ERROR", glob="large.log")` 以找出相關段落
    * 將檔案拆分為較小的模組以便管理

    <Tip>
      請務必先使用 `grep_content` 找出相關段落，再只讀取那些特定的行範圍。
    </Tip>
  </Tab>

  <Tab title="上下文視窗">
    ### 上下文視窗耗盡 [#上下文視窗耗盡]

    **限制：** 長時間對話會填滿上下文視窗

    **替代方案：**

    * 委派給 Explorer 子代理進行程式碼庫研究
    * 使用 Verifier 子代理進行隔離的驗證任務
    * 為不同任務開啟新對話
    * 使用 `todo_update` 跨工作階段追蹤進度

    **最佳實務：** 將背景研究委派給子代理，以保留主上下文供進行中的開發使用。
  </Tab>

  <Tab title="平台差異">
    ### 平台指令差異 [#平台指令差異]

    **限制：** bash 指令在 Windows 與 Unix 之間有所不同

    **替代方案：**

    * 使用跨平台工具：以 npm 指令碼取代原生 bash
    * 條件式指令：`bash("if [[ \"$OSTYPE\" == \"linux-gnu\"* ]]; then ...; fi")`
    * 在專案專屬的 AGENTS.md 中加入平台備註

    **範例：**

    ```bash
    # Cross-platform
    bash("npm run build")

    # Platform-specific conditional
    bash("if [[ \"$OSTYPE\" == \"linux-gnu\"* ]]; then make; else nmake; fi")
    ```
  </Tab>
</Tabs>

***

## 未來改進 [#未來改進]

<Note>
  我們持續在改善這些限制。請查看 Verdent 發行說明，以了解功能擴展、限制提升與新整合的更新資訊。
</Note>

***

## 另請參閱 [#另請參閱]

<CardGroup cols="2">
  <Card title="工具參考" icon="wrench" href="/docs/verdent-for-vscode/advanced-features/tool-reference">
    完整的工具能力
  </Card>

  <Card title="最佳實務" icon="lightbulb" href="/docs/verdent-for-vscode/best-practices/prompts">
    最佳化 Verdent 的使用
  </Card>
</CardGroup>
