Tool Permission Check

Tool Permission Check 是在执行工具前检查当前用户/Agent 是否有权调用该工具的过程。它是安全治理的关键环节。

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

[!info] related notes

Tool Permission Check

一句话定义

Tool Permission Check 是在执行工具前检查当前用户/Agent 是否有权调用该工具的过程。不是所有 Agent 都能调用所有工具——权限控制是安全的基础。

核心原理

权限检查层次

1. 用户级权限: 用户是否有权使用这个 Agent
2. Agent 级权限: Agent 是否有权调用这个工具
3. 参数级权限: 参数是否在允许范围内
4. 数据级权限: 是否有权访问目标数据

Python 实现

class ToolPermissionChecker:
    def __init__(self, permission_boundary: PermissionBoundary):
        self.boundary = permission_boundary

    def check(self, tool_name: str, arguments: dict, context: ExecutionContext) -> tuple[bool, str]:
        # 1. 工具白名单检查
        if not self.boundary.can_use_tool(tool_name):
            return False, f"Tool {tool_name} not allowed"

        # 2. 只读检查
        if self.boundary.read_only:
            tool = registry.get(tool_name)
            if not tool.read_only:
                return False, "Read-only mode"

        # 3. 数据范围检查
        if self.boundary.data_scope:
            if not self.check_data_scope(arguments, self.boundary.data_scope):
                return False, "Data scope violation"

        return True, ""

常见坑

  1. 不做权限检查: 所有工具都能被调用
  2. 权限太宽: Agent 有不需要的权限
  3. 权限检查绕过: 直接调用 handler 跳过检查

参考资料

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