diff --git a/pipeline_service/platform_model_tools.py b/pipeline_service/platform_model_tools.py index 9e34fb4..07ed718 100644 --- a/pipeline_service/platform_model_tools.py +++ b/pipeline_service/platform_model_tools.py @@ -383,10 +383,16 @@ async def tool_invoke_model(params, org_id, user_id=""): cap2, desc = await _resolve_capability(model, org_id) cap = cap or cap2 # 能力降级门禁换算:i2i/r2v 模型无媒体输入时按 t2i/t2v 契约校验 - cap = _degrade_gate_cap(cap, biz) - gap = await judge_completeness(model, cap, task, biz, - description=desc, org_id=org_id or "0", - user_id=user_id or "") + cap_gate = _degrade_gate_cap(cap, biz) + if cap_gate != (cap or "").strip().lower(): + # 降级执行:契约是确定性规则,直接代码表判定——LLM/模型技能层会按 + # 模型自身能力(i2i 要源图)误判,实测 2026-09-08 拦截了合法文生图任务 + gap = _check_completeness_code(cap_gate, task, biz) + else: + gap = await judge_completeness(model, cap_gate, task, biz, + description=desc, org_id=org_id or "0", + user_id=user_id or "") + cap = cap_gate if gap: logger.info("invoke_model 完备性门禁拦截(%s): %s", cap or "?", gap[:80]) return "QUESTION: " + gap