先确认是模型忘了,还是客户端没发历史
如果第二轮问“上一轮调用过哪些工具”,Qwen Desktop 回答“没有调用”,同时又出现了隐藏搜索,先不要把问题归因于模型幻觉。公开复现显示,第一轮工具结果约 26K token,第二轮请求却只剩约 4K,上一轮 tool_calls/tool_results 根本没有进入新的 messages。
用两轮无副作用任务复现
在 Windows 测试工作区启用一个只读 MCP 工具,第一轮让客户端调用它,第二轮明确要求“不要调用任何工具,只回答上一轮是否调用过”。导出会话或抓取请求体时,隐藏真实路径和账号信息。
对比三项:
- 第一轮工具调用数量和工具结果大小
- 第二轮 API 请求中的 messages 是否包含对应 assistant/tool 记录
- 第二轮是否出现未授权的
web_search或其它隐式工具调用
auto_search 会放大问题
如果开启 auto_search,客户端可能在第二轮自行添加搜索,即使用户明确禁止工具。为了区分历史丢失和自动搜索,先关闭 auto_search 重跑,再在开启状态下重复一次。两次都应保存请求体摘要和工具事件,而不是只截图答案。
现在怎么避免错误决策
在问题修复前,不要把 Qwen Desktop 的第二轮回答当作审计记录。涉及文件修改、MCP 写操作或外部搜索时,直接查看导出的工具事件和目标系统日志。需要让模型继续工作时,重新把上一轮的关键结果作为用户可见输入,并明确列出禁止调用的工具。
成功标准
修复后的客户端应在第二轮请求中携带完整的上一轮工具调用和结果;禁止工具时不产生隐藏搜索;模型能准确回答上一轮的执行事实。若导出记录与网络请求仍不一致,先停止高影响操作,等待客户端版本修复。
这不是 Qwen3.8/vLLM 的 effort 参数兼容错误,而是 Windows Desktop 的会话历史构造问题。