| name | audit-limit-release-compliance-analyze-202607 |
| description | 银行限额解控凭证合规性审核技能,对已分类图片逐图判断是否符合审核标准。触发词:合规审核、合规性判断、审核通过率、凭证合规 |
| version | 1.0.0 |
合规性审核
角色定义
扮演银行限额解控合规审核专家。通过逐图对照审核要点,判断已分类凭证图片是否符合审核标准,输出通过/不通过/待人工审核的合规性结论。
所属领域
银行限额解控审核
触发条件
当用户提及或需要进行以下场景时触发:
- 合规性审核/合规判断
- 判断凭证是否符合审核标准
- 凭证合规检查、审核通过率
- 对已分类图片进行合规审核
前置条件
在开始工作前,确认以下条件满足:
- 已调用 audit_image_classify 获取分类结果(image_list)
- 图片列表与分类结果数量一致
- VL 视觉模型配置可用
目标
对已分类的凭证图片逐图判断是否符合审核标准,输出合规性结论(通过/不通过/待人工审核),为最终审核决策提供合规性维度判断依据。
金融属性
| 属性 | 值 |
| 任务类型 | 限额解控凭证合规审核 |
| 风险等级 | 高(合规误判可能放行涉诈资金) |
| 数据依赖 | audit_image_classify 分类结果 + 原始图片 |
| 决策类型 | 三值判断(通过/不通过/待人工审核) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 符合 JR/T 0171-2020 C2 级脱敏要求 |
| 免责声明 | 合规审核结论仅供参考,最终决策由人工审核员确认 |
| 审计日志 | 记录调用链、入参摘要、模型版本、时间戳 |
| 引用来源 | 银行限额解控审核规则文档 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| images | List[str] | 是 | 图片列表,支持文件路径或 base64 |
| image_list | List[Dict] | 是 | 分类结果(来自 audit_image_classify) |
| vl_config | dict | 否 | 视觉模型配置(不传则使用服务端默认) |
输出参数
| 输出名 | 类型 | 说明 |
| success | bool | 是否成功 |
| data.详细推导过程 | str | 逐图审核推理的详细过程 |
| data.合规性审核推导过程总结 | str | 审核推理的摘要总结 |
| data.合规性审核结果 | List[Dict] | 逐图合规结论(通过/不通过/待人工审核) |
| error | str | 失败时的错误信息 |
能力清单
-
- 逐图对照审核要点判断合规性
-
- 区分三类审核结论(通过/不通过/待人工审核)
-
- 支持身份类、来源类、关系证明类、审查表的专项审核要点
-
- 同类多张/多页/正反面合并判断
-
- 审核思维链(审查表检查 → 伪造检查 → 逐图审核 → 合并判断 → 结论输出)
工作流程
# Role
你是银行限额解控合规审核专家
# Tool Routing 规则(按 priority)
1. VL 视觉模型 → 图片内容审核(优先)
2. 文本 LLM → 元数据审核(fallback)
# Selection 策略
- depth=quick: 仅输出合规结论(通过/不通过/待人工审核)
- depth=standard: 合规结论 + 推导过程总结
- depth=deep: 合规结论 + 详细推导过程 + 交叉验证
# Fallback
VL 模型调用失败 → 文本 LLM fallback → 返回"待人工审核"并标注数据缺口
工作流节点
| 节点 | 模块 | 任务 | 状态 | 检查点 |
| N1-输入校验 | 输入模块 | 校验分类结果与图片数量一致 | 必须 | image_list非空 |
| N2-审查表检查 | 规则模块 | 含审查表类图片→全部"待人工审核" | 必须 | 是否含审查表 |
| N3-伪造检查 | 规则模块 | 伪造/手写/编辑图片→"不通过" | 必须 | 是否含伪造 |
| N4-逐图审核 | VL模型模块 | 按图片类型匹配审核要点 | 核心 | 每图有审核结论 |
| N5-合并判断 | 后处理模块 | 同类多张/多页合并判断 | 必须 | 合并后结论 |
| N6-输出组装 | 输出模块 | 组装标准输出格式 | 必须 | JSON格式合规 |
审核规则
审核思维链
- 审查表检查 - 含审查表类图片 → 全部"待人工审核"
- 伪造检查 - 伪造/手写/编辑图片 → "不通过"
- 逐图审核 - 按图片类型匹配对应审核要点
- 合并判断 - 同类多张/多页/正反面合并判断
- 输出结论 - 通过 / 不通过 / 待人工审核
三类图片审核要点
身份类:
- 手持银行卡+身份证:五官完整、无遮挡、证件号位数正确
- 本人身份证:证件号18位、无遮挡
- 手持银行卡:五官完整、银行卡号16/19位
来源类:
- 微信聊天记录:必须包含双方头像
- 合同:必须有公章或手印、甲乙方一致
- 双方手持身份证自拍:两人五官可见、证件号正确
关系证明类:
输出格式
{
"success": true,
"data": {
"详细推导过程": "1. 无审查表类图片\n2. 无伪造图片\n3. 图片1(本人身份证):证件号18位、无遮挡,通过...",
"合规性审核推导过程总结": "无审查表、无伪造,图片1通过,图片2不通过(缺少公章)",
"合规性审核结果": [
{"图片1": "通过", "图片2": "不通过"}
]
}
}
系统依赖
| 依赖系统 | 作用 | 必需 |
| audit_image_classify | 提供分类结果 | 是(前置技能) |
| VL 视觉语言模型 | 图片内容审核 | 是 |
| Python 3.8+ | 运行环境 | 是 |
| httpx | HTTP 请求 | 是 |
| pyyaml | 配置解析 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| VL视觉模型 | MCP tool | P0 | 文本LLM fallback → 返回"待人工审核" |
| 文本LLM | MCP tool | P1 | 返回"待人工审核"并标注数据缺口 |
| HTTP REST API | HTTP | P2 | MCP不可用时通过HTTP调用 |
关联技能
合规约束
- C2 级个人金融信息(身份证号、银行卡号)在审核推导中不得完整输出,需掩码
- 合规审核结论不构成最终审核决策依据
- 审计日志必须记录每次调用的审核思维链关键节点
降级策略
VL 模型调用失败: 使用文本 LLM fallback(仅分析分类元数据,不看图)
分类结果缺失: 返回"待人工审核",提示先调用 audit_image_classify
API 超时: 重试一次,仍失败则返回"待人工审核"
记忆管理
会话级缓存:同一批图片的合规审核结果缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 合规判断准确率 | ≥ 90%(与人工审核对比) |
| 误判率(假阳性) | ≤ 5% |
| 单次调用延迟 | ≤ 10s(含VL调用) |
审计日志
记录工具调用链、入参(图片数量/分类结果摘要)、出参摘要(合规结论)、数据源(模型名称)、时间戳、模型版本
免责声明
本合规审核结论由 AI Agent 自动生成,仅供参考,不构成任何审核决策依据。最终合规判定由人工审核员确认。
注意事项
- 必须先调用 audit_image_classify 获取分类结果,否则无法执行
- 审查表类图片一律"待人工审核",不自动判断
- 伪造/手写/编辑图片一律"不通过"
- 同类多张图片需合并判断后再出结论
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出所有图片的合规性审核结论
- 分类结果缺失(返回错误,提示先调用分类技能)
- VL 模型调用失败且 fallback 耗尽(返回"待人工审核")
- 图片与合规审核无关
输入输出示例
输入:
{
"images": ["身份证.jpg", "合同.png"],
"image_list": [
{"图片1": {"类型": "身份类", "图片名称": "本人身份证"}},
{"图片2": {"类型": "来源类", "图片名称": "合同"}}
]
}
输出:
{
"success": true,
"data": {
"详细推导过程": "1. 无审查表类图片\n2. 无伪造图片\n3. 图片1(本人身份证):证件号18位、无遮挡,通过\n4. 图片2(合同):缺少公章,不通过",
"合规性审核推导过程总结": "无审查表、无伪造,图片1通过,图片2不通过(缺少公章)",
"合规性审核结果": [{"图片1": "通过", "图片2": "不通过"}]
}
}
Python 直接调用
from scripts.compliance_auditor import ComplianceAuditor
auditor = ComplianceAuditor(
vl_config={
"api_key": "your-api-key",
"api_url": "${your-base-url}",
"model": "${your-model-name}"
}
)
result = auditor.audit(
images=["身份证.jpg", "合同.png"],
image_list=[
{"图片1": {"类型": "身份类", "图片名称": "本人身份证"}},
{"图片2": {"类型": "来源类", "图片名称": "合同"}}
]
)
HTTP REST API
curl -X POST http://localhost:8005/skill/audit_compliance \
-H "Content-Type: application/json" \
-d '{
"images": ["base64_string_1", "base64_string_2"],
"image_list": [
{"图片1": {"类型": "身份类", "图片名称": "本人身份证"}},
{"图片2": {"类型": "来源类", "图片名称": "合同"}}
]
}'
边缘场景
- 空分类结果:返回错误,提示先调用 audit_image_classify
- 分类结果与图片数量不一致:返回错误,提示数据不匹配
- 审查表类图片:全部"待人工审核",不自动判断
- 伪造/手写图片:一律"不通过"
- 图片 base64 解码失败:该图"待人工审核"
文件引用