
护栏
[尖叫声] 我对特工造成的任何问题、损坏或数据损失不负责任,即使使用护卫系统也是如此。 护栏不是沙盒 也不保证安全 您负责添加并维护在您环境中防止危险操作的规则; 不只依赖默认规则 .
护卫机为Pi增加了安全检查,因此特工们不太可能读取秘密,写出受保护的文件,进入工作空间外的路径,或者偶然运行危险的外壳命令.
软件包安装了四个 Pi 扩展:
- 护栏 ——文件保护政策,设置,入职,并举出例子.
- 路径访问 ——控制当前工作空间外的访问.
- 权限门 ——确认或屏蔽有风险的外壳命令.
- 医生 向Herdr报告护卫队的批准情况.
安装
pi install npm:@aliou/pi-guardrails
首发
安装后, 运行登入命令以选择起始设置 : /guardrails:onboarding。您以后可以改变一切 /guardrails:settings。 。 。 .
包含扩展
护栏
保护文件如 .env,私有密钥,本地证书,数据库堆放,或任何您不希望 Pi 在没有明确意图的情况下读取或修改的特定项目路径. 规则默认尊重当前工作目录,并在设置 UI 中可配置.
使用 /guardrails:examples 以添加共同的策略和命令预设,而不替换您现有的配置.
路径访问
检查工具调用当前工作目录以外的目标路径 。 它可以在 Pi 访问您机器其它文件之前允许, 封锁, 或询问文件; 在询问模式中, 您可以允许文件或目录一次, 用于会话, 或总是这样 。 默认情况下,检查既适用于工作空间外的读取和写作,而且“总是”赠款被保存到项目配置上——两者都可以通过 /guardrails:settings。 。 。 .
权限门
运行前检测到危险的shash命令——递归删除,特权命令,磁盘格式化,宽权限更改,以及您配置的任何自定义模式. 您可以允许一次, 允许会话, 拒绝, 或下降和停止, 这也会中止当前转弯 。 可设置自动密度模式 terminate: true 以在屏蔽后结束代理的回合,所以它不会重试被屏蔽的命令.
命令、政策和路径检查也查看了命令内部和处理替代,所以一个风险电话被包裹 $(...) 还被抓到了.
医生
包括Herdr适配器报告 积极的Guardrails批准 通过Herdr's herdr:blocked 因此,赫德可以显示 Pi 面板被屏蔽,同时提示等待决定。 除非赫德的Pi集成活动,否则没有配置和效果.
核准提示也报告 blocked 程序状态( OSC 7501) blocked 选项 ctx.ui.custom(),所以Rex等终端显示Pi在快速等待时被屏蔽;对此不再需要扩展了.
延长活动
Guardrails在 Pi 共享事件总线上发布对等事件: guardrails:prompt:opened 当交互式提示开始等待输入时 guardrails:prompt:closed 当它停止。 都一样 prompt.id 关系.
配置
大多数配置都通过交互设置 UI 实现(/guardrails:settings) (中文(简体) ). 高级用户可以直接编辑设置文件 :
- 全球:
~/.pi/agent/extensions/guardrails.json - 项目:
.pi/extensions/guardrails.json
工程设置仅在 Pi 信任文件夹后才适用( P)/trust,然后重新启动 Pi 。 在此之前,未信任的项目文件被忽略并保持不变,而全局设置和内置保护仍然适用. 设定 pathAccess.alwaysScope 改为 "global" 在不信任项目的情况下保存“永远”路径赠款.
保存的文件包括 a $schema 字段,用于编辑器自动完成和校验 schema.json。 。 。 .
类似但不同
Pi的设计是为了让剂安全可以扩展. 护卫系统侧重于确定性、可配置文件政策、路径访问控制和危险指令提示。 见 pi. dev/包装 整个登记册.
最接近的选项 :
- @ gotgenes/ pi-permission- system: Pi工具调用的广泛许可执行.
- @vtstech/ pi- security (帮助):命令,路径,网络,模式,以及审计控制.
- @casualjim/pi-heimdall (英语): 秘密暴露警卫、指挥政策、受保护
.env还有一个沙盒警卫. - 纸箱:OS级的沙箱来进行击打,允许/拒绝检查,并提示文件工具.
- 皮-集装箱-沙盒:在容器会话内运行读取、写取、编辑、拍取和用户拍取操作.
也可以自制:从 Pi 权限门实例 并且请 Pi 为您的工作流程定制 .
发展
pnpm test # Run tests
pnpm test:watch # Run tests in watch mode
pnpm typecheck # Type check
pnpm lint # Lint
pnpm format # Format
pnpm gen:schema # Regenerate schema.json
pnpm check:schema # Verify schema.json is current




