批准(Approval)
危险动作在执行前必须由你放行。批准管的是「接下来要做的那一下」,不能撤销已经做完的。
Avoid: ConsentGate, 闸门(openbot 词)
Always allow
名册级的一条已保存规则(种类键 + 范围):同类危险动作以后直接放行。和「允许一次」并存。有的种类是必须批准,不能写成 Always allow。
Avoid: 一律放行, bypass, 每 Bot 一条规则
危险动作(Dangerous action)
执行前必须批准:工作区外读或改、出站网络(模型调用除外)、新增或改 MCP(含 command·args / HTTP url·headers)、新建端点或改已有端点 URL、无约束壳。工作区内读 / 写 / 删、已配 MCP 的调用、工作区壳、往已有端点名单加或改模型名直接干。删除 MCP 不是危险动作。默认端点不能改 URL / 密钥 / 删除。
Avoid: 闸门, ConsentGate
工作区外(Outside the workspace)
路径 realpath 之后不落在工作区根前缀下。工作区内的 symlink 跟目标走:目标在区外就是区外。
Avoid: 只做字符串前缀, 按 inode / 硬链接判定
工作区壳(Workspace shell)
一次通过启动前路径检查的 shell:cwd 在工作区内,命令里看得见的路径也不出区。直接干。不是内核囚笼。
Avoid: 整机 shell, sandbox, seatbelt, 把 App Sandbox 容器当工作区根
无约束壳(Unconstrained shell)
一次被判定越界的 shell spawn。这次进程及其子孙不再走工作区路径检查;下一次 shell 重新判定。
Avoid: 永久解除, 内核 jail 解除