AI 에이전트에게 임의로 쓰게 하기 전에 확인하는 7가지 사항 (실제 실패 경험 기반)
요약
AI 에이전트나 봇을 사람이 감시하지 않는 환경에서 운영할 때 발생할 수 있는 위험과 실패 경험을 바탕으로, 반드시 확인해야 할 7가지 안전 점검 항목을 제시합니다. 이는 시스템의 안정성과 신뢰성을 확보하기 위한 실질적인 개발 가이드입니다.
핵심 포인트
- 인증된 사용자 ID를 매번 확인하여 오작동을 방지한다.
- 이전 파이프라인은 작동 가능하다고 가정하지 않고 의심해야 한다.
- 쓰기 작업 전후에 '시도(attempt)' 기록을 남겨 중복 및 실패를 관리한다.
- 의문점이 있다면 다음 작업을 멈추고 사람이 확인할 때까지 대기시킨다.
- 모든 자동화 시스템은 기본적으로 '드라이런' 모드로 작동시키는 것이 안전하다.
Claude Code를 이용해 작은 자동 운영 시스템을 만들고 있습니다. 예약된 작업(job)이 공식 API를 통해 X에 게시하고, Gumroad에서 디지털 상품을 판매하며, 심야 시간에 스크립트가 기록을 남기는 규모입니다. 큰 시스템은 아니지만, 자는 동안 돈을 잃거나 창피한 일을 당할 가능성은 언제나 있습니다.
본 글은 에이전트, 봇, 정기 작업(scheduled job)에 '사람이 보고 있지 않은 상태에서 쓰게' 하기 전에 제가 반드시 확인하는 7가지 항목입니다. 모두 실제로 발생했거나 발생할 뻔했던 경험을 바탕으로 추가했습니다. 가상의 사례는 없습니다.
1. 첫 번째 쓰기를 하기 전, '나는 누구인가'를 확인한다
같은 PC에 다른 프로젝트용 X 계정도 로그인되어 있습니다. 그래서 게시 스크립트는 전송하기 전에 매번 API에 '현재 인증된 사용자는 누구인가'를 문의하고, 코드에 직접 작성된 계정 이름과 대조합니다. 다르면 멈춥니다. 경고 메시지를 내보내고 계속 진행하지 않습니다.
API 읽기 작업이 하루 한 번 늘어나는 것(캐싱)이라 가장 저렴한 보험입니다.
2. 오래된 파이프라인은 '아직 작동할 수 있다'는 전제 하에 의심한다
운영을 재구축했을 때, 이전 파이프라인이 실제 게시가 가능한 설정으로 남아 있는 것을 발견했습니다. 게시되지 않았던 것은 품질 필터가 우연히 모두 걸러냈기 때문이었습니다. 안전 설계가 아니라 단순한 운입니다.
지금은 '멈출 수 있다'는 조건을 눈에 보이는 변경 사항으로 만듭니다. 플래그를 해제하거나, 날짜가 찍힌 백업을 남기거나, 무엇을 언제 멈췄는지 장부에 기록하는 세 가지입니다.
3. 결과가 불분명한 쓰기는 다음 전송을 멈춘다
쓰기가 발생할 때마다, 전송 전에 '시도(attempt)'를 기록하고, 전송 후에 sent / failed / unknown 중 어느 것인지를 기록합니다. 타임아웃은 unknown입니다. unknown이 남아 있는 동안에는 사람이 확인할 때까지 다음 전송을 하지 않습니다. 자동 재시도도 하지 않습니다. 다시 전송된 게시물, 이메일, 결제는 그저 중복이기 때문입니다.
# 전송 전에 반드시 attempt를 기록한다 (크래시해도 흔적이 남음)
ledger.guarded_write(
만약 하나라도 '아니요'라는 답변이 있다면, 해당 에이전트는 '예'가 될 때까지 드라이런(dry run, 전송하지 않는 모드)으로 작동시킵니다. 느리기는 하겠지만, 스스로 움직인 후에 발생하는 뒷정리를 하는 것보다는 훨씬 저렴합니다.
이 7가지 항목을 25개 항목의 1페이지 체크리스트로 정리하여 무료로 배포하고 있습니다 (영어 PDF입니다).
3번 '중복 전송 방지 기록장'은 Python 표준 라이브러리만으로 작성한 단일 파일 코드로 공개했습니다.
### Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기