Problem
Qoder IDE 的智能会话在每一轮对话都会自动把"当前打开文件"作为上下文交给模型,用户无法控制、也无法关闭。
带来的影响:当我在 Ask 模式问一个与当前文件完全无关的问题时(例如"今天几号"“这个报错什么意思”“帮我解释一段粘贴的日志”),回答会被当前打开的文件带偏,甚至直接围绕该文件展开,需要我额外澄清"忽略当前文件",多消耗一轮对话和额度。
可自查的客观依据:会话注入给模型的上下文片段中会出现一个 current_open_file 字段。你可以直接向智能体提问"本轮你收到的上下文里 current_open_file 是什么",它会如实回答当前打开文件的路径。
复现步骤:
- 在 IDE 中打开任意文件 A(并让它处于活动状态);
- 打开智能会话面板,切到"智能问答(Ask)"模式;
- 提一个与 A 无关的简单问题,观察回答是否被 A 的内容牵引。
Solution
增加一个开关,用于控制是否自动把"当前打开文件"加入会话上下文,默认保持现有行为(开启)。建议放在插件设置的"智能会话设置"分组下,例如"自动附带当前打开文件:开 / 关"。
这样既不影响依赖该上下文的用户,也让不需要它的用户可以把会话恢复成纯净的"问什么答什么"。
Use Case
Ask 模式下提问与代码无关的问题是高频场景:查时间/日期、解释一段粘贴的报错或日志、问通用概念、让智能体改写一段随手贴的文本。这些场景下自动附带当前文件没有收益,只有干扰。而在 Agent 模式下,这个自动上下文是有价值的,所以诉求是"可关闭",而非"改变默认行为"。
Priority
-
High - Blocking issue -
Medium - Important improvement -
Low - Nice to have
Additional Info
- 环境:Qoder IDE(国际版),Linux 远程工作区(IDE 连接远程 Linux 主机)。
- IDE 版本:<从 About Qoder → Copy 粘贴>
- 定性说明:这不是 bug 报告。从公开更新日志可见,"智能问答模式感知当前打开文件"是官方有意保证的能力(更新日志中曾修复"无法感知当前打开文件"的问题),因此我请求的是可控开关,默认行为保持不变。
- 关于"这不是配置问题"的核实:我查过官方 CLI 配置全表(settings-reference 的
context.*分组)以及 IDE 插件设置中的各分类(代码补全 / NES / 智能会话 / 通用),都没有控制该项的开关,因此判断它是内置行为,用户侧无法调整。 - 关于上文提到的字段:
current_open_file字符串可在本机 Qoder 扩展目录下的 agent 可执行文件中检索到(仅字符串检索,用于说明它不是界面可配置项,未做任何修改)。 - 同类需求的佐证(说明这不是个人偏好):
- Qoder CN 社区上有用户提出过完全相同的诉求,当时未获解决方案: 总是自动添加”当前打开文件“为上下文_问答-阿里云开发者社区
- 论坛上也有同类"自动行为缺少开关"的反馈:SCM 面板在每个对话后自动打开(无法关闭) SCM 面板在每个对话后自动打开 、关闭自动打开聊天面板 关闭自动打开聊天面板
- 我尚未验证的一点:如果关闭所有编辑器标签、没有任何活动文件,是否仍然注入——这点想请官方确认。
- 如果认同这个改进,欢迎投票支持。