审批与权限
审批与权限控制 OpenSquilla 工具被允许执行的方式。当 agent 可以写入文件、运行 shell 命令、发布 artifact、向 channel 发帖或调用外部服务时,它们尤为重要。
在运行无人值守自动化或赋予连接 channel 的 agent 广泛的工具访问权限之前,请先阅读本页。
权限档位
一次性自动化接受显式的权限档位:
opensquilla agent --permissions restricted -m "Inspect this repo"
opensquilla agent --permissions on -m "Run with host execution and approvals"
opensquilla agent --permissions bypass -m "Trusted local automation"
opensquilla agent --permissions full -m "Fully trusted local automation"
实际含义:
| 档位 | 使用时机 |
|---|---|
restricted / off | 任务应保持保守,避免提升执行权限。 |
on | 允许宿主执行,但审批检查仍然生效。 |
bypass | 你足够信任该任务,可以自动授予审批,同时保留敏感路径检查。 |
full | 你完全信任该任务与环境。谨慎使用。 |
对于自动化,优先选择能完成任务的最窄档位。
工作区约束
为文件与 shell 工作设置工作区:
opensquilla agent \
--workspace /path/to/project \
--workspace-strict \
-m "Summarize this repo"
将写入约束到工作区或临时目录:
opensquilla agent \
--workspace /path/to/project \
--workspace-lockdown \
--scratch-dir /path/to/project/.scratch \
-m "Investigate and prepare a minimal patch"
对于无人值守运行,当意外写入项目外不可接受时,使用 --workspace-lockdown。
交互式审批
交互式聊天入口可暂停敏感工具调用以等待人工决策。终端聊天支持:
/approvals
/approvals reset
/permissions status
/permissions on
/permissions off
/permissions bypass
/permissions full
/forget
当你需要在聊天过程中查看或重置已缓存的审批决策时,使用这些命令。
Web UI 也提供一个审批入口,可在消息回滚之外审查待处理的操作。
Sandbox 姿态
查看 sandbox 姿态:
opensquilla sandbox status
opensquilla sandbox status --json
设置姿态:
opensquilla sandbox on
opensquilla sandbox bypass
opensquilla sandbox full
opensquilla sandbox reset
更改全局 sandbox 姿态后重启 gateway:
opensquilla gateway restart
推荐默认值
| 场景 | 推荐做法 |
|---|---|
| 在仓库中首次运行 | --workspace 加 --workspace-strict |
| 只读排查 | --permissions restricted |
| 本地补丁附带测试 | --workspace-lockdown 加临时目录 |
| 带写入的 Web UI 任务 | 保持审批可见并审查敏感操作 |
| 连接 channel 的 agent | 保守权限并显式配置 channel |
| 无人值守自动化 | 限定超时/迭代次数,选择可行的最窄权限 |
排障
如果某个工具被拒绝:
opensquilla sandbox status
opensquilla doctor
然后检查:
- 该入口是否支持实时审批;
- 工作区路径是否正确;
- 已缓存的审批是否需要重置;
- 该任务是否应在不同的权限档位下运行。
接下来阅读: