代理权限

Antigravity 使用强大、统一的权限引擎来保护您的环境,同时支持自主工作流程。代理执行的每个敏感操作都表示为格式为 action(target)权限资源。权限通过三个不同的访问列表进行评估: - 拒绝:立即阻止该操作。 - 询问:代理会暂停并提示您明确批准,然后再继续。 - 允许:该操作会自动批准,无需提示。

<公告> 图标:警告颜色:“#fff8e1”图标颜色:“#f9ab00” text: "优先规则:按照优先级顺序严格评估冲突规则:拒绝 > 询问 > 允许。例如,如果您在“询问”中配置 command(*),在“允许”中配置 command(git),则“询问”规则优先,并在每个命令之前进行提示。” </公告>

支持的操作和匹配规则

行动 目标格式 匹配行为 默认后备
read_file read_file(/path)read_file(dir)read_file(*) 匹配绝对路径或相对于项目工作空间根的路径。授予对所有包含的文件/文件夹的递归读取访问权限。使用 read_file(*) 匹配系统上的所有文件。 询问(工作区自动允许)
write_file write_file(/path)write_file(*) read_file 相同。为完全相同的目标路径隐式授予 read_file 询问(工作区自动允许)
read_url read_url(domain)read_url(*) 匹配主机名和子域(例如, google.com 涵盖 mail.google.com )。忽略 URL 路径段。使用 read_url(*) 匹配任何域。 询问
execute_url execute_url(domain)execute_url(*) 执行 Web 元素(单击、键入)或驱动域上的交互式浏览器工作流程。 询问
command command(prefix)command(regex)command(*) 按确切的单词/标记前缀进行匹配。每个空格分隔的标记都被评估为锚定正则表达式 ( ^(?:pattern)$ )。例如, command(npm run (build.*)) 匹配 npm run buildnpm run build-prod 询问
unsandboxed unsandboxed(prefix)unsandboxed(regex)unsandboxed(*) 通过精确的单词/标记前缀来匹配命令。与此授权匹配的命令将在容器隔离之外执行(仅在启用终端沙箱时适用)。 询问
mcp mcp(server/tool)mcp(server/*)mcp(*) 匹配精确的 MCP 工具或指定服务器上的所有工具(同样适用于本地 mcpl 服务器和远程连接)。使用 mcp(*) 可以匹配任何工具。 询问

<公告> 图标:信息颜色:“#f5f5f5”图标颜色:“#4285f4” text: “全局通配符语法 (): 在所有受支持的操作类型(例如,read_file()command()mcp())中,传递全局通配符 * 会匹配整个操作命名空间内的所有目标。” </公告>

了解跨平台的 read_url 与 execute_url

read_url 权限控制反重力三个不同区域的出站网络连接: 1. ** read_url 工具: 当代理使用内部 read_url_content 工具获取网页 Markdown 进行研究时,它会检查您的 read_url 授权。 2. 浏览器子代理和工具: 驱动 Chrome 会话时, read_url 授权加载和查看目标域。但是,交互式 UI 驱动(单击按钮、键入文本)由 execute_url 独立控制。 3. 终端沙箱:** 在沙箱模式下,在 read_url 下授予的任何域都会直接编译到容器的出站网络白名单 ( AllowedDomains ) 中,允许 curlnpm 等命令连接到授权主机。

跨平台命令和路径匹配无论您是在 macOS、Linux 还是 Windows 上进行开发,反重力都能确保您的权限规则完美运行。在 macOS 和 Linux 上,路径使用标准正斜杠 ( / )。在 Windows 上,Antigravity 在规则评估之前自动规范化路径,方法是剥离驱动器号(例如 C: )并将所有反斜杠 ( \ ) 转换为正斜杠 ( / )。

隐式权限规则

  • 写入意味着读取: 在路径上允许 write_file 会自动在该路径上授予 read_file
  • 拒绝读取意味着拒绝写入: 拒绝路径上的 read_file 会立即阻止该路径上的 write_file

交互式权限提示当代理遇到需要批准的操作(询问模式)时,编辑器中会出现一张交互式卡。在对文件、URL 或 MCP 权限单击“允许”之前,您可以直接编辑提示卡中的目标字符串来扩大授予范围(例如,将 /project/file.txt 等单个文件请求扩展到父目录 /project )。反重力验证您编辑的目标是否安全地覆盖该操作,并在回合的剩余时间内应用扩展的授权,从而防止重复提示相关操作。 (注意:终端命令不支持范围编辑)。

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

  • read_file 下授予的路径动态填充沙箱的只读文件系统白名单。
  • write_file 下授予的路径动态填充沙箱的读写文件系统白名单。
  • read_url 下授予的域定义出站网络访问策略。

<公告> 图标:信息颜色:“#f5f5f5”图标颜色:“#4285f4” text: “沙箱可用性:终端沙箱目前在 macOS / Linux 上处于预览状态,很快就会在 Windows 上推出。” </公告>

默认系统行为和护栏当您的“允许”、“拒绝”或“询问”列表中未明确列出某个操作时,反重力将回退到安全系统默认值:

  1. 网页浏览默认为询问: read_urlexecute_url 的操作默认为 询问。在代理导航到或在任何网页上启动之前,它将暂停并提示您明确批准,除非配置了允许规则。
  2. 自动允许工作空间: 在标准操作中,自动允许在活动项目目录中读取和写入文件。所有其他未配置的操作( commandmcpexecute_url 、非工作空间文件)默认为 Ask

配置举例

允许列表 —无需提示即可运行的操作:

command(git)                       # Standard git commands
command(npm run (build|lint|test)) # Allow safe npm scripts via regex
unsandboxed(git push)              # Allow git push outside sandbox
read_file(/var/log/app)            # Read external log paths
write_file(src/)                   # Edit relative src/ folder
read_url(google.com)               # Fetch Google subdomains
mcp(linter/*)                      # Run linter MCP tools

拒绝列表 —永久阻止的操作:

command(rm -rf)                    # Block destructive deletions
command(curl .*)                   # Block unvetted curl downloads
command(sudo)                      # Block sudo privileges
write_file(.git/)                  # Safeguard Git history
write_file(/home/user/.ssh)        # Safeguard SSH keys

询问列表 —暂停以进行手动确认的操作:

command(*)                         # Prompt all commands
execute_url(aws.amazon.com)        # Prompt AWS console actuation
mcp(sql/execute_mutation)          # Prompt modifying SQL queries