跳转到主内容

AI 编程的上下文管理:@Files、@Folders 与提问技巧

2026-06-06cursor · claude-code · 提问技巧 · 效率 · 上下文

AI 编程工具的核心能力之一是理解项目上下文。但上下文是一把双刃剑——给得太少,AI 会"瞎猜";给得太多,Token 迅速耗尽,回复质量反而下降。本文介绍如何精准控制 AI 的上下文范围,用最小的 Token 消耗获得最准确的回答。

一、上下文范围与 Token 成本

不同 AI 工具提供了不同粒度的上下文引用方式。选择合适的方式直接影响回复质量和 Token 消耗:

使用方式:以下 @ 引用语法为 Cursor 的 Chat / Composer 输入框功能——在对话框中输入 @ 即可搜索文件/文件夹。 Claude Code 不使用 @ 语法,直接在 prompt 中描述文件路径或名称即可。

引用方式扫描范围Token 消耗适合场景
@Files指定的一到多个文件精准修改已知文件、修复局部 Bug
@Folders整个目录中低针对特定模块进行整体重构
@Definitions跨文件的类型/函数定义中等追踪 API 或组件的调用链路
@Codebase全局向量索引首次接手陌生项目、全局架构分析
关于 @Codebase:这是消耗 Token 最大的引用方式。仅在首次接手陌生项目、或需要全局架构级重构时使用。日常的局部修改使用 @Files 或 @Folders 即可。

二、高效提问公式

模糊的提问得到的答案也是模糊的。一个结构清晰的提问应该包含三个要素:

[明确动作] + [精准上下文] + [输出约束]

对比示例

text
# 不推荐的提问方式
"帮我看看这个侧边栏怎么加个按钮,为什么老报错?"
# 问题:AI 不知道"这个侧边栏"是哪个文件,开始猜测上下文

# 推荐的提问方式
"在 @sidebar.tsx 中新增一个外部跳转按钮。参考 @types.ts 中的
导航项类型定义。保持现有的液态玻璃样式,不要修改其他既有逻辑。"

推荐的提问同时满足了三个要素:

  • 明确动作:新增一个外部跳转按钮
  • 精准上下文:@sidebar.tsx + @types.ts
  • 输出约束:保持玻璃样式,不修改其他逻辑

三、索引同步问题

AI 工具的代码索引不是实时更新的。在以下操作后,索引可能过期:

  • 切换 Git 分支
  • 批量删除或移动文件
  • 大规模重构目录结构
操作建议:在上述操作后,在 IDE 设置中手动触发 "Resync Index"(重新索引)。否则 AI 会基于旧的缓存数据进行检索,导致生成过期的代码。

四、分场景实践建议

场景一:修复已知 Bug

使用 @Files 引用出问题的文件 + 相关类型定义文件。例如:

text
"@components/UserList.tsx 组件在数据为空时抛出 TypeError。参考 @types/user.ts 中的 User 类型定义,添加空数据保护逻辑。"

场景二:新增功能

使用 @Folders 引用相关模块目录,让 AI 了解已有的代码风格:

text
"在 @src/app/api/ 下新增一个 /users/[id] 的 GET 端点。参考 @src/lib/ 中的数据库查询工具函数,返回 JSON 格式的用户信息。"

场景三:接手陌生项目

首次接触项目时,可以分步使用上下文:

  1. 先用 @Codebase 问:"概述这个项目的技术栈和目录结构"
  2. 然后用 @Folders 深入感兴趣的模块
  3. 具体修改时切换为 @Files

有疑问?来这里找答案

如果对本站内容有疑问,推荐到视频或其他知识性平台寻求解决方法,也可直接向 AI 提问获得参考性回答(注意分辨 AI 回答的正确性)

视频教程
B站搜索教程
视频演示 + 疑难解答