assistant-chat.tsx
66.6 KB
-
docs(助手): 撤回「qwen 结构上做不到边写边调工具」—— 那是伪证据,且早被裸台验过 · 9818aa95
产品指出后复核,8-14 写在 use-assistant-chat 里的那段"能力判断"两处推理都断: ① 「百炼文档示例里出 tool_calls 那轮 content 为空 ⇒ 那一步写不了字」—— 示例是一次示范、不是契约;"某个示例没写字"推不出"写不了"。 ② 「一旦某步没有工具调用多步循环就结束 ⇒ 所以它只能先把工具全调完再一口气写完」—— 前半句对**任何模型都成立**(deepseek 也一样),而且恰恰不推出后半句: 文字+工具、文字+工具、末步只有文字,循环照样结束、输出照样交错。这个「所以」是空的。
🔴 **而且它早就被验过了,结论相反。** assistant-lab 就是为这件事建的裸台, 里面专门开了 qwenThinking provider(只塞 enable_thinking,⛔ 不碰 response_format), 目的写在那儿:「这一轮只是要验开了思考 qwen 会不会好起来」。 产品实测:**开了思考的 qwen 能边写正文边调工具**。⇒ 那条结论已被推翻,⛔ 别再引用。⚠ ️ 更该记的是:反证**当时就摆在旁边**。同一天的注释写着"共用 provider 无条件给 每个 qwen 请求塞 enable_thinking=false,连 agent 这条带工具的链路也塞 ⇒ 这几天 拿 qwen 跟 DeepSeek 比要不要边写边调工具,其实是「便宜档+会思考」对「最高档+不许思考」, 比较本身不成立" —— 而"这几天"正是那条结论的产出期。两份注释直接打架,日期都是 8-14。⛔ 根子在:结论只留在人脑子里,被它推翻的旧结论却用硬语气写在代码里, 下一个人(包括 AI)读到的必然是错的那份。 顺带修正 assistant-chat 里那条退化保护的**归因**:原文写"实测 qwen 会把 tool-call 全提到文本之前,deepseek 则正常交错",当成模型差别。不对 —— 当天在 **deepseek** 上 抓到过同一形状(golden 的 guidance-opens-in-place,失败形状 [工具×3][文本]), 是补了工具描述里「可动手的事**一件一件**开放」才稳住的,那是**提示词缺口**。 ⇒ 那条保护**与模型无关,一直留着**:退化时主管看到的是一排没头没尾的按钮。 现在只保留一句站得住的:**默认 deepseek,因为跑批基线都在它上面测的。**⛔ 别写成"另一个不行"。要比就在裸台上开着思考比,或 GOLDEN_MODEL=qwen3.8-max 跑 guidance-opens-in-place 比通过率。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>luoqi committed