agentscope-ai / agentscope-ai/QwenPaw
[Bug]: deepseek-v4-pro 模型调用时自动注入 chat_template_kwargs 参数未被 extra_body 包装,导致 openai SDK TypeError
- 主要言語
- Python
- スター
- 34.9k
- フォーク
- 3.1k
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 225
説明
[Bug]: deepseek-v4-pro 模型调用时自动注入 chat_template_kwargs 参数未被 extra_body 包装,导致 openai SDK TypeError
英文版(如果官方要求英文):
[Bug]: chat_template_kwargs auto-injected without extra_body wrapping causes openai SDK TypeError on all model calls (qwenpaw 2.0.1 + agentscope 2.0.4.post1)
* * *
## 报告正文
## QwenPaw Version
2.0.1 (Windows 安装版,路径 `D:\QwenPaw_v2_test`)
- agentscope: 2.0.4.post1
- pydantic: 2.13.4
- openai SDK: 2.33.0
- backend: qwenpaw-backend.exe (PyInstaller 冻结包)
## Description
主模型配置为 `custom/deepseek-v4-pro`(非 reasoning 模型),调用时报错:
MODEL_EXECUTION_ERRORModel 'unknown' execution failed.Reason: AsyncCompletions.create() got an unexpected keyword argument 'chat_template_kwargs'
完整 traceback:
File "qwenpaw\agents\react_agent.py", line 680, in _reply File "agentscope\agent\_agent.py", line 2440, in _call_model File "agentscope\agent\_openai_chat\_model.py", line 272, in _call_api File "openai\_utils\__utils.py", line 287, in wrapperTypeError: AsyncCompletions.create() got an unexpected keyword argument 'chat_template_kwargs'
错误 dump 文件路径:`C:\Users\52765\AppData\Local\Temp\qwenpaw_query_error_yio2rd75.json`
## 诊断过程
### 1. 验证 openai SDK 版本
通过直接 import 确认 `openai.__version__ == 2.33.0`。检查 `AsyncCompletions.create` 的所有参数(共 40 个),**不包含** `chat_template_kwargs`。
### 2. monkey-patch 拦截确认注入值
通过 monkey-patch 拦截 `AsyncCompletions.create` 调用,捕获到自动注入的参数:
[PATCH] Intercepted chat_template_kwargs: {'enable_thinking': False}
拦截后请求成功构造(仅 401 鉴权失败,说明参数已被 SDK 接受,请求体构造正常)。
### 3. 检查用户配置文件
`D:\QwenPaw_v2_test\.qwenpaw\openclaw.json` 中**未配置**任何相关字段:
matches: 0 (chat_template_kwargs)matches: 0 (enable_thinking)matches: 0 (extra_body)
### 4. 结论
`chat_template_kwargs` 参数是 QwenPaw / agentscope 内部自动注入的,但**没有**包在 `extra_body` 内传给 openai SDK,导致 openai SDK 不识别该参数报错。
## 期望行为
按照官方 #2042 的修复方案,`chat_template_kwargs` 应自动包装在 `extra_body` 内传给 openai SDK:
```json
{
"extra_body": {
"chat_template_kwargs": {"enable_thinking": false}
}
}
## 临时解决方案(用户侧)
用户无法直接修复(backend 是 PyInstaller 冻结包,源码不可编辑),只能等待官方下版本修复。
## 建议修复位置
官方在以下位置之一修复即可:
* `qwenpaw/providers/openai_chat_model_compat.py` 的 `_call_api` 方法
* 或 `agentscope/agent/_openai_chat_model.py:272`
## 环境信息
* **OS**:Windows 11 (10.0.22631)
* **QwenPaw**:2.0.1 (Windows 安装版)
* **Python**:3.11
* **Model**:`custom/deepseek-v4-pro` @ `https://api.deepseek.com`
* **Provider 配置**:`reasoning: false`
* **安装方法**:安装包 + 配置内网/直连模型
## 复现步骤
1. 安装 qwenPaw 2.0.1
2. 配置 OpenAI-compatible provider(如 deepseek、GLM 等)
3. 模型配置中 `reasoning: false` 或完全省略 reasoning 字段
4. 发送任意消息(即使是 `hi`)
5. 100% 复现报错
## 关联 Issue
* #2042 (类似症状,已 close,但根因可能未根治——只解决了用户侧配置层,未根治内部自动注入逻辑)
* #6619 (ToolCallBlock extra_content 报错,同一升级版本,同一栈深度)
## 用户场景
希望从 QwenPaw 1.1.12 升级到 2.0.1,但此 bug 导致**所有模型不可用**。已回退到 1.1.12 继续使用。
コントリビューションガイド
評価
この issue はまだ評価されていません。