AI Agent权限控制:普通用户和管理员能用不同的工具
🩺 摘要
普通用户能用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。
💬 评论 (0)