| name | audit-limit-release-img-classify-202607 |
| description | 银行限额解控凭证图像分类技能,将上传图片识别为4大类(身份类/来源类/关系证明/审查表)及子类型。触发词:图像分类、凭证分类、图片类型识别、审核分类 |
| version | 1.0.0 |
凭证图像分类
角色定义
扮演银行限额解控审核流程的图像分类专家。通过 VL 视觉语言模型识别上传凭证图片的类型,输出4大类及其子类型的结构化分类结果,为下游合规审核、完整性审核、相关性审核提供分类依据。
所属领域
银行限额解控审核
触发条件
当用户提及或需要进行以下场景时触发:
- 凭证图片类型识别/分类
- 审核流程第一步(图像分类)
- 判断上传图片属于身份类、来源类、关系证明还是审查表
- 图片分类、凭证分类、审核分类
前置条件
在开始工作前,确认以下条件满足:
- 图片列表不为空(至少1张图片)
- 图片可访问(文件路径有效或 base64 可解码)
- VL 视觉模型配置可用(api_key/api_url/model)
目标
将上传的凭证图片准确分类为4大类(身份类、来源类、关系证明、审查表)及其子类型,为下游审核技能提供结构化分类输入。
金融属性
| 属性 | 值 |
| 任务类型 | 限额解控凭证分类 |
| 风险等级 | 高(分类错误将误导下游审核) |
| 数据依赖 | 原始凭证图片 + VL 视觉模型 |
| 决策类型 | 分类判断(4大类×子类型) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 符合 JR/T 0171-2020 C2 级脱敏要求 |
| 免责声明 | 分类结果仅供参考,最终分类由人工审核员确认 |
| 审计日志 | 记录调用链、入参摘要、模型版本、时间戳 |
| 引用来源 | 银行限额解控审核规则文档 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| images | List[str] | 是 | 图片列表,支持文件路径或 base64 字符串 |
| vl_config | dict | 否 | 视觉模型配置(不传则使用服务端默认配置) |
vl_config 配置项
| 字段 | 类型 | 必填 | 说明 |
| api_key | str | 是 | API 密钥 |
| api_url | str | 否 | API 端点 |
| model | str | 否 | 模型名称,默认 Qwen/Qwen3-VL-8B-Instruct |
| timeout | int | 否 | 请求超时(秒),默认 300 |
输出参数
| 输出名 | 类型 | 说明 |
| success | bool | 是否成功 |
| data.图片分类 | List[Dict] | 逐图分类结果,每项含图片编号、大类、子类型 |
| error | str | 失败时的错误信息 |
能力清单
-
- 将凭证图片分类为4大类(身份类、来源类、关系证明、审查表)及子类型
-
- 支持单张/多张图片批量分类
-
- 支持文件路径或 base64 编码输入
-
- 自动跳过模糊/不相关图片(归类为"其他")
工作流程
# Role
你是银行限额解控审核流程的图像分类专家
# Tool Routing 规则(按 priority)
1. VL 视觉模型 → 图片内容识别(优先)
2. 文件名启发 → 文件名包含关键字时的预判(辅助)
# Selection 策略
- depth=quick: 仅输出分类结果
- depth=standard: 分类结果 + 简要理由
- depth=deep: 分类结果 + 详细理由 + 低置信度标注
# Fallback
VL 模型调用失败 → 返回"分类失败"并标注数据缺口,建议人工分类
工作流节点
| 节点 | 模块 | 任务 | 状态 | 检查点 |
| N1-输入校验 | 输入模块 | 校验图片列表非空且可解码 | 必须 | 图片数量≥1 |
| N2-VL调用 | VL模型模块 | 调用VL模型进行图像分类 | 核心 | 返回结构化JSON |
| N3-分类映射 | 后处理模块 | 映射到4大类×子类型 | 必须 | 每图有分类结果 |
| N4-输出组装 | 输出模块 | 组装标准输出格式 | 必须 | JSON格式合规 |
分类规则
4 大类
-
身份类 - 证明个人身份的证件
- 本人身份证
- 本人手持银行卡和身份证的上半身正面照
- 社保/公积金缴纳证明
- 居住证、学生证、营业执照等
-
来源类 - 证明资金来源的凭证
- 微信聊天记录截图
- 微信实名截图
- 合同/协议
- 银行转账记录(付款人/收款人)
- 工资单、交易证明等
-
关系证明 - 证明与交易对手关系的材料
- 结婚证(有结婚证字号)
- 户口本(户主页)
- 出生证明
- 离婚证(有离婚证字号)
-
审查表 - 银行内部审查文件
- 涉诈风险账户审查表
- 尽职调查记录单
- 行为告知书
- 提额解控处理单
特殊规则
- 模糊无法识别 → "其他"
- 完全不相关 → "其它"
- 不依赖文件名,通过图像内容判断
- 严格按大类和小类分类,不创造新分类
输出格式
{
"success": true,
"data": {
"图片分类": [
{"图片1": {"类型": "身份类", "图片名称": "本人身份证"}},
{"图片2": {"类型": "来源类", "图片名称": "微信聊天记录"}},
{"图片3": {"类型": "关系证明", "图片名称": "户口本"}},
{"图片4": {"类型": "审查表"
系统依赖
| 依赖系统 | 作用 | 必需 |
| VL 视觉语言模型 | 图片内容识别 | 是 |
| Python 3.8+ | 运行环境 | 是 |
| httpx | HTTP 请求 | 是 |
| pyyaml | 配置解析 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| VL视觉模型 | MCP tool | P0 | 返回分类失败,建议人工分类 |
| HTTP REST API | HTTP | P1 | MCP不可用时通过HTTP调用 |
关联技能
合规约束
- C2 级个人金融信息(身份证号、银行卡号)在分类结果中不得完整输出,需掩码
- 分类结果不构成最终审核决策依据
- 审计日志必须记录每次调用的模型版本和置信度
降级策略
VL 模型调用失败: 返回"分类失败"并建议人工分类,标注数据缺口
图片解码失败: 跳过该图片,在输出中标注"图片不可读"
API 超时: 使用服务端默认配置重试一次,仍失败则返回错误
记忆管理
会话级缓存:同一批图片的分类结果缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 分类准确率 | ≥ 95%(与人工分类对比) |
| 单次调用延迟 | ≤ 5s(单图) |
| 批量调用延迟 | ≤ 30s(10图) |
审计日志
记录工具调用链、入参(图片数量/来源)、出参摘要(分类结果)、数据源(模型名称)、时间戳、模型版本
免责声明
本分类结果由 AI Agent 自动生成,仅供参考,不构成任何审核决策依据。最终分类由人工审核员确认。
注意事项
- 不依赖文件名判断类型,必须通过图像内容识别
- 严格按4大类×子类型分类,不创造新分类
- 模糊/不相关图片归为"其他",不应强行分类
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出所有图片的分类结果
- 图片列表为空(返回错误)
- VL 模型调用失败且重试耗尽(返回分类失败)
- 超出分类范围(图片与审核无关)
输入输出示例
输入:
{ "images": ["身份证.jpg", "合同.png"] }
输出:
{
"success": true,
"data": {
"图片分类": [
{"图片1": {"类型": "身份类", "图片名称": "本人身份证"}},
{"图片2": {"类型": "来源类", "图片名称": "合同"}}
]
}
}
Python 直接调用
from scripts.classifier import ImageClassifier
classifier = ImageClassifier(
vl_config={
"api_key": "your-api-key",
"api_url": "${your-base-url}",
"model": "${your-model-name}"
}
)
result = classifier.classify(["身份证.jpg", "合同.png"])
HTTP REST API
curl -X POST http://localhost:8005/skill/audit_image_classify \
-H "Content-Type: application/json" \
-d '{"images": ["base64_string_1", "base64_string_2"]}'
MCP 协议
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "audit_image_classify",
"arguments": {"images": ["base64_string_1", "base64_string_2"]}
}
}
边缘场景
- 空图片列表:返回
{"success": false, "error": "图片列表不能为空"}
- 超过10张图片:逐图分类但建议分批处理
- 图片 base64 解码失败:跳过该图片,标注"图片不可读"
- VL 模型返回非 JSON 格式:解析失败时返回分类失败
- 模糊图片无法识别:归类为"其他"
文件引用