在 Agent SDK 中实现权限控制——限制代理的操作范围和安全边界。
权限模型
与 Claude Code 不同,Agent SDK 中的权限完全由你自行实现:
- 文件访问控制
- 命令执行限制
- 网络访问控制
- 数据读写权限
实现权限检查
class PermissionChecker:
def __init__(self, allowed_paths, allowed_commands):
self.allowed_paths = set(allowed_paths)
self.allowed_commands = set(allowed_commands)
def can_read(self, path):
"""检查是否可以读取文件。"""
return any(
path.startswith(allowed)
for allowed in self.allowed_paths
)
def can_write(self, path):
"""检查是否可以写入文件。"""
return self.can_read(path)
def can_execute(self, command):
"""检查是否可以执行命令。"""
cmd = command.split()[0]
return cmd in self.allowed_commands
# 使用
perms = PermissionChecker(
allowed_paths=["/home/user/project"],
allowed_commands=["ls", "cat", "grep", "python", "pytest"]
)
def safe_execute_tool(tool_name, **kwargs):
if tool_name == "read_file":
if not perms.can_read(kwargs["path"]):
return "错误:无权访问该文件"
# 读取文件
elif tool_name == "run_command":
if not perms.can_execute(kwargs["command"]):
return f"错误:不允许执行命令 {kwargs['command']}"
# 执行命令
下一步
- Agent SDK 安全部署
- 权限配置:Claude Code 权限