failproofai policies,因为目录条目和行为可能随包版本发生变化。
推荐基准配置
引导式安装的推荐选项当前会启用密钥脱敏器、环境保护、自我保护、灾难性命令防护以及受保护分支安全策略:sanitize-jwt sanitize-api-keys
sanitize-connection-strings sanitize-private-key-content
sanitize-bearer-tokens protect-env-vars
block-env-files block-secrets-write
block-failproofai-commands block-sudo
block-curl-pipe-sh block-rm-rf
block-push-master block-force-push
block-failproofai-commands 始终开启。上方列出该策略仅为完整性说明,无论其是否出现在你的启用列表中,它都会在每次评估时注册,且无法被禁用或暂停——一个能被代理关闭的执行开关,本身就不构成真正的防护。
推荐配置有意比全量配置范围更窄。基础设施和工作流策略可能会中断正常工作,应仅在需要的仓库和机器上启用。
密钥与环境
| 策略 | 触发条件 | 结果 |
|---|---|---|
sanitize-jwt | PostToolUse | 在模型读取工具输出之前,对其中的 JWT 进行脱敏处理。 |
sanitize-api-keys | PostToolUse | 脱敏常见的 OpenAI、Anthropic、GitHub、AWS、Stripe 和 Google 密钥。 |
sanitize-connection-strings | PostToolUse | 脱敏包含凭证的数据库连接字符串。 |
sanitize-private-key-content | PostToolUse | 脱敏 PEM 格式私钥内容。 |
sanitize-bearer-tokens | PostToolUse | 脱敏授权 Bearer Token。 |
protect-env-vars | Shell 工具上的 PreToolUse | 阻止转储环境变量的命令。 |
block-env-files | PreToolUse | 阻止读取和写入 .env 文件。 |
block-read-outside-cwd | 读取、glob、grep 或 Shell 工具上的 PreToolUse | 将读取操作限制在会话工作目录内。 |
block-secrets-write | 写入工具上的 PreToolUse | 阻止向常见密钥及凭证文件名写入内容。 |
危险命令与基础设施
| 策略 | 触发条件 | 结果 |
|---|---|---|
block-sudo | PreToolUse、PermissionRequest | 阻止 sudo,除非匹配到允许模式。 |
block-curl-pipe-sh | PreToolUse | 阻止将下载的脚本直接通过管道传递给 Shell 执行。 |
block-rm-rf | PreToolUse | 阻止灾难性递归删除操作。 |
block-failproofai-commands | PreToolUse、PermissionRequest | 始终开启,无法禁用。 阻止所有 Failproof AI CLI 调用、自我暂停及包管理器卸载操作。 |
block-kubectl | PreToolUse | 管控 Kubernetes 命令。 |
block-terraform | PreToolUse | 管控 Terraform 和 OpenTofu 命令。 |
block-aws-cli | PreToolUse | 管控 AWS CLI 命令。 |
block-gcloud | PreToolUse | 管控 Google Cloud CLI 命令。 |
block-az-cli | PreToolUse | 管控 Azure CLI 命令。 |
block-helm | PreToolUse | 管控 Helm 命令。 |
block-gh-pipeline | PreToolUse | 管控具有变更性质的 GitHub CLI 工作流、运行、合并、发布、缓存及密钥操作。 |
Git 与数据库安全
| 策略 | 触发条件 | 结果 |
|---|---|---|
block-push-master | PreToolUse | 阻止直接推送到已配置的受保护分支。 |
block-force-push | PreToolUse | 阻止强制推送;当前实现中 --force-with-lease 仍被允许。 |
block-work-on-main | PreToolUse | 阻止在受保护分支上提交和合并。 |
warn-git-amend | PreToolUse | 在使用 --amend 重写提交前发出警告。 |
warn-git-stash-drop | PreToolUse | 在永久丢弃或清除暂存区前发出警告。 |
warn-all-files-staged | PreToolUse | 对 git add -A、git add . 或 git add --all 等大范围暂存操作发出警告。 |
warn-destructive-sql | PreToolUse | 对通过已识别数据库客户端执行的不带 WHERE 的 DROP、TRUNCATE 和 DELETE 操作发出警告。 |
warn-schema-alteration | PreToolUse | 对已识别的 ALTER TABLE 列修改和重命名操作发出警告。 |
包管理、系统行为与代理循环
| 策略 | 触发条件 | 结果 |
|---|---|---|
warn-package-publish | PreToolUse | 在向包注册表发布前发出警告。 |
warn-global-package-install | PreToolUse | 在全局安装包之前发出警告。 |
prefer-package-manager | PreToolUse | 指示代理使用允许的包管理器。 |
warn-large-file-write | 写入工具上的 PreToolUse | 当文件大小超过配置阈值时发出警告。 |
warn-background-process | PreToolUse | 对后台分离或长期运行的进程模式发出警告。 |
warn-repeated-tool-calls | PreToolUse | 在出现三次或以上相同工具调用后发出警告。 |
任务结束工作流
这些策略需要一个能发出兼容Stop 事件的执行环境。
| 策略 | 结果 |
|---|---|
require-commit-before-stop | 在有已跟踪的未提交工作时,拒绝完成任务。 |
require-push-before-stop | 在有仅存于本地的提交时,拒绝完成任务。 |
require-pr-before-stop | 要求为当前分支创建 Pull Request。 |
require-no-conflicts-before-stop | 要求与配置的基础分支干净合并,无冲突。 |
require-ci-green-before-stop | 要求当前 HEAD 的 CI 检查全部通过。 |
参数参考
在对应作用域的policyParams 对象下配置参数。各策略会对参数类型进行验证。
| 策略 | 参数 | 类型与默认值 |
|---|---|---|
sanitize-api-keys | additionalPatterns | pattern[],[];条目包含 regex 和 label |
block-read-outside-cwd | allowPaths | string[],[] |
block-sudo | allowPatterns | string[],[] |
block-rm-rf | allowPaths | string[],[] |
| 基础设施拦截器 | allowPatterns | string[],[] |
block-secrets-write | additionalPatterns | string[],[] |
block-push-master | protectedBranches | string[],["main", "master"] |
block-work-on-main | protectedBranches | string[],["main", "master"] |
prefer-package-manager | allowed、blocked | string[],[] |
warn-large-file-write | thresholdKb | number,1024 |
require-push-before-stop | remote、baseBranch | string,"origin";string,"main" |
require-pr-before-stop | baseBranch | string,"main" |
require-no-conflicts-before-stop | baseBranch | string,"main" |
{
"enabledPolicies": ["block-sudo", "block-push-master"],
"policyParams": {
"block-sudo": {
"allowPatterns": ["sudo systemctl status"]
},
"block-push-master": {
"protectedBranches": ["main", "release"]
}
}
}
允许模式会扩大代理可执行的操作范围。在将其部署到整个集群之前,请先在目标执行环境中测试确切的令牌化规则和命令变体。

