Skip to main content
Các chính sách tùy chỉnh cho phép bạn viết các quy tắc cho bất kỳ hành vi nào của agent: thực thi quy ước dự án, ngăn chặn sai lệch, gated các hoạt động hủy diệt, phát hiện agent bị kẹt, hoặc tích hợp với Slack, quy trình phê duyệt, và nhiều hơn nữa. Chúng sử dụng cùng hệ thống sự kiện hook và các quyết định allow, deny, instruct như các chính sách tích hợp sẵn.

Ví dụ nhanh

Cài đặt nó:

Hai cách để tải các chính sách tùy chỉnh

Tùy chọn 1: Dựa trên quy ước (được khuyến nghị)

Đặt các tệp *policies.{js,mjs,ts} vào .failproofai/policies/ và chúng sẽ được tải tự động — không cần cờ hoặc thay đổi cấu hình. Điều này hoạt động giống như git hooks: đặt một tệp, nó chỉ hoạt động.
Cách nó hoạt động:
  • Cả hai thư mục dự án và người dùng được quét (union — không phải first-scope-wins)
  • Các tệp được tải theo thứ tự bảng chữ cái trong mỗi thư mục. Thêm tiền tố 01-, 02- để kiểm soát thứ tự
  • Chỉ các tệp khớp với *policies.{js,mjs,ts} được tải; các tệp khác bị bỏ qua
  • Mỗi tệp được tải độc lập (fail-open cho mỗi tệp)
  • Hoạt động cùng với các chính sách --custom và tích hợp sẵn rõ ràng
Các chính sách theo quy ước là cách dễ nhất để xây dựng một tiêu chuẩn chất lượng cho tổ chức của bạn. Commit .failproofai/policies/ vào git và mỗi thành viên trong nhóm sẽ tự động nhận các quy tắc giống nhau — không cần thiết lập cho từng nhà phát triển. Khi nhóm của bạn phát hiện ra các chế độ lỗi mới, hãy thêm một chính sách và đẩy lên. Theo thời gian, chúng trở thành một tiêu chuẩn chất lượng sống động tiếp tục cải thiện với mỗi đóng góp.

Tùy chọn 2: Đường dẫn tệp rõ ràng

Đường dẫn tuyệt đối được phân giải được lưu trữ trong policies-config.json như customPoliciesPath. Tệp được tải mới trên mỗi sự kiện hook - không có bộ nhớ cache giữa các sự kiện.

Sử dụng cả hai cùng nhau

Các chính sách theo quy ước và tệp --custom rõ ràng có thể coexist. Thứ tự tải:
  1. Tệp customPoliciesPath rõ ràng (nếu được cấu hình)
  2. Các tệp quy ước dự án ({cwd}/.failproofai/policies/, theo thứ tự bảng chữ cái)
  3. Các tệp quy ước người dùng (~/.failproofai/policies/, theo thứ tự bảng chữ cái)

API

Import

customPolicies.add(hook)

Đăng ký một chính sách. Gọi hàm này bao nhiêu lần tùy ý cho nhiều chính sách trong cùng một tệp.

Trợ giúp quyết định

deny(message) - thông báo xuất hiện cho Claude với tiền tố "Blocked by failproofai:". Một deny duy nhất sẽ short-circuit tất cả các đánh giá tiếp theo. instruct(message) - thông báo được nối vào ngữ cảnh của Claude cho lệnh gọi công cụ hiện tại. Tất cả các thông báo instruct được tích lũy và cung cấp cùng nhau.
Bạn có thể nối thêm hướng dẫn vào bất kỳ thông báo deny hoặc instruct nào bằng cách thêm trường hint trong policyParams — không cần thay đổi mã. Điều này hoạt động cho các chính sách tùy chỉnh (custom/), quy ước dự án (.failproofai-project/), và quy ước người dùng (.failproofai-user/) cũng vậy. Xem Configuration → hint để biết chi tiết.

Thông báo allow thông tin

allow(message) cho phép hoạt động gửi thông báo thông tin lại cho Claude. Thông báo được cung cấp như additionalContext trong phản hồi stdout của trình xử lý hook — cơ chế tương tự được sử dụng bởi instruct, nhưng khác nhau về mặt ngữ nghĩa: đó là một cập nhật trạng thái, không phải một cảnh báo. Trường hợp sử dụng:
  • Xác nhận trạng thái: allow("All CI checks passed.") — cho Claude biết mọi thứ đều bình thường
  • Giải thích fail-open: allow("GitHub CLI not installed, skipping CI check.") — cho Claude biết tại sao kiểm tra bị bỏ qua để nó có bối cảnh đầy đủ
  • Nhiều thông báo tích lũy: nếu một số chính sách mỗi cái trả về allow(message), tất cả thông báo được nối với các dòng mới và cung cấp cùng nhau

Các trường PolicyContext

Các trường SessionMetadata

Các loại sự kiện


Thứ tự đánh giá

Các chính sách được đánh giá theo thứ tự này:
  1. Các chính sách tích hợp sẵn (theo thứ tự định nghĩa)
  2. Các chính sách tùy chỉnh rõ ràng từ customPoliciesPath (theo thứ tự .add())
  3. Các chính sách quy ước từ .failproofai/policies/ dự án (tệp theo thứ tự bảng chữ cái, thứ tự .add() bên trong)
  4. Các chính sách quy ước từ ~/.failproofai/policies/ người dùng (tệp theo thứ tự bảng chữ cái, thứ tự .add() bên trong)
deny đầu tiên short-circuits tất cả các chính sách sau. Tất cả các thông báo instruct được tích lũy và cung cấp cùng nhau.

Các import chuyển tiếp

Các tệp chính sách tùy chỉnh có thể import các mô-đun cục bộ bằng cách sử dụng các đường dẫn tương đối:
Tất cả các import tương đối có thể truy cập từ tệp entry được giải quyết. Điều này được thực hiện bằng cách viết lại các import from "failproofai" sang đường dẫn dist thực tế và tạo các tệp .mjs tạm thời để đảm bảo khả năng tương thích ESM.

Lọc loại sự kiện

Sử dụng match.events để giới hạn khi một chính sách kích hoạt:
Bỏ qua match hoàn toàn để kích hoạt trên mọi loại sự kiện.

Xử lý lỗi và các chế độ lỗi

Các chính sách tùy chỉnh là fail-open: các lỗi không bao giờ chặn các chính sách tích hợp sẵn hoặc làm crash trình xử lý hook.
Để gỡ lỗi các lỗi chính sách tùy chỉnh, hãy theo dõi tệp nhật ký:

Ví dụ đầy đủ: nhiều chính sách


Ví dụ

Thư mục examples/ chứa các tệp chính sách sẵn sàng chạy:

Sử dụng các ví dụ tệp rõ ràng

Sử dụng các ví dụ dựa trên quy ước

Không cần lệnh cài đặt — các tệp được chọn tự động trên sự kiện hook tiếp theo.