# 局限与约束 (/zh-CN/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>
