Verdent Docs
疑難排解

限制與約束

了解 Verdent 的限制與約束

你將學到什麼

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


已知限制

不支援二進位檔案

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

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

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

file_read 行數限制

限制:

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

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


bash 指令逾時

限制:

  • 最大逾時時間:120 秒(2 分鐘)
  • 長時間執行的操作會被自動終止

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


搜尋效能

限制:

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

解決方案: 使用特定模式並排除不必要的目錄

上下文耗盡

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

緩解策略:

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

對於超過 500 行的檔案,請務必使用行範圍以保留上下文空間。


Verdent 無法做到的事

無法直接進行系統管理

無法:

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

範圍: Verdent 在 VS Code 工作區內運作,而非系統管理層級。

無法自主執行

手動接受模式控制:

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

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

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

無法即時監控

無法:

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

替代方案: 使用 MCP 整合來搭配外部監控工具。

沒有 MCP 時無法進行網路操作

內建限制:

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

解決方案: 設定 MCP 伺服器以存取外部系統。


平台特定限制

作業系統差異

bash 工具行為:

平台Shell備註
macOS/Linuxbash/zsh完整的 bash 功能
WindowsPowerShell部分 bash 指令無法使用,請改用 PowerShell 對應指令
WSLbashLinux 指令可在 WSL 環境中運作

路徑處理:

  • Windows 使用反斜線(\),Unix 使用正斜線(/
  • 跨平台專案可能需要調整檔案路徑

VS Code 版本需求

最低需求:

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

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


工作區約束

單一工作區聚焦:

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

常見限制的替代方案

二進位檔案修改

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

替代方案:

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

範例:

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

# PDF to text
bash("pdftotext document.pdf output.txt")

大型檔案處理

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

替代方案:

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

請務必先使用 grep_content 找出相關段落,再只讀取那些特定的行範圍。

上下文視窗耗盡

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

替代方案:

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

最佳實務: 將背景研究委派給子代理,以保留主上下文供進行中的開發使用。

平台指令差異

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

替代方案:

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

範例:

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

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

未來改進

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


另請參閱