agentscope-ai / agentscope-ai/QwenPaw

[Feature]: Anthropic 模型端"input sensitive image"误审核导致长历史会话中断 (1026)

オープン
#7,008 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Python
スター
34.9k
フォーク
3.1k
平均マージ
1日 15時間
マージ済み PR(30日)
225

説明

## 🐛 Bug 描述

在长历史多轮会话中(约 61 条历史消息 + 多张已下载到本地的图片),QwenPaw 调用 Anthropic
兼容模型时,被模型端安全审核拦截,报错:

```
input new_sensitive, messages[61]'s content[0] image is sensitive,
please check your input (1026)
```

**核心问题**:经用户人工复核,**历史消息中没有任何一张图片包含违规内容**(儒家孔子
主题的历史故事视频,所有图片均为春秋战国场景,无任何敏感元素)。这是
**模型端(Anthropic)/ 平台审核器的误判**,不应导致用户任务被中断。

## 🔍 复现步骤

1. 启动 QwenPaw 服务(v1.1.11.post2,Anthropic provider)
2. 进入任意一个长历史会话(≥ 60 轮,含 image 类型历史消息)
3. 发送新的 user 消息(纯文本,无图)
4. QwenPaw 调用模型时自动重发整个 `messages` 数组(包括历史中的图片作为 image content)
5. 模型端返回 `500 InternalServerError` 错误码 `1026`,整个任务流中断

## ❌ 实际行为

```
File "F:\qwenpaw\.v13\Lib\site-packages\anthropic\resources\messages\messages.py",
line 2543, in create
return await self._post(...)
...
anthropic.InternalServerError: Error code: 500 - {'type': 'error', 'error': {
'type': 'api_error',
'message': "input new_sensitive, messages[61]'s content[0] image is sensitive,
please check your input (1026)"
}, 'request_id': '06cd79301a35c2f5987d74309ee0a3ce'}
```

完整堆栈:`C:\Users\LIJK34~1\AppData\Local\Temp\qwenpaw_query_error_uuutkfqa.json`
(已附在 issue 中)

**业务影响**:
- 用户正在执行"修复 M1402 儒家孔子视频 V5 → V6 版本"的真实创作任务
- 由于误审核,整个长会话中断,无法继续推进
- 用户被迫重启会话,丢失所有上下文和进度

## ✅ 预期行为

当历史消息中的某张图片被模型端判定为敏感时,QwenPaw 应至少有以下其中一种行为:

1. **优雅降级**:自动剔除被标记的图片(保留文本),重新尝试调用
2. **明确报错**:明确告诉用户"历史消息第 N 条的图片被审核拒绝,是否移除该图片继续?"
3. **提供跳过机制**:在 `config.json` 增加 `strip_sensitive_history_images: true`
选项,启动时自动重发前清洗历史消息

## 🌍 环境信息

| 项目 | 值 |
|------|-----|
| QwenPaw 版本 | 1.1.11.post2 |
| 操作系统 | Windows 10 (AMD64) |
| 默认 Shell | cmd.exe |
| Provider | Anthropic(兼容模式) |
| Model | unknown(堆栈中显示) |
| Session ID | 1786660021227-9984x5e |
| Request ID | 06cd79301a35c2f5987d74309ee0a3ce |
| User ID | default |
| Channel | console |
| approval_level | OFF |
| Agent ID | ai-dramacore-f |

## 🔎 根因分析(初步定位)

调用栈关键节点:
- `F:\qwenpaw\.v13\Lib\site-packages\qwenpaw\agents\react_agent.py:758` (`_reasoning`)
- `F:\qwenpaw\.v13\Lib\site-packages\qwenpaw\agents\react_agent.py:623` (`_call_model`)
- `F:\qwenpaw\.v13\Lib\site-packages\agentscope\agent\_agent.py:2440` (`_call_model`)
- `F:\qwenpaw\.v13\Lib\site-packages\qwenpaw\providers\anthropic_provider.py:689` (`_call_api`)

**问题点**:
1. QwenPaw 把整个会话历史(含 image content)原样回传给模型
2. 历史图片是用户已经下载并审核通过的资源(用于视频制作)
3. Anthropic 端的 `new_sensitive` 审核是**延迟审核**(不是入库时审,是发送时审)
4. 一旦延迟审核拒绝,QwenPaw 没有 fallback 路径,整个请求直接抛 `InternalServerError`

## 💡 建议修复方向

### 方案 A:历史图片可剥离(推荐)
检测到 `input_new_sensitive` 错误时:
- 解析 `messages[N]` 中标记为敏感的 image content
- 把该 image 替换为占位文本 `[image removed by upstream safety filter]`
- 自动重试一次(指数退避)

### 方案 B:用户可控配置
在 `config.json` 中新增:
```json
{
"providers": {
"anthropic": {
"on_sensitive_history_image": "strip_and_retry" // 或 "fail_fast" 或 "ask_user"
}
}
}
```

### 方案 C:预审核
在启动时或定期对历史 image content 跑本地 PIL/AIGC 审核,提前剥离可疑图

## 📎 附件

[qwenpaw_query_error_uuutkfqa.json](https://github.com/user-attachments/files/31047640/qwenpaw_query_error_uuutkfqa.json)

- 错误详情 JSON:`qwenpaw_query_error_uuutkfqa.json`(已上传)
- 用户场景截图:(可附 M1402 V5 视频截图辅助说明非违规内容)

## 🙋 期望响应

- 是否已知问题?是否有 PR 在跟进?
- 短期 workaround(除了"开新会话重头开始")
- 长期修复时间表

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。