Semantic Circuit Breaker

Protect downstream services by monitoring semantic content quality and triggering circuit breaks based on semantic drift, inconsistency, factual errors, or t...

Audits

Pending

Install

openclaw skills install semantic-circuit-breaker

Semantic Circuit Breaker

语义熔断器:基于内容语义而非错误率的服务保护机制。

何时使用

  • API返回"正确格式但错误语义"的响应(如AI幻觉)
  • 需要保护下游服务免受语义漂移影响
  • LLM API的质量保障层

核心认知

1. 传统熔断看状态码,语义熔断看内容

传统Circuit Breaker基于HTTP状态码和超时率。但当LLM API返回200但内容是幻觉、偏见、或语义偏移时,传统熔断完全无效。

语义熔断触发条件

  • 语义漂移:连续N个响应的语义embedding偏离历史基线超过阈值
  • 一致性断裂:对同一问题的多次回答语义差异过大
  • 事实性崩塌:响应中可验证事实的错误率超过阈值
  • 毒性飙升:响应中的有害内容评分突增

2. 三态模型(扩展传统熔断)

  • Closed(正常):语义质量在基线范围内,请求正常通过
  • Open(熔断):语义质量严重偏离,请求被拦截并返回降级响应
  • Half-Open(探测):定期发送探测请求,评估语义质量是否恢复

区别:转换条件不是"错误率"而是"语义距离"。

3. 语义距离计算

def semantic_distance(responses, baseline):
    """计算响应集合与基线的语义距离"""
    embeddings = embed(responses)  # 句向量
    baseline_emb = embed(baseline)
    
    # 余弦距离
    cosine_dist = 1 - cosine_similarity(embeddings.mean(axis=0), baseline_emb.mean(axis=0))
    
    # 方差(一致性)
    variance = embeddings.std(axis=0).mean()
    
    # 事实性(与知识库比对)
    factuality = verify_against_kb(responses)
    
    return 0.4 * cosine_dist + 0.3 * variance + 0.3 * (1 - factuality)

碰撞来源

  • circuit-breaker-pattern × semantic-diff-engine × llm-output-validator
  • semantic-cache-layer(语义计算)× adaptive-circuit-breaker(自适应熔断)