커스텀 정책 작성하기
- 대시보드
- CLI
- Admin → 정책 편집기로 이동하여 새 정책을 선택하고, 방지하려는 장애를 설명합니다.
- 정책 소스를 추가한 후, 편집기에서 예상 매칭 케이스와 안전한 비매칭 케이스를 테스트합니다. 유효성 검사 오류를 모두 해결하세요.
- 초안을 저장하고 버전 게시를 선택하여 변경 불가능한 버전을 생성합니다.
-
Admin → 적용으로 이동하여 관찰 모드로 테스트 머신에 버전을 배포하고, 적용하기 전에 Observe → policy에서 결정 내역을 확인합니다.

좁은 규칙으로 시작하기
아래 정책은 명령어가 프로덕션을 대상으로 할 때만 파괴적인 Kubernetes 명령어를 차단합니다. 해당 장애 모드 외의 모든 경우는allow()를 반환합니다.
allow()를 반환하세요.
결정 선택하기
복구해야 하는 에이전트를 위한 이유를 작성하세요. 감지된 내용과 대신 해야 할 행동을 설명하세요.
정책 객체
fn 내부에서 도구를 필터링하세요. match.toolNames는 공개 커스텀 정책 타입에 포함되지 않습니다.
정책 컨텍스트
모든 정책은PolicyContext를 받습니다.
모든 선택적 값을 실제로 선택적인 것으로 처리하세요. 에이전트 버전과 이벤트 타입에 따라 제공되는 필드가 다를 수 있습니다.
일반적인 도구 입력
Failproof AI는 지원되는 하네스 전반에 걸쳐 공통 도구를 정규화하므로 정책은 일반적으로 하나의 입력 형태를 사용할 수 있습니다.
도구 입력 값은
unknown 타입이므로 방어적 강제 변환을 사용하세요:
이벤트 선택하기
이벤트 가용성과 차단 동작은 에이전트 하네스에 따라 다릅니다. 혼합 플릿에서 이벤트에 의존하기 전에 에이전트 하네스를 확인하세요.
모든 정책 이벤트 이름
모든 정책 이벤트 이름
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, PostToolBatch, Setup.일반적인 정책 패턴 작성하기
보호된 경로에 대한 쓰기 차단
비차단 가이던스 제공
세션 완료 게이팅
정책 파일 로드하기
컨벤션 파일
컨벤션 파일은 자동으로 로드됩니다:- 프로젝트 및 사용자 정책 디렉터리가 모두 로드됩니다.
- 각 디렉터리 내에서 파일은 알파벳 순서로 로드됩니다.
- 파일은 반드시
policies.js,policies.mjs, 또는policies.ts로 끝나야 합니다. - 하나의 파일에서 여러 번
customPolicies.add()를 호출하는 것이 지원됩니다. - 로컬 모듈의 상대 임포트가 지원됩니다.
- 프로젝트 정책은 커밋할 수 있어 동일한 규칙이 저장소를 따라다닐 수 있습니다.
명시적 파일
유효성 검사나 설정에서 진입 파일을 직접 지정해야 할 때 명시적 경로를 사용하세요:유효성 검사 및 테스트
유효성 검사는 프로덕션 로더를 통해 모듈을 실행하고 최소 하나의 정책이 등록되었는지 확인합니다.- 반드시 매칭되어 의도한 정책 이유를 생성해야 하는 동작 하나.
- 반드시
allow()를 반환해야 하는 인접하지만 안전한 동작 하나. - 누락되거나 잘못 형성된 도구 필드.
- 대체 명령어 구문, 경로, 인용, 대소문자, 공백.
- 사용 불가능한 서브프로세스 또는 네트워크 의존성.
런타임 동작
- 내장 정책이 커스텀 정책보다 먼저 평가됩니다.
- 첫 번째
deny가 이후 정책 평가를 중단합니다. - 어떤 정책도 이벤트를 거부하지 않으면 여러
instruct결과가 결합될 수 있습니다. - 정책 함수의 실행 제한 시간은 10초입니다.
- 예외가 발생하거나 타임아웃이 되면 로그에 기록되고
allow()로 처리됩니다. - 로드에 실패한 컨벤션 파일은 건너뛰며, 다른 커스텀 파일과 내장 정책은 계속 실행됩니다.
- 최상위 모듈 로딩에도 10초 제한 시간이 있습니다.
- 클라우드 관찰 모드는 정책을 실행하지만 비허용 결정을 적용하지 않고 기록만 합니다.
fn 내부의 작업에 제한을 두고, 의존성 오류를 처리하며, 해당 오류가 작업을 허용해야 할지 거부해야 할지 신중하게 결정하세요.
API 내보내기
TypeScript는
PolicyContext, PolicyResult, CustomHook, PolicyDecision, PolicyFunction을 내보냅니다.
커스텀 정책 배포
버전을 게시하고, 관찰 모드로 배포하고, 결정 내역을 확인한 후 적용으로 전환하세요.

