最近在写代码的时候,不知道大家有没有发现一个奇怪的现象:以前的 GitHub Copilot Auto(或者之前的某些版本),好歹还会先去搜搜相关的代码库,然后再给你回答。虽然有时候也不是百分百完美,但至少有个“找参考”的过程。

但最近这段时间,它好像突然“变傻”了。

遇到的问题

现在的 Copilot Auto 有时候连搜都不搜,直接就开始一本正经地胡说八道。代码逻辑是错的,API 是过时的,甚至直接编造不存在的库。最离谱的是,就算你主动在提示词里让它“去搜索”、“去查阅文档”,它也经常装作没看见,依然按照自己的幻觉输出生成。

Github Copilot Auto 错误示例

Github Copilot Auto 完全不可用。以前好歹还会先搜搜代码再回答,现在搜都不搜直接开始胡说八道,主动让它搜也不搜,体验极差。

这种体验,说实话,感觉直接倒退回了 GPT-3.5 时代。对于用惯了 AI 辅助编程的朋友来说,这种工作效率的断崖式下跌简直是灾难。

为什么会这样?

目前官方并没有非常明确的说明,但从技术角度推测,可能有几个原因:

  1. 模型策略调整:为了追求响应速度或降低成本,GitHub 可能在某些渠道切换到了更轻量级但效果稍差的模型(回退到了 GPT-3.5 水平的基座),或者调整了 Agent 的搜索触发阈值,导致它更倾向于直接生成而非调用搜索工具。
  2. 上下文窗口限制:如果 Copilot 在处理当前项目上下文时占用了太多 Token,可能就没有足够的空间去容纳外部搜索到的参考文档,导致模型直接略过搜索步骤。
  3. RAG(检索增强生成)故障:Copilot 的核心优势之一在于它能结合你的代码库和互联网信息。如果检索链路出了问题(比如索引更新延迟、搜索接口限流),它就会退化成一个普通的离线 LLM,只能靠训练数据“瞎蒙”。

我们该怎么办?

既然官方目前还没修好这个问题(或者说这就是新常态),我们只能自己找点“补丁”来维持生产力。这里有几个亲测有效的方案:

1. 强制切换模式

不要过度依赖“Auto”模式。在 VS Code 里,你可以尝试强制使用 Copilot Chat 的特定指令,比如显式地使用 /workspace 先让它读取当前文件,再问问题。有时候手动引导比全自动的 Auto 更靠谱。

2. 使用 @ 符号引用

在提问时,使用 @github@workspace 明确指定信息来源。例如:

@workspace 解释这段代码逻辑 @github 这个库的最新用法是什么

这样能强制 Copilot 触发检索动作,而不是在那“空想”。

3. 回退到 Copilot Free/Plan 模型对比

如果你是付费用户,有时候可以检查一下设置,看看是否不小心勾选了“更快但不准确”的模型选项(如果有的话)。或者在设置里尝试切换不同的 Copilot 模型版本(预览版 vs 稳定版),有时候预览版反而修复了稳定版的退化问题。

4. 结合外部搜索工具

既然它内部搜不到,我们就外包。遇到它瞎编的时候,直接把问题扔给 Google 或 Perplexity,找到官方文档或 Stack Overflow 的链接,然后把链接贴给 Copilot,让它基于这个链接进行总结或改写。

“喂给它吃好的”,它才能吐出好的东西。

5. 也就是最后的退路:Cursor 或其他竞品

如果你觉得这个问题的忍耐度已经到了极限,现在的市场上还有 Cursor 等基于 Claude 3.5 Sonnet 的替代品。Claude 在代码推理和“听人话”这方面,目前的口碑普遍比最近掉链子的 Copilot 要好一些。特别是它不会像 Copilot 这么容易“傲娇”地拒绝搜索。

VS Code 中的 Copilot Chat 界面

在 VS Code 中尝试强制使用 Copilot Chat 特定指令来辅助编程。

总结

Copilot Auto 这一波“智障”表现,确实让人很上火。这可能也是技术迭代过程中不可避免的各种“阵痛”。作为打工人,我们没法控制上游的模型更新,但可以通过改变工作流——少信全自动,多用手动指令,结合外部搜索——来守住我们的代码质量。

希望大家都能早点等到那个“聪明”的 Copilot 回归!🤞

标签: none

评论已关闭