Skip to content

危险级别(Danger Level)机制

本页讲 Kuboard MCP 工具的危险级别(danger level):三档分级怎么定义、每个工具标了什么级、它如何与变更审批一起保护集群。适合给智能体配置变更流程的运维/平台工程师阅读,建议先看 变更审批流程

三级危险度定义与工具对照

危险度标在每个 MCP 工具上,回答「这个 AI 操作有多危险、需要多大管控」,分三档:

级别典型操作含义
LOW读工具 / 单资源重启镜像无需额外检查
MEDIUMapply / patch / 单资源 delete执行前先 dry-run 预演
HIGH批量删除 / 节点排水 / Pod 驱逐高危,必须经你确认

分级的依据

分级看操作的真实破坏面,而不是「是否写集群」:delete_k8s_collection 一次删掉整个资源集合,所以是 HIGH;delete_k8s 只动一个对象,是 MEDIUM。

危险度在工具注册时就标注好:读取类工具默认 LOW,写入类工具显式声明级别。你不需要了解标注过程,只需对照下表知道每个工具是什么级别:

危险等级工具
LOW读工具:list_clusters / list_k8s / get_k8s / get_pod / Prometheus 查询 等
LOWrestart_workload / update_image_tag / scale_workload / rollback_workload
MEDIUMapply_k8s / patch_k8s / delete_k8s
HIGHdelete_k8s_collection / drain_node / evict_pod

标 LOW 的也可能是写操作

restart_workload 等 4 个 CD 写工具虽然标了 LOW,但确实是写入操作。是否走审批认的是写工具白名单,不认危险度——不能因为标了 LOW 就绕过审批。详见下节。

管控演进:从 confirmToken 到审批门

危险度机制经历过两代管控。

第一代 · 确认令牌(confirmToken,已废弃):早期 HIGH 级操作靠一次性令牌确认。智能体先取令牌、凭令牌直接执行——令牌在会话里来回传递,一旦拿到就能立即 apply,你事后才察觉,也无法对一次计划里的多处改动逐一把关。

第二代 · 变更审批(当前):确认令牌整体退役,换成「变更计划 + 人工审批门」:智能体把写操作逐条加入计划 → 你在 Kuboard UI 审批 → 通过后签发一次性审批令牌(approval token)→ 智能体凭它逐步执行。

text
第一代:智能体自己取令牌 → 凭令牌执行(拿到即可过,你事后才知道)
第二代:智能体建计划 → 你在 UI 审批 → 拿到审批令牌 → 才能执行(绕不开你)

两种 token 的区别

confirm token 是「智能体的自我确认」,approval token 是「你人工审批的凭证」。危险度两代都保留,变的只是「HIGH 需要的二次确认」由谁来完成。

危险度与审批门的关系

是否强制审批由「Agent 操作强制审批」开关(默认开启,见 服务端配置)和一张写工具白名单共同决定。开启后,白名单里的 10 个写工具对智能体完全不可见、不可直接调用,只能通过计划流程执行;即使智能体绕过枚举直接发起调用,也会在调用阶段被拒绝。

json
["apply_k8s", "patch_k8s", "delete_k8s", "delete_k8s_collection",
 "drain_node", "evict_pod",
 "restart_workload", "scale_workload", "update_image_tag", "rollback_workload"]

危险度与是否审批完全解耦:判定标准是白名单,不是危险度。restart_workload 虽标 LOW,一样在名单里、一样必须审批。

危险度在审批与审计中的角色

进了审批流程后,危险度起「等级管理 + 界面提示 + 事后留痕」三个作用:

  • 步骤级:每个步骤的危险度来自该工具自带标记,缺失时按 MEDIUM 兜底
  • 计划级:整个计划的危险度取所有步骤的最高值——只要有一个 HIGH 步骤,整个计划就标 HIGH
  • 界面提示:LOW 显示蓝色、MEDIUM 显示黄色、HIGH 显示红色并高亮。等级只决定提示多醒目,不决定要不要审批

危险度同时写进审计与监控,用于回答「哪个智能体、何时做了什么高危操作」:

场景在审计 / 监控中的体现
每次工具调用记录工具名、成功或失败、危险度
步骤加入计划记录一条「步骤已接受」,带危险度
绕过审批被拦截记录一条「审批门拦截」;动作统一记为 update,避免暴露可攻击面

监控指标带危险度标签,可直接回答「过去一小时有多少 HIGH 级操作被执行 / 被批准 / 被拦截」。

常见误区

  1. 「标了 LOW 就能绕过审批」——错。审批看白名单不看危险度,restart_workload 等 LOW 写工具照样被拦。
  2. 「confirmToken 还在用」——错。已被变更审批整体取代,旧客户端传来的令牌参数只是向后兼容的空壳,不参与任何校验。
  3. 「危险度只影响提示」——在「要不要审批」这一点上正确,但它同时决定审批界面的提示强度。
  4. 「计划取平均危险度」——取最高值而非平均值。

相关页面