误区:把整个仓库直接丢进去

上下文窗口变大了,但「全量粘贴」通常不是最优解:无关文件会稀释重点,回答容易泛泛而谈,且成本更高。更稳妥的是先筛选,再分块,最后提问

第一步:筛选(决定放什么)

优先放入:

  • 入口文件与路由定义
  • 你正在改动的模块及其直接依赖
  • 相关的数据结构 / 类型定义
  • 报错堆栈涉及的文件

明确排除

  • 构建产物、锁文件、依赖目录
  • 与当前问题无关的页面与测试
  • 大段静态资源或数据文件

第二步:分块(决定怎么放)

按「模块」而不是「文件大小」切分,每块保持语义完整:

以下为 A 模块代码,包含 xxx 与 yyy 两个文件。
[代码]

关键:给每块加一句说明,告诉模型这是什么、做什么用。有标注的上下文,回答准确率明显高于裸代码。

第三步:提问(决定问什么)

避免宽泛提问,改成带约束的任务式提问:

  • ❌「这段代码有什么问题?」
  • ✅「这个模块在并发调用时是否可能出现状态覆盖?如果有,指出具体行号和修改建议。」

推荐提问模板

背景:[项目类型与目的]
目标:[我想达成什么]
约束:[不能改动的部分 / 性能要求 / 兼容性]
问题:[具体疑问]

让回答更可靠的三个习惯

  1. 要求给出依据:让它说明结论来自哪段代码,便于你核对
  2. 要求列出不确定项:明确问「哪些地方你没有把握」,比事后返工划算
  3. 小步验证:让它一次只改一个文件,验证通过再进行下一个

注意事项

  • 涉及密钥、用户数据等敏感内容,粘贴前必须脱敏
  • 模型给出的重构建议需要完整跑测试再合入
  • 对性能相关的结论,用真实基准验证,不要只看推理

小结

长上下文的价值不在「能塞多少」,而在「是否能精准提供相关上下文」。筛得准、标得清、问得具体,回答质量会有明显差别。