Supervlint:一个测量“人类监督者是否还具备接管能力“的工具

背景

过去几年,行业在"让 AI 更可靠"上投入了大量工作:更好的模型、更完善的评测、更细的护栏。但有一个前提很少被量化------当 AI 出现错误时,负责监督它的人类,是否还具备发现并接管的能力。

欧盟《人工智能法案》第 14 条要求高风险 AI 系统具备"有效的人类监督"(effective human oversight)。这里的"有效"如何验证,目前缺少相应的工具。Supervlint 的目标就是提供这样一种测量手段。

核心思想:HITL-MT

Supervlint 借用了变异测试(mutation testing)的方法,但把测量对象从"测试套件"换成了"人类审查者"。

传统变异测试向代码中注入人为缺陷,检验测试套件能否捕获。Supervlint 向 AI 生成的产物(代码、文档、决策记录等)中注入受控的、刻意微妙的缺陷(称为探针),然后观察人类审查者能否发现。根据审查结果,系统记录四类状态:

  • KILLED:审查者拦截了该缺陷
  • SURVIVED:审查者放行了该缺陷
  • FALSE_ALARM:审查者误报了原本正确的内容
  • CONTROL_PASS:对照样本判断正确

由此得到的是可复现、可审计、可统计的监督信号,而非主观判断。

探针按认知难度分为 L1(语法级)到 L5(论证级)。L5 对应的情况是:产物本身合法,但人类接受了一个错误的理由。这一层级是现有工具尚未覆盖的部分。

四个核心原语

HITL-MT(人类在环变异测试):上文描述的注入与测量过程。

OJT (Open Judgment Trace,开放判断轨迹):每次判断都会生成带签名的记录,但记录中不包含被审查内容本身 ------内容字段固定为字面量 OMITTED。这样企业可以使用该工具而无需将业务内容传出本地环境。

OCI (Oversight Competence Index,监督能力指数):以向量而非单一分数表示能力。包含分层的检测率(附 Wilson 置信区间)、校准度(Brier 分数)以及趋势斜率。当样本量不足时,系统不输出估计值,而不是给出一个不可靠的数字。

Socratic Regrind(苏格拉底式重磨):当审查者漏掉某个探针时,系统生成针对性的最小练习,用于重建相应的判断能力,而不是简单地告知"你错了"。

快速上手

仓库当前为可运行状态,需要 Python ≥ 3.10,唯一的运行时依赖是 pyyaml。

bash 复制代码
pip install -e .

# 零配置演示,约 10 秒内可观察到一次 SURVIVED 结果
slint review --demo --auto

查看并运行内置探针包:

bash 复制代码
slint packs list
slint probe new my/capability-001      # 生成探针脚手架
slint probe test packs/pack-python/probes/id-vs-eq-001.yaml
slint probe try  packs/pack-python/probes/id-vs-eq-001.yaml

# 多次评审后,查看 OCI 报告
slint oci report

编程接口调用示例:

python 复制代码
from supervlint.core.engine import SupervlintEngine, resolve_secret
from supervlint.core.budget import BudgetController
from supervlint.core.vault import LocalVault
from supervlint.core.ojt import TraceContext
from supervlint.demo.pr_demo import DEMO_ARTIFACT, get_demo_probe

engine = SupervlintEngine(
    vault=LocalVault("supervlint.vault.db"),
    budget=BudgetController(seed=42),
    ctx=TraceContext(local_salt="me", cohort=["role:swe"]),
    secret=resolve_secret(env_var="SUPERVLINT_SECRET"),
)
result = engine.review(DEMO_ARTIFACT, get_demo_probe(), user_flagged=False)
print(result["reveal"])

签名密钥通过环境变量传入,不应硬编码在代码中:

bash 复制代码
export SUPERVLINT_SECRET="$(openssl rand -hex 32)"

设计上的明确边界

Supervlint 在代码和规范层面设定了以下约束:

  1. 不做 SaaS 托管:定位为协议加本地优先的工具,数据保留在本地。
  2. 不做针对个人的实时监控或告警:测量的是监督能力,而非个人产出或对雇主的价值。
  3. 不做排行榜或"监督分数":游戏化会破坏无偏采样,使测量失效。

这些约束由代码和规范强制,而非依赖运营承诺。

适用场景

  • AI 辅助研发团队 :可将 slint review 接入 PR 流程作为非阻塞检查,且不上传任何业务内容。
  • 合规准备:为 AI Act 第 14 条"有效人类监督"提供可审计的能力证据。
  • 能力建设:将漏检的探针转化为针对性练习,用于持续提升审查能力。

数据流向

仓库

代码当前托管在 Gitee:

https://gitee.com/lumina-cheng/supervlint

许可证为 Apache-2.0,探针包采用 CC-BY-SA-4.0。

Supervlint------让人类保持锋利。

相关推荐
搬砖的小码农_Sky2 小时前
AI Agent:如何处理Claude Code 最近版本(2026年更新)引入的模型上下文限制
人工智能·windows·ai·ai编程
全栈弄潮儿4 小时前
一次真实失败:AI 代码看起来没问题,为什么还是翻车了?
aigc·openai·ai编程
李航19834 小时前
AI定制柜建模,需要详细的建模规范和标准流程
人工智能·python·计算机视觉·ai·ai编程
长弓三石6 小时前
用纯 Java 做一个企业级 Agent Harness 平台:BizBuddy 的设计与取舍
开源·agent·ai编程
zhangfeng11339 小时前
Ag / Cu / Au / Ru / Ir / Rh银 铜 金 钌铱 铑 纳米尺度下的 导电性 + 扩散/迁移缺点
人工智能·华为·ai编程·npu
蒸蒸yyyyzwd9 小时前
CUDA 学习笔记
ai编程
Web3_Basketball10 小时前
Ollama本地函数调用发布72小时,我替你试完了
ai编程
9i编程10 小时前
1. 教 AI 上班:带出我的数字同事 —— 把开发习惯交给 Qoder,从零搭脚手架
人工智能·openai·ai编程
用户55635255605610 小时前
[避坑] AI工具雷达避坑 | frontend-design的真实问题
ai编程