Chuyển đến nội dung chính
failproofai được cung cấp với 30 chính sách tích hợp giúp bắt những chế độ lỗi phổ biến của agent. Mỗi chính sách kích hoạt trên một loại sự kiện hook và tên công cụ cụ thể. Chín chính sách chấp nhận các tham số cho phép bạn điều chỉnh hành vi của chúng mà không cần viết code. Bốn chính sách quy trình làm việc thực thi đường ống commit → push → PR → CI trước khi Claude dừng lại.

Tổng quan

Các chính sách được nhóm thành các danh mục:
Danh mụcChính sáchLoại Hook
Lệnh nguy hiểmblock-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commandsPreToolUse
Bí mật (sanitizers)sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokensPostToolUse
Môi trườngblock-env-files, protect-env-varsPreToolUse
Truy cập tệpblock-read-outside-cwd, block-secrets-writePreToolUse
Gitblock-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-stagedPreToolUse
Cơ sở dữ liệuwarn-destructive-sql, warn-schema-alterationPreToolUse
Cảnh báowarn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-installPreToolUse
Quy trình làm việcrequire-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stopStop
  • block- — dừng agent khỏi tiếp tục.
  • warn- — cung cấp cho agent ngữ cảnh bổ sung để nó có thể tự điều chỉnh.
  • sanitize- — xóa dữ liệu nhạy cảm từ đầu ra công cụ trước khi agent thấy nó.
  • require- — chặn sự kiện Stop cho đến khi các điều kiện được đáp ứng.

Mỗi chính sách hỗ trợ một trường hint tùy chọn trong policyParams. Hint được thêm vào thông báo deny hoặc instruct mà Claude thấy, cung cấp hướng dẫn hành động mà không cần sửa đổi code chính sách. Hoạt động với các chính sách tích hợp, tùy chỉnh và quy ước. Xem Cấu hình → hint để biết chi tiết.

Lệnh nguy hiểm

Ngăn chặn agent chạy các thao tác khó hoàn tác hoặc có thể gây hại cho hệ thống chủ.

block-sudo

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối bất kỳ lệnh sudo nào.
Chặn các lệnh gồm từ khóa sudo. Khớp mẫu được thực hiện trên các token lệnh được phân tích cú pháp, không phải chuỗi thô, để ngăn chặn vòng qua tiêm toán tử shell. Tham số:
Tham sốKiểuMặc địnhMô tả
allowPatternsstring[][]Tiền tố lệnh chính xác được phép. Mỗi mục được khớp với các token argv được phân tích cú pháp.
Ví dụ:
{
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
    }
  }
}
Với cấu hình này, sudo systemctl status nginx được phép, nhưng sudo rm /etc/hosts bị từ chối.
Mẫu được khớp với các token được phân tích cú pháp, không phải chuỗi lệnh thô. Điều này ngăn chặn vòng qua toán tử shell được thêm vào (ví dụ: sudo systemctl status x; rm -rf / không khớp với sudo systemctl status *).

block-rm-rf

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối rm -rf, rm -fr và các dạng xóa đệ quy tương tự.
Tham số:
Tham sốKiểuMặc địnhMô tả
allowPathsstring[][]Đường dẫn an toàn để xóa đệ quy (ví dụ: /tmp).
Ví dụ:
{
  "policyParams": {
    "block-rm-rf": {
      "allowPaths": ["/tmp", "/var/cache"]
    }
  }
}

block-curl-pipe-sh

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối curl <url> | bash, curl <url> | sh, wget <url> | bash và các mẫu tương tự.
Không có tham số.

block-failproofai-commands

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối các lệnh sẽ gỡ cài đặt hoặc vô hiệu hóa failproofai (ví dụ: npm uninstall failproofai, failproofai policies --uninstall).
Không có tham số.

Bí mật (sanitizers)

Ngăn agent rò rỉ thông tin xác thực vào ngữ cảnh hoặc đầu ra của chúng. Các chính sách sanitizer kích hoạt trên sự kiện PostToolUse. Khi Claude chạy lệnh Bash, đọc tệp hoặc gọi bất kỳ công cụ nào, các chính sách này kiểm tra đầu ra trước khi được trả về Claude. Nếu phát hiện mẫu bí mật, chính sách trả về quyết định deny ngăn chặn đầu ra được chuyển lại.

sanitize-jwt

Sự kiện: PostToolUse (tất cả công cụ)
Mặc định: Làm mờ các token JWT (ba đoạn base64url được phân tách bằng .).
Không có tham số.

sanitize-api-keys

Sự kiện: PostToolUse (tất cả công cụ)
Mặc định: Làm mờ các định dạng kóa API thông dụng: Anthropic (sk-ant-), OpenAI (sk-), GitHub PATs (ghp_), kóa truy cập AWS (AKIA), kóa Stripe (sk_live_, sk_test_), và kóa API Google (AIza).
Tham số:
Tham sốKiểuMặc địnhMô tả
additionalPatterns{ regex: string; label: string }[][]Các mẫu regex bổ sung để coi là bí mật.
Ví dụ:
{
  "policyParams": {
    "sanitize-api-keys": {
      "additionalPatterns": [
        { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo internal API key" },
        { "regex": "pat_[0-9a-f]{40}", "label": "Internal PAT" }
      ]
    }
  }
}

sanitize-connection-strings

Sự kiện: PostToolUse (tất cả công cụ)
Mặc định: Làm mờ chuỗi kết nối cơ sở dữ liệu chứa thông tin xác thực nhúng (ví dụ: postgresql://user:password@host/db).
Không có tham số.

sanitize-private-key-content

Sự kiện: PostToolUse (tất cả công cụ)
Mặc định: Làm mờ các khối PEM (-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, v.v.).
Không có tham số.

sanitize-bearer-tokens

Sự kiện: PostToolUse (tất cả công cụ)
Mặc định: Làm mờ các header Authorization: Bearer <token> nơi token có 20 ký tự trở lên.
Không có tham số.

Môi trường

Bảo vệ cấu hình môi trường nhạy cảm khỏi bị agent đọc hoặc tiếp xúc.

block-env-files

Sự kiện: PreToolUse (Bash, Read)
Mặc định: Từ chối đọc tệp .env thông qua cat .env, các lệnh gọi công cụ Read với .env làm đường dẫn tệp, v.v.
Không chặn .envrc hoặc các tệp liên quan môi trường khác - chỉ các tệp được đặt tên chính xác là .env. Không có tham số.

protect-env-vars

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối các lệnh in biến môi trường: printenv, env, echo $VAR.
Không có tham số.

Truy cập tệp

Giúp agent làm việc trong ranh giới dự án và tránh xa các tệp nhạy cảm.

block-read-outside-cwd

Sự kiện: PreToolUse (Read, Bash)
Mặc định: Từ chối đọc tệp bên ngoài thư mục làm việc hiện tại (gốc dự án).
Tham số:
Tham sốKiểuMặc địnhMô tả
allowPathsstring[][]Tiền tố đường dẫn tuyệt đối được phép ngay cả khi bên ngoài cwd.
Ví dụ:
{
  "policyParams": {
    "block-read-outside-cwd": {
      "allowPaths": ["/shared/data", "/opt/company/config"]
    }
  }
}

block-secrets-write

Sự kiện: PreToolUse (Write, Edit)
Mặc định: Từ chối ghi vào tệp thường được sử dụng cho kóa riêng tư và chứng chỉ: id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Tham số:
Tham sốKiểuMặc địnhMô tả
additionalPatternsstring[][]Các mẫu tên tệp bổ sung (kiểu glob) để chặn.
Ví dụ:
{
  "policyParams": {
    "block-secrets-write": {
      "additionalPatterns": [".token", ".secret"]
    }
  }
}

Git

Ngăn chặn các lần push ngẫu nhiên, force-push và các sai lầm nhánh khó hoàn tác.

block-push-master

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối git push origin maingit push origin master.
Tham số:
Tham sốKiểuMặc địnhMô tả
protectedBranchesstring[]["main", "master"]Tên nhánh không thể được push trực tiếp.
Ví dụ:
{
  "policyParams": {
    "block-push-master": {
      "protectedBranches": ["main", "master", "release", "prod"]
    }
  }
}
Để cho phép push đến tất cả các nhánh (có hiệu lực vô hiệu hóa chính sách này mà không xóa nó khỏi enabledPolicies), hãy đặt protectedBranches: [].

block-work-on-main

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối kiểm tra nhánh main hoặc master trực tiếp.
Tham số:
Tham sốKiểuMặc địnhMô tả
protectedBranchesstring[]["main", "master"]Tên nhánh không thể được kiểm tra trực tiếp.

block-force-push

Sự kiện: PreToolUse (Bash)
Mặc định: Từ chối git push --forcegit push -f.
Không có tham số chính sách cụ thể. Sử dụng hint chéo để gợi ý các lựa chọn thay thế:
{
  "policyParams": {
    "block-force-push": {
      "hint": "Create a new branch from your current HEAD (e.g. `git checkout -b <new-branch>`) and push that instead."
    }
  }
}

warn-git-amend

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude tiến hành cẩn thận khi chạy git commit --amend. Không chặn lệnh.
Không có tham số.

warn-git-stash-drop

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xác nhận trước khi chạy git stash drop. Không chặn lệnh.
Không có tham số.

warn-all-files-staged

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xem lại những gì nó đang staging khi chạy git add -A hoặc git add .. Không chặn lệnh.
Không có tham số.

Cơ sở dữ liệu

Bắt các thao tác SQL tàn phá trước khi chúng thực thi trên cơ sở dữ liệu của bạn.

warn-destructive-sql

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xác nhận trước khi chạy SQL chứa DROP TABLE, DROP DATABASE hoặc DELETE mà không có mệnh đề WHERE.
Không có tham số.

warn-schema-alteration

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xác nhận trước khi chạy các câu lệnh ALTER TABLE.
Không có tham số.

Cảnh báo

Cung cấp cho agent ngữ cảnh bổ sung trước các thao tác tiềm ẩn rủi ro nhưng không tàn phá.

warn-large-file-write

Sự kiện: PreToolUse (Write)
Mặc định: Hướng dẫn Claude xác nhận trước khi ghi tệp lớn hơn 1024 KB.
Tham số:
Tham sốKiểuMặc địnhMô tả
thresholdKbnumber1024Ngưỡng kích thước tệp tính bằng kilobyte vượt quá đó sẽ cảnh báo.
Ví dụ:
{
  "policyParams": {
    "warn-large-file-write": {
      "thresholdKb": 256
    }
  }
}
Trình xử lý hook thực thi giới hạn stdin 1 MB cho các tải trọng. Để kiểm tra chính sách này với nội dung nhỏ, hãy đặt thresholdKb thành giá trị tốt bên dưới 1024.

warn-package-publish

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xác nhận trước khi chạy npm publish.
Không có tham số.

warn-background-process

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude cẩn thận khi khởi chạy quy trình nền qua nohup, &, disown hoặc screen.
Không có tham số.

warn-global-package-install

Sự kiện: PreToolUse (Bash)
Mặc định: Hướng dẫn Claude xác nhận trước khi chạy npm install -g, yarn global add hoặc pip install mà không có môi trường ảo.
Không có tham số.

Hành vi AI

Phát hiện khi agent bị kẹt hoặc có hành vi bất thường.

warn-repeated-tool-calls

Sự kiện: PreToolUse (tất cả công cụ)
Mặc định: Hướng dẫn Claude xem xét lại khi cùng một công cụ được gọi 3 lần trở lên với các tham số giống hệt nhau - một dấu hiệu phổ biến cho thấy agent bị kẹt trong vòng lặp.
Không có tham số.

Quy trình làm việc

Thực thi quy trình làm việc kỷ luật ở cuối phiên. Các chính sách này kích hoạt trên sự kiện Stop và từ chối Claude dừng lại cho đến khi mỗi điều kiện được đáp ứng. Chúng tuân theo chuỗi phụ thuộc tự nhiên: commit → push → PR → CI. Nếu chính sách từ chối, các chính sách sau trong chuỗi bị bỏ qua (deny rút ngắn). Tất cả các chính sách quy trình làm việc fail-open: nếu công cụ được yêu cầu không có sẵn (ví dụ: gh không được cài đặt, không có git remote), chính sách cho phép với thông báo thông tin giải thích tại sao kiểm tra bị bỏ qua.

require-commit-before-stop

Sự kiện: Stop
Mặc định: Từ chối dừng khi có những thay đổi chưa được commit (tệp đã sửa đổi, được stage hoặc chưa theo dõi). Trả về thông báo thông tin khi thư mục làm việc sạch sẽ.
Không có tham số.

require-push-before-stop

Sự kiện: Stop
Mặc định: Từ chối dừng khi có những commit chưa được push hoặc khi nhánh hiện tại không có nhánh remote theo dõi. Gợi ý git push -u để tạo nhánh theo dõi nếu cần. Fail open nếu không có remote được cấu hình.
Tham số:
Tham sốKiểuMặc địnhMô tả
remotestring"origin"Tên remote để push đến.
Ví dụ:
{
  "policyParams": {
    "require-push-before-stop": {
      "remote": "upstream"
    }
  }
}

require-pr-before-stop

Sự kiện: Stop
Mặc định: Từ chối dừng khi không có pull request cho nhánh hiện tại, hoặc khi PR hiện có bị đóng/hợp nhất. Hướng dẫn Claude tạo PR với gh pr create.
Không có tham số.
Chính sách này yêu cầu GitHub CLI (gh) được cài đặt và xác thực. Chạy gh auth login với một mã token truy cập cá nhân có phạm vi repo để truy cập đọc pull request. Nếu gh không được cài đặt hoặc không được xác thực, chính sách fail open và báo cáo lý do cho Claude.

require-ci-green-before-stop

Sự kiện: Stop
Mặc định: Từ chối dừng khi các kiểm tra CI đang thất bại hoặc vẫn chạy trên nhánh hiện tại. Kiểm tra cả chạy quy trình GitHub Actions và kiểm tra bot của bên thứ ba (ví dụ: CodeRabbit, SonarCloud, Codecov). Xem xét kết luận skipped thành công. Trả về thông báo thông tin khi tất cả các kiểm tra vượt qua.
Không có tham số.
Chính sách này yêu cầu GitHub CLI (gh) được cài đặt và xác thực. Chạy gh auth login với một mã token truy cập cá nhân có phạm vi repo để truy cập đọc chạy quy trình Actions và API Kiểm tra. Nếu gh không được cài đặt hoặc không được xác thực, chính sách fail open và báo cáo lý do cho Claude.


Vô hiệu hóa các chính sách riêng lẻ

Xóa một chính sách cụ thể khỏi enabledPolicies trong cấu hình của bạn, hoặc tắt nó trong tab Chính sách của bảng điều khiển.
{
  "enabledPolicies": [
    "block-rm-rf",
    "sanitize-api-keys"
  ]
}
Các chính sách không được liệt kê trong enabledPolicies không chạy, ngay cả khi có mục nhập policyParams cho chúng.