Skip to main content
Chính sách tùy chỉnh chuyển một mô hình lỗi từ các trace hoặc audit của bạn thành một quyết định chạy trong khi agent hoạt động. Một chính sách có thể cho phép một hành động, cung cấp hướng dẫn cho agent hoặc từ chối hành động trước khi nó gây ra một sự cố khác. Sử dụng chính sách tùy chỉnh khi hành vi phụ thuộc vào các công cụ, đường dẫn, lệnh, môi trường hoặc quy tắc hoạt động của bạn. Hãy kiểm tra danh mục chính sách tích hợp trước để tránh tái tạo một điều khiển hiện có.

Tạo chính sách tùy chỉnh

  1. Chuyển đến Admin → policy editor, chọn New policy và mô tả lỗi bạn muốn ngăn chặn.
  2. Thêm mã nguồn chính sách, sau đó kiểm tra các kết quả khớp mong đợi và các kết quả không khớp an toàn trong trình soạn thảo. Giải quyết mọi lỗi xác thực.
  3. Lưu bản nháp và chọn Publish version để tạo một phiên bản bất biến.
  4. Chuyển đến Admin → enforcement, triển khai phiên bản tới một máy thử nghiệm ở chế độ observe và xác minh các quyết định của nó dưới Observe → policy trước khi thực thi. Trình soạn thảo chính sách được sử dụng để tạo và xuất bản chính sách tùy chỉnh.

Bắt đầu với một quy tắc hẹp

Chính sách này chặn các lệnh Kubernetes phá hủy chỉ khi lệnh nhắm vào production. Mọi thứ ngoài chế độ lỗi chính xác đó trả về allow().
Các chính sách tốt đủ hẹp để giải thích trong một câu. Khớp hành động quan sát được—không phải ý định bạn hy vọng agent có—và trả về allow() ngay khi quy tắc không áp dụng.

Chọn một quyết định

Viết lý do cho agent phải khôi phục. Giải thích những gì được phát hiện và nó nên làm gì để thay thế.
Không sử dụng instruct() cho ranh giới an toàn. Việc cung cấp hướng dẫn khác nhau tùy theo harness agent. Sử dụng deny() khi hành động phải được ngăn chặn.

Đối tượng chính sách

Lọc công cụ bên trong fn. match.toolNames không phải là một phần của loại chính sách tùy chỉnh công khai.

Ngữ cảnh chính sách

Mỗi chính sách nhận một PolicyContext. Coi mọi giá trị tùy chọn là thực sự tùy chọn. Các phiên bản agent và các loại sự kiện không cung cấp các trường giống nhau.

Đầu vào công cụ phổ biến

Failproof AI chuẩn hóa các công cụ phổ biến trên các harness được hỗ trợ để một chính sách thường có thể sử dụng một hình dạng đầu vào. Sử dụng chuyển đổi phòng thủ vì các giá trị đầu vào công cụ được gõ là unknown:

Chọn sự kiện

Tính khả dụng sự kiện và hành vi chặn phụ thuộc vào harness agent. Xem Agent harnesses trước khi dựa vào một sự kiện trên một lực lượng hỗn hợp.
SessionStart, SessionEnd, UserPromptSubmit, PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, Notification, SubagentStart, SubagentStop, TaskCreated, TaskCompleted, Stop, StopFailure, TeammateIdle, InstructionsLoaded, ConfigChange, CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove, PreCompact, PostCompact, Elicitation, ElicitationResult, UserPromptExpansion, PostToolBatchSetup.

Tạo các mô hình chính sách phổ biến

Chặn ghi vào các đường dẫn được bảo vệ

Cung cấp hướng dẫn không chặn

Ghi công việc hoàn thành phiên

Một sự kiện Stop bị từ chối có thể làm cho agent thử lại. Chỉ ghi công việc trên một điều kiện mà agent có thể thỏa mãn trong môi trường hiện tại và giới hạn mọi lệnh con hoặc cuộc gọi mạng.

Tải tệp chính sách

Tệp quy ước

Tệp quy ước tải tự động:
  • Cả thư mục chính sách của dự án và người dùng đều được tải.
  • Các tệp tải theo thứ tự bảng chữ cái trong mỗi thư mục.
  • Một tệp phải kết thúc bằng policies.js, policies.mjs hoặc policies.ts.
  • Nhiều lệnh gọi customPolicies.add() trong một tệp được hỗ trợ.
  • Các nhập khẩu tương đối từ các mô-đun cục bộ được hỗ trợ.
  • Các chính sách của dự án có thể được cam kết để các quy tắc tương tự theo dõi kho lưu trữ.

Tệp rõ ràng

Sử dụng đường dẫn rõ ràng khi xác thực hoặc cấu hình nên đặt tên tệp nhập trực tiếp:
Các tệp rõ ràng tải trước tiên, theo sau là tệp quy ước dự án và sau đó là tệp quy ước người dùng. Một tệp được phát hiện thông qua cả hai đường dẫn được tải một lần.

Xác thực và kiểm tra

Xác thực thực hiện mô-đun thông qua trình tải sản xuất và xác nhận rằng nó đăng ký ít nhất một chính sách.
Xác thực bắt các tệp bị thiếu, lỗi cú pháp, nhập khẩu chưa giải quyết, ngoại lệ cấp cao nhất và thời gian chờ tải mô-đun. Nó không chứng minh rằng logic khớp của bạn là chính xác. Kiểm tra ít nhất các trường hợp này:
  • Một hành động phải khớp và tạo ra lý do chính sách dự định.
  • Một hành động gần đó nhưng an toàn phải trả về allow().
  • Các trường công cụ bị thiếu hoặc định dạng không đúng.
  • Cú pháp lệnh thay thế, đường dẫn, dấu ngoặc, casing và khoảng trắng.
  • Một quá trình con hoặc phụ thuộc mạng không có sẵn.
Quy cho kết quả cho chính sách tùy chỉnh của bạn dưới Observe → policy. Một bài kiểm tra bị chặn là không đủ nếu một chính sách tích hợp khác đã đưa ra quyết định.

Hành vi thời gian chạy

  • Các chính sách tích hợp được đánh giá trước các chính sách tùy chỉnh.
  • Lần deny đầu tiên dừng đánh giá chính sách thêm.
  • Nhiều kết quả instruct có thể được kết hợp khi không có chính sách nào từ chối sự kiện.
  • Một hàm chính sách có thời hạn thực hiện 10 giây.
  • Một ngoại lệ được ném hoặc thời gian chờ được ghi nhật ký và được coi là allow().
  • Một tệp quy ước không tải được bị bỏ qua; các tệp tùy chỉnh khác và chính sách tích hợp tiếp tục.
  • Tải mô-đun cấp cao nhất cũng có thời hạn 10 giây.
  • Chế độ quan sát đám mây chạy chính sách nhưng ghi lại quyết định không phải là allow mà không thực thi nó.
Giữ các mô-đun chính sách xác định và nhanh chóng. Tránh các cuộc gọi mạng cấp cao nhất hoặc khởi động máy chủ. Công việc ràng buộc bên trong fn, bắt các lỗi phụ thuộc và chọn có chủ ý liệu lỗi đó nên cho phép hay từ chối hoạt động.

Xuất API

TypeScript xuất PolicyContext, PolicyResult, CustomHook, PolicyDecisionPolicyFunction.

Triển khai các chính sách tùy chỉnh

Xuất bản một phiên bản, triển khai nó ở chế độ quan sát, xác minh quyết định và chuyển đến thực thi.