Tool Risk Level

Tool Risk Level 是对工具操作风险的分级,决定是否需要人类审批、是否需要额外日志、是否需要沙箱执行。

#type / concept #status / evergreen #tech / ai #tech / security

[!info] related notes

Tool Risk Level

一句话定义

Tool Risk Level 是对工具操作风险的分级。查询天气是低风险,删除数据是高风险。不同风险级别决定了是否需要审批、是否需要沙箱、是否需要详细日志。

核心原理

风险等级定义

等级特征处理方式
Low只读、无副作用直接执行
Medium有副作用但可撤销确认后执行
High不可逆、影响大必须人类审批
Critical金融、删除、发布多重审批

风险评估

class RiskAssessor:
    def assess(self, tool: Tool, arguments: dict) -> str:
        # 工具级别风险
        base_risk = tool.risk_level

        # 参数级别风险调整
        if tool.name == "delete_record":
            count = arguments.get("count", 1)
            if count > 100:
                return "critical"
            elif count > 10:
                return "high"

        if tool.name == "send_email":
            recipients = arguments.get("recipients", [])
            if len(recipients) > 10:
                return "high"

        return base_risk

风险与审批

async def execute_with_risk_check(tool, arguments, context):
    risk = risk_assessor.assess(tool, arguments)

    if risk in ("high", "critical"):
        # 需要人类审批
        approval = await request_approval(tool, arguments, risk)
        if not approval.approved:
            return ToolResult(error="用户拒绝执行")

    if risk == "critical":
        # 额外日志
        audit_log.record(tool, arguments, risk)

    return await execute_tool(tool, arguments, context)

常见坑

  1. 不做风险分级: 所有工具同等对待
  2. 风险等级太低: 高风险操作没有审批
  3. 不做动态评估: 同一个工具不同参数风险不同

参考资料

创建于 2026/6/30 更新于 2026/7/15