챕터 7

폭주 막기 — 에이전트 가드레일

스스로 도구를 쓰는 에이전트가 잘못된 행동·무한 실행·비용 폭증으로 폭주하지 않게 권한·승인·종료 조건·검증 게이트를 거는 법을 다룹니다.

스스로 움직이는 만큼 위험하다

6장까지 에이전트를 만들고, 도구를 붙이고, 여러 대를 팀으로 묶었습니다. 그런데 힘이 세질수록 사고도 커집니다. 챗봇은 틀린 답을 해도 그냥 틀린 답이지만, 에이전트는 틀린 채로 실제 메일을 보내고 파일을 지웁니다.

그래서 만드는 것만큼 "함부로 못 하게 막는" 것이 중요합니다. 이 장은 에이전트에 브레이크를 다는 이야기입니다.

세 가지 폭주

에이전트가 사고 치는 방식은 크게 셋입니다.

폭주 어떻게 나타나나 막는 법
잘못된 행동 엉뚱한 사람에게 발송, 멀쩡한 파일 삭제 권한 제한 + 사람 승인
무한 실행 끝나는 줄 모르고 계속 도는 루프 종료 조건 + 반복 상한
비용 폭증 밤사이 조용히 호출이 불어남 실행 상한 + 로그 감시

셋 다 공통점이 있습니다. 사람이 안 보는 사이에 벌어진다는 것. 그래서 "알아서 잘하겠지"가 아니라, 미리 못 하게 선을 그어둬야 합니다.

권한을 좁혀라

가장 먼저 할 일은 에이전트에게 딱 필요한 권한만 주는 겁니다. 5장에서 도구를 최소한으로 붙이라고 한 것과 같은 이야기입니다.

읽기와 쓰기를 나누세요. 자료를 조사하는 에이전트라면 검색·읽기 권한이면 충분합니다. 굳이 파일 삭제나 메일 발송 권한을 줄 이유가 없죠. 권한이 없으면 사고도 못 칩니다.

예를 들어 "매일 경쟁사 소식을 정리해 줘"라는 리서치 에이전트에 실수로 메일 발송 권한까지 붙였다고 해보죠. 어느 날 엉뚱하게 요약본을 외부로 보내버려도 막을 방법이 없습니다. 반대로 검색·문서저장 권한만 줬다면, 최악의 경우에도 사고는 "내부 문서가 지저분해지는" 선에서 끝납니다. 권한의 범위가 곧 사고의 범위입니다.

또 하나, 테스트는 반드시 실제 계정이 아니라 별도 공간에서 먼저 돌려 보세요. 되돌릴 수 없는 실수는 대개 "설마 되겠어" 하고 바로 실전에 붙였을 때 납니다.

되돌릴 수 없는 일은 사람에게

모든 걸 자동으로 둘 필요는 없습니다. 되돌리기 쉬운 일과 어려운 일을 갈라, 위험한 쪽만 사람 손을 거치게 하면 됩니다.

  • 자동으로 둬도 되는 일: 초안 작성, 자료 정리, 내부 메모
  • 사람 승인 뒤에만: 고객에게 실제 발송, 결제, 데이터 삭제, 외부 공개

이 한 줄 기준만 지켜도 큰 사고는 대부분 걸러집니다. 에이전트가 "이걸 하려는데 승인해 주세요"라고 멈춰 서게 만드는 거죠.

멈추고 확인하는 장치

마지막은 스스로 멈추게 하는 장치입니다. AI 루프 엔지니어링 시리즈에서 다룬 가드레일이 여기서 그대로 쓰입니다.

종료 조건과 반복 상한을 겁니다. "최대 5단계", "같은 시도 3번 실패하면 멈추고 보고"처럼 끝을 정해 두는 겁니다. 이게 없으면 에이전트가 안 되는 일을 붙들고 밤새 같은 시도를 반복하며 비용만 태우기도 합니다. 그리고 중요한 행동 전에는 검증 게이트를 둬서, 조건을 통과 못 하면 실행하지 않게 합니다. "보낼 메일 주소가 사내 도메인이 맞는지 확인한 뒤에만 발송" 같은 관문 하나가 큰 사고를 막습니다.

한 가지 더, 에이전트가 무엇을 했는지 로그로 남기세요. 언제 어떤 도구를 어떤 입력으로 호출했는지가 남아 있어야, 잘못 돌았을 때 어디서 어긋났는지 추적하고 고칠 수 있습니다. 로그가 없으면 사고가 나도 원인을 모른 채 같은 실수를 반복하게 됩니다. 브레이크 없는 자동화는 편한 게 아니라 불안한 겁니다. 가드레일을 갖춘 뒤에야 비로소 마음 놓고 손을 뗄 수 있습니다.

다음 챕터에서는 처음 에이전트를 시작하는 로드맵과 자주 빠지는 함정, 그리고 업무별 시작 프롬프트로 시리즈를 마무리하겠습니다.