权限策略与安全拦截机制
兼顾极致效率与开发安全的三档权限引擎
默认 YOLO 放开奔跑,关键时刻有规则白名单兜底,杜绝高危操作对系统的毁灭性破坏。
1. 权限设计哲学
Piwin 诞生于对个人开发者工作流的深刻理解。如果每一个 read_file、每一条 ls、每一次 git status 都需要弹窗确认,Agent 将会变得迟钝而令人烦躁;然而,如果完全不加约束,失控的模型也可能误删代码仓库。
因此,Piwin 在遵循 Pi 极简哲学的同时,内置了三档精简而可靠的权限模式,并在底层配备了高危命令绝对拦截机制。

2. 三档权限运行模式
打开 「设置」➔「权限与安全 (Permissions)」,即可自由切换:
| 模式 | 运行机制 | 适用场景 | 交互体验 |
|---|---|---|---|
| YOLO 模式 (系统默认) | 尊重 Pi 原生精神,对常规文件读写、构建命令、代码重构默认放行执行。 | 日常个人开发、探索性实验、高效结对编程 | 最流畅:智能体一气呵成完成多步任务,不打断思路 |
| Auto 模式 | 基于 Allowlist 规则引擎自动裁决。对命中规则的安全操作自动放行,未命中操作停下请示。无需额外引入臃肿昂贵的“审批大模型”。 | 团队代码仓库、核心业务逻辑修改 | 均衡:常见开发免确认,关键变动由人把关 |
| Ask 模式 | 逢写必问,步步确认。所有文件写入、进程启动与敏感操作均须人工点击批准。 | 生产环境演习、新手探索、极高安全要求仓库 | 最严格:完全可控,适合审阅每一次动作 |
3. 高危操作绝对拦截线 (Safety Interceptor)
即使用户处于 YOLO 模式,Piwin 也并非处于失控的“盲目放任”状态。系统在 Host 运行时底层常驻了硬规则安全守门人:
text
┌─────────────────┐ 提出工具执行 ┌────────────────────────┐
│ AI Agent 动作 │ ───────────────────────> │ Host Tool Admission │
└─────────────────┘ └────────────────────────┘
│
命中 rm -rf / 格式化 等高危特征?
┌───────────┴───────────┐
是 │ 否 │
▼ ▼
┌───────────────────┐ ┌─────────────────┐
│ 🚨 强制硬拦截阻断 │ │ 进入当前模式执行 │
│ (拒绝执行并警告) │ │ (YOLO/Auto/Ask) │
└───────────────────┘ └─────────────────┘以下危险行为将被绝对阻断:
- 系统根级破坏指令:如
rm -rf /、rm -rf ~、格式化磁盘、覆写系统核心引导目录; - 凭证脱敏与嗅探:阻止意外向外部端点倒转系统密钥或暴露
~/.piwin内部凭据; - 越界路径逃逸:媒体文件严禁越出
~/.piwin/media/目录,工作区文件禁止非法逃逸至系统敏感文件夹。
4. MCP(模型上下文协议)的安全边界
依照 ADR 0033 规范:
- MCP 运行在权限层之外:MCP 外部服务直接以宿主操作系统用户的身份与权限启动;
- 用户自担风险:接入不受信任的第三方 MCP 服务时,请确保清楚其暴露的本地工具范围;
- 轻量解耦:系统不对 MCP 调用做多层二次包层拦截,保持协议原生吞吐性能。
