在 Windows 终端执行 agent 或 cursor-agent 时,可能遇到如下错误:
1 | C:\Users\liuhualiang\AppData\Local\cursor-agent\agent.ps1 : No version directories found in C:\Users\liuhualiang\AppData\Local\cursor-agent |
本文记录该问题的现象、根因、修复方式与临时绕过方法。
现象
agent、cursor-agent命令均无法启动- 报错提示在
%LOCALAPPDATA%\cursor-agent下找不到版本目录 - 但手动查看
versions子目录,实际存在多个版本文件夹,例如:
1 | C:\Users\liuhualiang\AppData\Local\cursor-agent\versions\ |
根因
agent.ps1 与 cursor-agent.ps1 启动时会扫描 versions 目录,并用正则过滤合法版本名:
1 | $name -match '^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$' |
该正则只匹配旧格式:
1 | YYYY.MM.DD-commit |
例如:2026.06.16-a07d3ac
而 Cursor Agent 更新后的目录名变为新格式,中间多了构建时间:
1 | YYYY.MM.DD-HH-MM-SS-commit |
例如:2026.06.16-20-30-07-a07d3ac
因此所有现有版本目录都被过滤掉,脚本误判为「没有版本目录」。
修复方法
编辑以下两个文件(内容相同,需同步修改):
%LOCALAPPDATA%\cursor-agent\agent.ps1%LOCALAPPDATA%\cursor-agent\cursor-agent.ps1
1. 更新版本目录匹配正则
将原来的:
1 | $name -match '^\d{4}\.\d{1,2}\.\d{1,2}-[a-f0-9]+$' |
改为同时兼容新旧格式:
1 | $name -match '^\d{4}\.\d{1,2}\.\d{1,2}(-\d{1,2}-\d{1,2}-\d{1,2})?-[a-f0-9]+$' |
2. 改进版本排序逻辑(可选但推荐)
Parse-VersionString 函数原先只按日期 YYYY.MM.DD 排序。若同一天存在多个构建,建议解析时间戳后再比较:
1 | function Parse-VersionString { |
3. 验证修复
1 | agent --version |
预期输出示例:
1 | 2026.06.16-20-30-07-a07d3ac |
临时绕过(不修改脚本)
若暂时不想改启动脚本,可直接调用最新版本目录下的 node.exe 与 index.js:
1 | $v = "C:\Users\liuhualiang\AppData\Local\cursor-agent\versions\2026.06.16-20-30-07-a07d3ac" |
将 $v 替换为 versions 下实际存在的最新目录名即可。
注意事项
- 更新可能覆盖修复:执行
agent update或 Cursor 自动更新 Agent CLI 后,agent.ps1可能被还原,问题会复现,需重新应用上述修改。 - IDE CLI 与 Agent CLI 是两套工具:
cursor:Cursor IDE 自带 CLI(打开文件、diff、tunnel 等),路径通常在%LOCALAPPDATA%\Programs\cursor\resources\app\bin\agent/cursor-agent:终端 Agent CLI,安装在%LOCALAPPDATA%\cursor-agent\
cursor agent子命令:IDE CLI 也注册了agent子命令,但日常使用的agent命令通常来自 PATH 中的cursor-agent包装脚本。
相关环境信息(排查参考)
| 项目 | 值 |
|---|---|
| Cursor IDE 版本 | 3.8.11 |
| Agent CLI 版本 | 2026.06.16-20-30-07-a07d3ac |
| 操作系统 | Windows 10/11 x64 |
| 安装路径 | %LOCALAPPDATA%\cursor-agent\ |
总结
No version directories found 并非版本文件缺失,而是 PowerShell 启动脚本的版本名正则未跟上 Cursor Agent 新的目录命名规范。更新正则后即可恢复正常;若再次被更新覆盖,按本文步骤重新修复即可。