Policy Engine

Policy Engine 是集中管理安全策略的引擎,定义哪些操作允许、哪些拒绝、哪些需要审批。它让安全规则不散落在代码各处。

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

[!info] related notes

Policy Engine

一句话定义

Policy Engine 是集中管理安全策略的引擎。它定义了”谁能对什么资源执行什么操作”的规则,让安全策略不散落在代码各处。

核心原理

策略定义

# policy.yaml
policies:
  - name: customer_service_agent
    allowed_tools:
      - search_knowledge
      - query_order
      - create_ticket
    denied_tools:
      - delete_record
      - execute_code
    max_steps: 5
    data_scope: own_tenant

  - name: admin_agent
    allowed_tools: ["*"]
    max_steps: 20
    requires_approval:
      - delete_record
      - update_config

Python 实现

class PolicyEngine:
    def __init__(self, policies: dict):
        self.policies = policies

    def check(self, agent_role: str, action: str, resource: str) -> str:
        policy = self.policies.get(agent_role)
        if not policy:
            return "deny"

        if resource in policy.get("denied_tools", []):
            return "deny"

        if resource in policy.get("requires_approval", []):
            return "require_approval"

        if "*" in policy.get("allowed_tools", []) or resource in policy.get("allowed_tools", []):
            return "allow"

        return "deny"

常见坑

  1. 策略散落: 每个模块各自定义安全规则
  2. 不做集中管理: 改策略要改多处代码
  3. 策略不测试: 安全规则没有测试覆盖

参考资料

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