커스텀 정책 작성
- 대시보드
- CLI
- Admin → 정책 편집기로 이동하여 새 정책을 선택하고, 방지하려는 장애를 설명합니다.
- 정책 소스를 추가한 다음, 편집기에서 예상 일치 항목과 안전한 비일치 항목을 테스트합니다. 모든 유효성 검사 오류를 해결합니다.
- 초안을 저장하고 버전 게시를 선택하여 변경 불가능한 버전을 생성합니다.
-
Admin → 적용으로 이동하여 관찰 모드로 테스트 머신에 버전을 배포하고, 적용하기 전에 Observe → 정책에서 결정 사항을 검증합니다.

범위가 좁은 규칙으로 시작하기
이 정책은 명령이 프로덕션을 대상으로 할 때만 파괴적인 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을 내보냅니다.
커스텀 정책 배포
버전을 게시하고, 관찰 모드로 배포하고, 결정 사항을 검증한 다음, 적용 단계로 이동하세요.

