Failproof AI는 시행 실패가 위험한 작업을 조용히 허용하는 대신 눈에 띄게 드러나도록 설계되어 있습니다.
실패-폐쇄 차단 진단
- Admin → enforcement로 이동하여 해당 머신을 엽니다.
- 마지막 체크인, 할당된 배포, 보고된 배포를 확인합니다.
- Observe → policy로 이동하여 거부된 결정의 세션을 엽니다.
- 이유가 데몬 도달 가능성, 버전 불일치, 또는 정책 자체를 가리키는지 확인합니다.
failproofai config를 다시 실행하면 패키지 업그레이드 후 데몬이 업데이트되고 재시작됩니다.
failproofaid를 사용하도록 구성된 머신에서는 데몬이 유일한 평가자입니다. 데몬에 접근할 수 없거나 프로토콜 버전이 CLI와 일치하지 않으면 훅 평가가 실패-폐쇄 방식으로 처리됩니다. 작업이 거부되며, 운영자가 데몬을 확인하거나 업데이트하도록 안내하는 이유가 함께 제공됩니다.
데몬 구성 이전에는 훅이 프로세스 내에서 정책을 평가합니다. 데몬 구성이 기록된 이후에는, 데몬이 실패하더라도 Failproof AI가 두 번째 평가자로 자동으로 폴백하지 않습니다.
실패-폐쇄 결정에 대응하기
failproofai config --status를 실행합니다.
- 버전이 다를 경우, 패키지를 업데이트한 후
failproofai config를 다시 실행합니다.
- 데몬에 접근할 수 없는 경우, 서비스 상태와 로컬 로그를 확인합니다.
- 정책 평가 경로가 정상임을 확인한 후에만 에이전트 작업을 재개합니다.
차단된 작업을 반복적으로 재시도하지 마십시오. 실패-폐쇄 응답은 시스템이 해당 작업의 안전성을 확인할 수 없었음을 의미합니다.
팩을 불러올 수 없는 경우
팩을 시행하도록 설정된 머신이 해당 팩을 실행할 수 없을 때, 시스템은 조용히 계속 진행하는 대신 거부합니다. 트리거는 기록된 기대값이며, 빈 값이 아닙니다. 즉, 팩이 설치되지 않은 머신은 조용히 있지만, 선언되었지만 해석되지 않거나 매니페스트가 선언한 것보다 적게 등록된 팩은 거부합니다.
이 거부는 데몬에 접근할 수 없는 경우와 달리 범위가 좁습니다. 데몬에 접근할 수 없다는 것은 평가가 전혀 이루어지지 않아 어떤 것도 안전하다고 알 수 없음을 의미합니다. 반면, 불러올 수 없는 팩은 누락된 가드의 열거 가능한 집합을 가집니다. 모든 선언된 정책이 고유한 match를 가지기 때문에, 해당 정책이 적용되는 이벤트와 도구에 대해서만 거부하고 나머지는 정상 진행됩니다.
다음 경우에는 발동되지 않습니다:
- 구조적으로 평가 후 폐기하는
observe 팩
- 사용하지 않거나 명시적으로 비활성화한 정책
- 로더가 수신하지 못한 팩 (이 경우 “등록 없음”을 의도적인 건너뜀과 구별할 수 없음)
- 활성 세션 일시 정지
- 부하 타임아웃 (일시적인 현상으로, 디스크가 한 번 느린 순간 때문에 사람이 개입할 때까지 거부해서는 안 됨)
UserPromptSubmit은 누락된 정책이 무엇을 선언했든 관계없이 거부 대신 instructs합니다. 전면 거부는 이를 함께 차단하여 문제를 수정할 수 있는 에이전트에서 잠겨버릴 수 있기 때문입니다.
해결 방법
목록에는 설치 레코드 또는 다이제스트가 더 이상 유효하지 않은 설치된 팩이 표시되며 그 이유도 알려줍니다. 팩을 임포트하지 않으므로, 로드될 때만 실패하는 팩(매니페스트가 선언한 것보다 적게 등록하는 팩)은 정상으로 나열됩니다. 이 경우 아래의 거부가 해당 팩을 식별합니다. 어느 경우든 팩을 재설치(failproofai policies add <source>)하거나 제거(failproofai policies remove <publisher/name>)하면 됩니다. 제거하면 기대값이 철회되고 거부도 함께 중단됩니다.
거부 자체는 pack/failproofai-pack-unavailable에 귀속되며, 이는 로드된 정책보다 우선순위가 높습니다. 따라서 차단된 도구 호출은 먼저 발동된 살아남은 가드가 아닌 누락된 팩을 식별합니다.