Cursor 多仓库工作区搜不到代码,先检查打开的是不是正确根目录。很多人把父目录、软链接目录或单个子包打开了,导致 Cursor 只索引了一部分文件,Agent 自然找不到另一个仓库里的实现。
先看你打开了哪里
在 Cursor 左侧资源管理器看最顶层目录。如果你要改的是 monorepo,就应该打开 monorepo 根目录;如果你只打开 packages/web,Agent 可能看不到 packages/api、共享组件和根配置。
相反,如果你打开的是一个过大的上级目录,比如 ~/work,里面有十几个项目,索引会变慢,也更容易把无关代码混进上下文。
多根工作区要明确范围
多仓库工作区不是越多越好。你可以把前端、后端、公共库都加入工作区,但提问时要明确:“只在 web 和 api 两个根目录里搜索,不要看 archived 项目。”
如果 Cursor 索引结果不稳定,先用文件搜索确认目标文件是否可见,再让 Agent 搜。文件都搜不到,Agent 更不可能凭空知道。
检查忽略规则
.cursorignore、.cursorindexingignore、.gitignore 都可能影响不同层面的读取和索引。大仓库里常见问题是把 dist、build 忽略没错,但顺手把生成类型、schema、客户端 SDK 也忽略了,结果 Agent 缺关键上下文。
建议把“可生成但影响理解”的文件单独评估,不要一刀切忽略。
解决顺序
第一步,重新打开正确项目根目录。第二步,确认目标文件能在普通搜索里找到。第三步,查看 Cursor 索引状态。第四步,清理忽略规则。第五步,在提问里点名路径。
最稳的提问方式是:“请先在 packages/api 搜索订单接口,再到 packages/web 找调用处,最后只给修改计划。”这样比一句“帮我修订单 bug”命中率高得多。