文档
CONTEXT.md 源文件

批准与边界

危险动作、壳、Always allow。

本页
  1. 批准(Approval)
  2. Always allow
  3. 危险动作(Dangerous action)
  4. 工作区外(Outside the workspace)
  5. 工作区壳(Workspace shell)
  6. 无约束壳(Unconstrained shell)

批准(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 解除