Skip to content

Agent 权限控制 (Agent Permissions)

Antigravity 采用一套强大且统一的权限引擎,在启用自主工作流的同时保护您的环境安全。Agent 执行的每个敏感操作均被表示为一个格式为 action(target) 的权限资源。

权限是在三个不同的访问列表中进行评估的:

  • 拒绝 (Deny):操作被立即拦截。
  • 询问 (Ask):Agent 会暂停并在继续操作前提示您明确批准。
  • 允许 (Allow):操作会被自动批准,无需提示。

[!WARNING] 优先级规则:冲突的规则会严格按照优先级顺序进行评估:Deny > Ask > Allow。例如,如果您在 Ask 列表中配置了 command(*),在 Allow 列表中配置了 command(git),那么 Ask 规则将处于优先地位,在执行每个命令前都会提示您。

支持的操作与匹配规则 (Supported Actions & Matching Rules)

操作 (Action)目标格式 (Target Format)匹配行为 (Matching Behavior)默认回退 (Default Fallback)
read_fileread_file(/path)read_file(dir)read_file(*)匹配绝对路径或相对于项目工作区根目录的路径。授予对所包含的所有文件/文件夹的递归读取权限。使用 read_file(*) 匹配系统上的所有文件。询问 Ask(在工作区内自动允许)
write_filewrite_file(/path)write_file(*)read_file 相同。隐式授予对完全相同的目标路径的 read_file 权限。询问 Ask(在工作区内自动允许)
read_urlread_url(domain)read_url(*)匹配主机名和子域名(例如,google.com 覆盖 mail.google.com)。忽略 URL 路径片段。使用 read_url(*) 匹配任何域名。询问 Ask
execute_urlexecute_url(domain)execute_url(*)触发网页元素(如点击、输入)或在某个域名上驱动交互式的浏览器工作流。询问 Ask
commandcommand(prefix)command(regex)command(*)按精确的单词/标记前缀匹配。每个由空格分隔的标记都作为锚定的正则表达式(^(?:pattern)$)进行评估。例如,command(npm run (build.*)) 匹配 npm run buildnpm run build-prod询问 Ask
unsandboxedunsandboxed(prefix)unsandboxed(regex)unsandboxed(*)按精确的单词/标记前缀匹配命令。匹配此授权的命令将在容器隔离之外执行(仅在启用终端沙箱时适用)。询问 Ask
mcpmcp(server/tool)mcp(server/*)mcp(*)匹配精确的 MCP 工具或指定服务器上的所有工具(同样适用于本地 MCP 服务器和远程连接)。使用 mcp(*) 匹配任何工具。询问 Ask

[!NOTE] 全局通配符语法:在所有受支持的操作类型(如 read_file()command()mcp() 等)中,传入全局通配符 * 将匹配该整个操作命名空间下的所有目标。

深入理解平台中的 read_urlexecute_url

read_url 权限控制着 Antigravity 三个不同区域的出站网络连接:

  1. read_url 工具:当 Agent 使用内部的 read_url_content 工具获取网页 Markdown 以进行研究时,它会检查您的 read_url 授权。
  2. 浏览器子 Agent 与工具:当驱动 Chrome 会话时,read_url 授权加载和查看目标域名。然而,交互式 UI 操作(点击按钮、输入文本)则由 execute_url 独立控制。
  3. 终端沙箱:在沙箱模式下,任何在 read_url 下被授权的域名都会被直接编译进容器的出站网络允许列表(AllowedDomains),允许 curlnpm 等命令连接到受信任的主机。

跨平台命令与路径匹配

无论您在 macOS、Linux 还是 Windows 上开发,Antigravity 都能确保您的权限规则完美运行。在 macOS 和 Linux 上,路径使用标准正斜杠 (/)。在 Windows 上,Antigravity 在规则评估前会自动归一化路径,去除盘符(如 C:)并将所有反斜杠 (\) 转换为正斜杠 (/)。

隐式权限规则

  • 写蕴含读:在某个路径上允许 write_file 会自动授予对该路径的 read_file 权限。
  • 拒绝读蕴含拒绝写:拒绝在某个路径上的 read_file 权限会立即拦截该路径上的 write_file 操作。

交互式权限提示

当 Agent 遇到需要批准的操作(询问 Ask 模式)时,您的编辑器中会弹出一个交互式卡片。在为文件、URL 或 MCP 权限点击“允许”之前,您可以在提示卡片中直接编辑目标字符串以扩大授予的范围(例如,将单个文件请求如 /project/file.txt 扩大至自动添加父目录 /project)。Antigravity 会验证您编辑的目标是否安全地涵盖了该操作,并在该交互轮次的剩余时间内应用扩大后的授权,从而避免针对相关操作的重复提示。(注:终端命令不支持范围编辑)。

终端沙箱 (预览版)

当启用沙箱(sandbox)时,权限授予也适用于终端命令:

  • read_file 下授权的路径会动态填充到沙箱的只读文件系统允许列表中。
  • write_file 下授权的路径会动态填充到沙箱的读写文件系统允许列表中。
  • read_url 下授权的域名定义了出站网络访问策略。

[!NOTE] 沙箱可用性:终端沙箱目前在 macOS / Linux 上处于预览阶段,Windows 版本即将推出。

默认系统行为与安全护栏

当某个操作未在您的允许、拒绝或询问列表中显式列出时,Antigravity 会回退到安全的系统默认行为:

  • 网页浏览默认为询问 (Ask)read_urlexecute_url 的操作默认回退为 Ask。在 Agent 导航到或操作任何网页前,除非配置了允许规则,否则它将暂停并提示您明确批准。
  • 工作区被自动允许:在标准操作下,读取和写入您活动项目目录内的文件是被自动允许的。所有其他未配置的操作(如命令、MCP、网页交互、工作区外的文件)均默认回退为询问 (Ask)。

配置示例

允许列表 (Allow list) —— 无需提示直接运行的操作:

command(git)                       # 允许标准 git 命令
command(npm run (build|lint|test)) # 通过正则允许安全的 npm 脚本
unsandboxed(git push)              # 允许在沙箱外进行 git push
read_file(/var/log/app)            # 读取外部日志路径
write_file(src/)                   # 编辑相对路径下的 src/ 文件夹
read_url(google.com)               # 获取 Google 子域名
mcp(linter/*)                      # 运行 linter MCP 工具

拒绝列表 (Deny list) —— 永久拦截的操作:

command(rm -rf)                    # 拦截破坏性的删除操作
command(curl .*)                   # 拦截未审查的 curl 下载
command(sudo)                      # 拦截 sudo 提权
write_file(.git/)                  # 保护 Git 历史记录
write_file(/home/user/.ssh)        # 保护 SSH 密钥

询问列表 (Ask list) —— 暂停等待人工确认的操作:

command(*)                         # 提示所有终端命令
execute_url(aws.amazon.com)        # 提示 AWS 控制台操作
mcp(sql/execute_mutation)          # 提示修改 SQL 的查询

Gemini中文文档