AI Agent权限控制:普通用户和管理员能用不同的工具

📘 AI教程 💬 🔥 Trending

🩺 摘要

普通用户能用Agent查文档、写邮件。管理员还能让Agent改配置、删日志、管理用户。权限控制把工具分清楚。

📝 详情

一个Agent支持了所有用户。实习生和管理员看到的是同样的工具列表。实习生不该看到"删除项目"这个工具。

角色-工具映射

roles:
  viewer:
    tools:
      - search_docs
      - get_info
  editor:
    tools:
      - search_docs
      - get_info
      - write_doc
      - send_email
  admin:
    tools:
      - "*"  # 所有工具

实现

def get_available_tools(user_role: str) -> list:
    role_tools = {
        "viewer": [search_docs, get_info],
        "editor": [search_docs, get_info, write_doc, send_email],
        "admin": ALL_TOOLS
    }
    return role_tools.get(user_role, role_tools["viewer"])

总结

Agent权限控制不复杂——定角色、分工具、运行时根据角色返回不同的工具列表。 核心原则:默认不给权限,按需分配。

运行时权限检查

ROLE_PERMISSIONS = {
    "viewer": {"search", "get"},
    "editor": {"search", "get", "create", "update"},
    "admin": {"search", "get", "create", "update", "delete"},
}

def get_allowed_tools(user_role):
    permissions = ROLE_PERMISSIONS.get(user_role, set())
    return [t for t in ALL_TOOLS if t.permission in permissions]

权限配置写在配置文件里,不改代码就能调整。新员工给viewer权限就够了,不用每个都admin。