深色模式
审批队列
AI 触发的工具调用,如果服务器策略是 Approval 或 Allowlist 未命中,会进入审批队列等你决策。5 分钟超时自动拒。
进入
- 主界面左侧导航 → 审批(带红点角标显示待处理数)
- 全局快捷键 Cmd/Ctrl+K → 输入
approval - AI 桥接 对话流里就地审批
列表
每条待审批:
| 字段 | 说明 |
|---|---|
| 触发时间 | |
| 工具 | ssh_exec / sftp_write / db_execute 等 |
| 服务器 | 别名 |
| 来源 | 哪个 MCP Token(Claude Code / Codex / 内置对话) |
| 命令摘要 | 前 200 字符(含语法高亮) |
| 完整参数 | 展开查看 JSON |
| 剩余时间 | 距 5 分钟超时还有多久 |
决策
每条三个按钮:
| 按钮 | 行为 |
|---|---|
| ✅ 放行 | 工具继续执行,写审计 approved |
| ❌ 拒绝 | 工具立即返回错误,写审计 denied |
| ⏭️ 跳过 | 仅在批量待审场景,先看下一条 |
批量决策
列表多选 + 顶部按钮:
- 全部放行
- 全部拒绝
- 选中 N 条放行
适合"AI 把同一动作分了 10 步问"。
超时
每条审批 5 分钟超时:
- 倒计时实时显示
- 到时自动拒绝 + 写审计
denied_by_timeout - AI 收到错误
防止僵尸队列堆积。
全局开关
如果想临时关掉所有 AI 访问:
AI 策略 页 → 总开关 → 设个 armed_until 时间戳(例如「禁用 30 分钟」)。
- 期间所有 AI 工具调用直接拒绝
- 时间到自动恢复
- 也可手动重新启用
决策上下文
审批弹窗里可以看到:
- 命令完整文本(含潜在危险高亮)
- 触发 Approval 的具体原因(档位 / 白名单未命中 / 含 sudo 强制)
- 该服务器最近的审计行(提供上下文)
- AI 本次对话最近 5 条消息(如果是 Reeve 内置对话)
危险命令永远不进队列
危险黑名单命中的命令直接 blocked,不进审批队列:
- 黑名单 ≥ 审批,比谁都严
- 即使你想放行也办不到(必须先把黑名单删掉)
含 sudo 的命令反过来:必进审批,无视档位是不是 trusted。
通知
审批队列有新待处理时:
- Sidebar 审批 项亮红点
- 系统通知(如果开启)
- (未来)Tauri 托盘菜单红点
审批者标识
每条决策写入 approved_by / denied_by 字段:
- 当前版本:本机操作系统用户名
- 多用户场景(未来):可对接 LDAP / OIDC
与策略联动
不同档位下审批队列的角色:
| 档位 | 审批触发 |
|---|---|
| Disabled | 永不触发(直接拒) |
| Readonly | 永不触发(直接拒改动工具) |
| Approval | 永远触发 |
| Allowlist | 仅命中 allowlist 时 auto,否则触发 |
| Trusted | 通常不触发,但含 sudo 必触发 |
详见 AI 五档策略。
故障排查
| 症状 | 排查 |
|---|---|
| 审批没弹出 | 服务器档位可能是 trusted;检查 策略 |
| 我点放行了 AI 还报错 | AI 客户端的 timeout 可能比 5 分钟短 |
| 队列堆积 | 全局开关 / 主密码锁定时不能审批,先解锁 |
| 跳过按钮不见 | 仅在 ≥ 2 条待审时显示 |