简介:本文系统讲解意图漂移(intent drift)的定义与边界:用户在多轮对话中修改或推翻需求后,AI Agent仍受已废弃的旧意图影响,进而产生错误代码、错误查询等真实执行事故。文章辨析意图漂移与记忆衰减、分片指令等相邻问题,介绍可自动判分的评测构造思路、常见成因、典型受影响场景与缓解策略,帮助开发者在Agent落地过程中识别并防范这一隐性风险。
意图漂移,指的是在多轮人机对话过程中,用户的真实意图已经发生了修改、推翻或切换,但模型仍然受到这些已经过时、已经被用户明确否定的旧意图的影响,最终给出的回答或执行的操作偏离了用户当前的真实需求。这一概念由近期发表在学术预印本平台、由多家高校联合企业研究团队完成的一项工作正式提出并系统研究。
用一句话概括:用户已经改了主意,AI却还在按旧主意办事。
可以从三个视角进一步理解这个定义:
同时要注意两点边界:其一,意图变化本身是用户合法、主动的需求演进,不是错误;其二,漂移指的是模型被旧意图带偏,而不是用户表达不清或模型听不懂单轮指令。换言之,这是一个专属于多轮交互场景的问题。
在传统聊天机器人场景里,意图理解错误的主要后果是“答非所问”,用户多解释一轮通常就能纠正,损失有限。但当对话对象从聊天机器人变成AI Agent,问题的性质就变了:Agent不只是聊天,它还会真正执行操作——调用外部工具、生成并运行代码、查询乃至修改数据库、编排自动化流程。一旦它记混了用户到底想要什么,错误就从“说错话”升级为“做错事”:可能生成包含废弃方案的错误代码,可能在数据库里改错字段,可能执行用户已经取消的操作。
更麻烦的是,这类错误具有很强的隐蔽性。被推翻的旧需求“听起来依然合理”——它最初确实是用户提出的,语法正确、逻辑自洽,混在最终输出里,无论是自动质检还是人工审查都容易漏过。这也是为什么研究者认为,意图漂移值得被单独命名和单独研究,而不是笼统归入“模型不够聪明”。
意图漂移容易被混同于其他多轮对话的常见毛病,但它们的成因和对策并不相同:
区分它们为什么重要?因为归因不同,解法天差地别。如果是记忆问题,可以扩充上下文、做摘要压缩;如果是意图漂移,则需要专门的意图状态管理与冲突消解机制。这就像就医时只被告知“你生病了”,却不区分感冒还是过敏,治疗方案无从谈起。
要把意图漂移从一堆失误中干净地剥离出来,评测设计必须同时满足三个前提:
三者缺一,就无法证明模型的失败是被旧信息带偏,而非其他原因导致的失误。
针对上述难点,相关研究团队构建了一套评测基准,核心思路可以概括为“改造可验证任务”:
用示意性流程描述其构造逻辑:
基础任务(有唯一正确答案)│ 改写▼多轮对话脚本第1轮:提出初始需求 A第2轮:修改为 B(A 被推翻,但保留在上下文中)第3轮:进一步调整为 C(可能部分继承 B)│ 执行▼模型作答 → 自动判分答案正确 → 未发生漂移答案错误且引用了 A → 判定为意图漂移
这套构造方式的价值在于:它把“模型在多轮对话里是否被旧意图带偏”变成了一个可测量、可对比、可回归的工程指标,为后续的模型改进和应用防护提供了统一标尺。
结合对模型行为的普遍认识,意图漂移通常可以追溯到几类原因:
凡是“被推翻的旧需求、旧条件、旧步骤”仍然残留在输出或动作里,就是意图漂移的现场:
第1轮:查上季度华北地区的销售总额第2轮:算了,改成华南地区第3轮:还是全国范围吧,但只统计已完成订单漂移结果:SELECT SUM(amount) FROM salesWHERE region = '华北' -- 已被推翻的条件残留AND status = 'completed';
这些场景的共同点是:Agent拥有“动手”的能力,漂移的代价由真实的系统状态承担,而不再只是一句错误的回答。
意图漂移很难靠单一手段根除,更现实的策略是在应用层、提示层和评测层同时设防。
应用层工程手段:
示意性的意图一致性校验伪代码:
current = extract_current_intent(latest_user_message)history = collect_history_intents(dialog_history)superseded = find_superseded(history, current) # 已被推翻的旧意图for item in superseded:mark_invalidated(item) # 在上下文中显式标注"已作废"plan = agent.plan(current, valid_constraints=diff(history, superseded))assert not references(plan, superseded) # 执行前检查是否引用了废弃意图agent.execute(plan)
提示与模型侧:
选型与评测侧:
安全与运维侧:
回到定义本身:意图漂移是用户意图在多轮对话中已经演变,而AI仍被已推翻的旧意图影响,导致答案或操作出错的系统性现象。它不是“模型不听话”这种笼统的印象,而是一个可定义、可归因、可评测、可缓解的工程问题。它的核心价值在于提醒开发者:在Agent具备真实执行能力的今天,“听懂并跟上用户最新的想法”本身就是一项需要专门设计和专门测试的能力。适用边界也很清晰——只要系统涉及多轮交互且会执行实际操作,无论是客服、编码、数据分析还是流程自动化,都应当把意图漂移纳入设计与质检的视野。