Berget AI가 코딩 에이전트의 Bash 명령을 저장소의 GUARDRAILS.md와 대조해 실행 여부를 판단하는 오픈소스 도구 guardrails-md를 공개했다. 기본 임계값을 넘는 명령은 차단되며, 에이전트에는 차단 이유가 전달된다. 판정에는 약 100ms가 걸린다고 Berget AI는 설명했다.

명령을 판정하는 방식

세션이 시작되면 도구는 GUARDRAILS.md의 처음 2,000자만 읽어 고정한다. 에이전트가 세션 중 파일을 수정해도 변경 사항은 다음 세션부터 적용된다. 정책 변경은 다른 파일 수정과 마찬가지로 검토를 거치도록 설계됐다.

에이전트가 Bash를 호출하면 실행 전에 훅이 이를 가로챈다. 도구는 명령어, 명령어가 참조하는 스크립트 파일의 내용, 고정된 가드레일을 합쳐 판정 모델에 전달한다. 모델은 한 번의 요청에서 다음 네 항목을 각각 0~1점으로 평가한다.

  • 데이터·데이터베이스·인프라를 되돌릴 수 없게 파괴하는지
  • 비밀 정보·키·토큰을 포함하거나 출력·전송하는지
  • 팀의 GUARDRAILS.md를 위반하는지
  • 가드레일에 해당 명령을 허용한다고 명시했는지

점수가 기본 임계값인 0.7을 넘으면 명령을 차단하고, 그 이유를 도구 결과로 에이전트에 반환한다. Berget AI는 패턴 기반 차단 목록과 달리 팀 정책을 고려하며, 명령마다 별도의 생성형 AI 검토를 거치지 않는다고 설명한다. 판정에는 System One 출시 당시 소개한 자사의 berget/bev 의사결정 모델을 사용한다. 모델은 앞선 대화가 아니라 명령과 규칙을 평가한다.

우회할 수 없는 항목과 사람의 정책 변경

guardrails_violation 판정은 GUARDRAILS.md의 MAY 섹션에 명령을 허용한다고 적어 해제할 수 있다. 반면 파괴적 명령과 자격 증명 관련 판정은 파일 내용과 관계없이 해제되지 않는다.

명령이 차단될 때마다 다음 판정까지의 대기 시간은 두 배로 늘어난다. 처음에는 몇 초이며, 20번째 차단 시에는 1시간 30분에 이른다. 같은 명령의 변형으로 이 제한을 피할 수 없다고 Berget AI는 밝혔다.

서비스 엔드포인트에 연결할 수 없으면 응답이 복구될 때까지 명령을 차단하는 방식으로 작동한다. 대화형 사용자는 SYSTEMONE_FAIL_OPEN=1로 이 동작을 바꿀 수 있다. 가속 처리 경로, 접두어 허용 목록, 에이전트가 수정할 수 있는 재정의 파일은 제공하지 않는다. 파일 편집 도구는 GUARDRAILS.md와 하네스 설정 파일을 직접 수정하지 못하게 막으며, 이 차단은 모델 판정이나 임계값, 대기 시간에 의존하지 않는다.

정책을 바꾸려면 GUARDRAILS.md를 수정해 풀 리퀘스트를 올린다. 오탐을 해결하는 지속적인 방법은 정책을 고치는 것이며, 판정 임계값을 높이거나 SYSTEMONE_GATE=off로 하네스를 재시작해 한 세션 동안 게이트를 끌 수도 있다. 재시작하면 정책을 다시 읽고 대기 시간도 초기화한다.

커밋 검사와 한계

같은 판정 기능을 Git 프리커밋 훅에서도 사용할 수 있다. 저장소에 들어가기 전 스테이징된 변경 사항 전체를 검사하며, 개인 데이터(GDPR)와 비밀 정보는 차단하고 작성자 이름이나 저자 필드에 포함된 팀 구성원의 이름은 통과시킨다.

Berget AI는 이 도구가 규칙 엔진이 아니라 학습된 모델이라고 밝힌다. 보류 테스트에서는 약 96%, 레드팀 명령에서는 74%의 점수를 기록했다. 안전한 명령을 막거나 위험한 명령을 통과시키는 오판이 발생할 수 있고, 인코딩된 페이로드는 해독하지 않는다. 따라서 범위를 제한한 자격 증명, 샌드박스, 사람의 검토를 대체하지 않는 보안 계층으로 다뤄야 한다. 전체 평가표와 방법론은 저장소에 공개돼 있다.

설치와 이용 조건

설정은 저장소에 팀의 허용·금지 규칙을 담은 GUARDRAILS.md를 추가하고, 사용하는 하네스에 게이트를 설치하는 방식이다. OpenCode에서는 opencode.json에 "plugin": ["@bergetai/guardrails-md"]를 추가한다. Pi에서는 터미널에서 pi install npm:@bergetai/guardrails-md를 실행한다.

OpenCode나 Pi에서 Berget AI에 이미 로그인했다면 별도 키가 필요 없다. 그렇지 않으면 BERGET_API_KEY를 설정하고 하네스를 재시작해야 한다. 전체 설정과 구성, 프리커밋 훅 안내는 README에서 확인할 수 있다. 명령 판정은 Berget AI API를 통해 이뤄지며, 업체는 판정 대상 데이터를 저장하지 않는다고 밝혔다. 무료 구간의 5유로 크레딧은 오래 사용할 수 있을 만큼 호출량이 적다고 설명했다.