AI 编程助手总记不住你的偏好?这篇论文造了个基准来治它
每天都在用 Cursor 或 Copilot 写代码的人,大概率撞过这个场景:你告诉助手「用异步版本,别阻塞主线程」,它写对了。过两天又提一个类似的需求,它停下来问——「这边用异步还是同步?」。好像上次的对话压根没发生过。
这不是模型数学能力不行,而是大多数编程助手在处理模糊请求时,只盯着当前会话。每个请求都被当作孤立问题处理,该问的澄清一句不少,哪怕同一个用户昨天刚回答过一模一样的问题。
一篇挂在 arXiv 上的新论文(2607.26611,7 月 29 日提交)专门点了这个痛点。来自 Zijian Xu、Wenshuo Zhang 等 7 位作者,核心问题很简单:编程助手能不能跨会话记住一个用户怎么消歧义,并在新 session 里直接用,而不是重新问一遍?
他们把这个问题定义为「个性化歧义适应」(personalized ambiguity adaptation),并造了一个基准数据集叫 CAPA。思路是先归纳出编程场景中 6 种常见的个性化歧义机制——比如用户对并发方案、错误处理风格、命名约定等方面的稳定偏好——然后设计了一套三阶段生成流水线,把这些歧义注入到原本无歧义的编程任务里,构造出有明确正确答案的测试样本。
最终 CAPA 包含 600 个编程会话,覆盖 60 个「用户 × 歧义类型」组合,其中 300 个留作评测集。每个会话模拟一个用户在特定场景下遇到歧义、需要助手根据历史偏好做出正确响应的完整过程。
论文评测了 12 个近期主流大模型,分两种条件:不看用户历史(no-history)和能看到同一用户历史会话(same-user-history)。指标有三个:最终能不能跑通(executable success)、第一轮就给正确答案的比例(first-turn success)、以及需要几轮来回才搞定(turns-to-completion)。
从论文描述看,加入了同用户历史之后,模型在第一轮就命中正确答案的比例有明显提升,澄清来回次数也降了。他们还提了一个轻量级推理时方法叫「同用户历史门控」(same-user history gating),核心是先快速筛出历史里真正相关的消歧记录,再喂给模型,不是一股脑全塞进上下文。
这个方向挺实在。现在大家都在卷上下文长度、卷 Agent 一口气能生成多少行代码——但真正每天在编辑器里跟 AI 配对写代码的人,最消磨耐心的往往不是代码写错,而是反复回答同一个问题。「我说过了啊」这种情绪在 IDE 里累积多了,比编译报错还劝退。
Benchmark 归 benchmark,真要落地还有一堆工程坑。跨会话记忆意味着身份绑定——IDE 怎么确认「这个用户就是上次那个用户」?存本地还是存云端?存多久?用户能不能主动清掉某段记忆?这些从论文目前公开的信息来看还没有明确的工程方案。但至少 CAPA 提供了一个衡量标尺:一个好的编程助手,应该让用户越来越少地重复自己。
期待哪天打开编辑器,AI 跟我说「我记得你上次选了异步方案,这次也照做?」,我只需要回一个字:「嗯」。