LLM-as-Judge 内容安全拦截 Plugin。
用低成本 LLM(如 GPT-mini / Gemini Flash)在 :before_request 评估用户输入,
拦截越狱 / 有害指令 / 离题等不合规内容。
与 cmdc_gateway denylist 的关系
- cmdc_gateway denylist:HTTP 层 string 匹配,快速、防显式词
- ContentPolicy LLM-judge:Plugin 层语义判断,防多轮越狱 / 绕过 denylist
- 推荐双层使用:denylist 拦显式、ContentPolicy 拦语义
4 大策略类别
- 指令颠覆(越狱):
"忽略之前的规则"/ 请求暴露内部 prompt - 有害内容:仇恨言论 / 危险活动 / 露骨内容 / 辱骂
- 离题/越界:政治 / 宗教 / 体育 / 学术作弊 / 与 Agent 无关的闲聊
- 品牌/竞争:诋毁本品牌 / 讨论竞争对手
配置
{ContentPolicy, [
judge_model: "gemini/gemini-2.0-flash", # 低成本 judge model
judge_provider_opts: [temperature: 0.0], # 推荐 deterministic
custom_rubric: "...", # 可选自定义评估准则
brand_keywords: ["MyProduct"], # 可选品牌词
competitor_keywords: ["CompetitorX"], # 可选竞争对手
fail_open: true # judge 失败时是否放行(默认 true)
]}行为
:before_request取最新 user message → 调 judge → JSON schema 验证- 不合规 →
:abortaction + emit:content_policy_violated - judge 调用失败 →
fail_open: true默认放行(避免 judge service 故障阻塞主流程)
v0.4.0 实现说明
judge LLM 调用走 CMDC.Provider(req_llm 封装),与主 Agent 共享 provider 池。
这意味着 judge model 切换是 provider 级的(不会影响主 model)。