代理权限
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 build 和 npm 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 ) 中,允许 curl 或 npm 等命令连接到授权主机。
跨平台命令和路径匹配无论您是在 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 上推出。” </公告>
默认系统行为和护栏当您的“允许”、“拒绝”或“询问”列表中未明确列出某个操作时,反重力将回退到安全系统默认值:
- 网页浏览默认为询问:
read_url和execute_url的操作默认为 询问。在代理导航到或在任何网页上启动之前,它将暂停并提示您明确批准,除非配置了允许规则。 - 自动允许工作空间: 在标准操作中,自动允许在活动项目目录中读取和写入文件。所有其他未配置的操作(
command、mcp、execute_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