工具审批与权限策略
Mogick 在工具执行前综合会话权限策略、工具风险、工作区范围、显式规则和删除类硬门禁,决定自动放行、请求确认或拒绝。四级策略的完整字段与规则见工具权限配置。
选择权限策略
mogick --tool-call-permissions auto
mogick run --tool-call-permissions workspace "Run the test suite and fix failures."TUI 中使用 /permissions 或 Ctrl+P 切换。常见选择:
| 策略 | 适合场景 |
|---|---|
read | 代码阅读和审查,不允许普通写操作 |
workspace | 自动处理工作区内的非删除文件修改 |
auto | 日常交互,由风险和工具声明决定是否确认 |
yolo | 仅限已隔离、可丢弃的环境 |
显式 deny 在所有策略下仍然生效。非 yolo 下,文件删除、包含删除的补丁以及匹配删除命令的 Shell 调用始终请求确认。
审批卡片

| 操作 | 生效范围 |
|---|---|
| 仅此次允许 | 只放行当前调用 |
| 本次会话允许 | 当前会话内复用,结束后清除 |
| 始终允许 | 持久保存,可在权限面板撤销 |
| 拒绝 | 只拒绝当前请求,不创建授权 |
审批时重点核对操作意图、工具名、文件路径、命令参数和外部系统目标。对不理解的命令先拒绝并要求 Agent 解释。
执行顺序与并发
同一步中互不影响的只读工具可以并发执行,并发上限由 session.safe_partition_max_concurrency 控制。工作区写入、Shell 和其他可能产生副作用的调用按受控顺序执行,避免多个修改相互覆盖。
MCP 还可以分别限制每个本地和远程服务器的并发量:
session.mcp_local_max_concurrency:默认 3。session.mcp_remote_max_concurrency:默认 20。
这些限制控制调度,不会绕过审批规则。
Plan 模式
Plan 模式有独立的只读边界,不能通过切换为更宽松的 Agent 权限策略来突破。计划由 plan.write 保存后,TUI 或 ACP 宿主展示确认;确认执行后才进入 Agent 模式。
MCP 工具
MCP 服务端的只读提示会参与风险判断,但第三方声明不是绝对安全保证。渐进式模式下的 mcp.call 可以包装任意服务器工具,因此仍按实际目标执行审批。
如果 MCP 工具的审批行为与预期不一致,先查看工具声明和当前策略,再参考 MCP 问题排查。
非交互运行
mogick run 无法弹出 TUI 审批。需要确认的调用会被拒绝,因此脚本应显式选择权限策略并检查退出码。不要为了让流水线通过而直接使用 yolo;优先在隔离环境中使用 workspace 并缩小任务范围。
子代理
子代理的有效权限不会宽于父会话策略。子代理还受自己的步骤数和工具调用预算限制,详情见子代理。