에러 없음과 정상은 다른 말이에요 — AI 자동화에서 제일 비싼 실패는 조용한 실패였어요
AI 에이전트 자동화 영상을 보면 대부분 "만드는 법"을 다뤄요. 루프를 돌리는 법, 에이전트를 여럿 붙이는 법. 그런데 몇 달 굴려보니, 진짜 어려운 건 만드는 게 아니라 죽었는지 아는 것이더라고요.
신호가 0이었던 6번의 크래시
이런 일이 있었어요.
제 시스템에는 세션이 시작될 때마다 환경을 점검하는 검사기가 있어요. 문제가 있으면 경고를 모아서 알려주는 구조였어요. 적어도 저는 그렇게 믿고 있었어요.
어느 날 파이썬 라이브러리 하나가 불러오자마자 죽는 상태가 됐어요. 검사기는 이걸 감지해서 경고로 분류까지 했어요. 그런데 그 라이브러리를 쓰는 자동화가 여섯 번 크래시로 쌓일 때까지, 저는 아무 신호도 받지 못했어요. 나중에 검사기 코드를 열어보고 알았는데, 경고를 모으는 변수는 있었어요. 성실하게 모으고 있었어요. 다만 그 변수를 읽어가는 곳이 없었어요. 수집만 되고 출력으로도, 기록으로도 흐르지 않는 죽은 변수였던 거예요. 검사기 자신은 매번 정상 종료했고요.
검사기는 매일 돌았고, 에러도 안 냈어요. 그래서 저는 매일 "정상"이라고 읽었어요. 사실은 "아무 말도 안 함"이었는데요.
0건 보고의 두 가지 얼굴
이 일 뒤로 비슷한 패턴이 자꾸 보이기 시작했어요.
자동 수집기가 "오늘 0건 수집"이라고 보고해요. 이 문장은 두 가지일 수 있어요. 정말 새 글이 없었거나, 수집기가 경로를 잃어서 아무것도 못 본 채 0을 세었거나. 겉모습은 완전히 같아요. 에러 없음, 결과 0건, 초록색 상태 표시.
사람 조직이라면 "요즘 왜 조용하지?"라고 누가 물었을 거예요. 자동화는 안 물어요. 조용함을 성실하게 반복할 뿐이에요.
그래서 저는 요즘 자동화를 하나 만들 때마다 질문을 바꿔서 물어요. "이거 잘 돌아가?"가 아니라, "이게 죽으면 나는 그걸 어떻게 알게 되지?" 답이 "결과가 안 오니까 알겠지"라면 위험해요. 결과가 안 오는 상태와 보고할 게 없는 상태가 같은 얼굴을 하고 있는 한, 저는 그 죽음을 몇 주 뒤에나 알게 될 테니까요.
살아있음을 증명하게 하기
지금 제가 쓰는 처방은 소박해요.
하나, 침묵과 정상을 분리해요. "문제 없음"도 명시적인 신호로 남기게 해요. 심장박동처럼요. 신호가 끊기면 그 자체가 알람이에요. 매일 "이상 없음"을 적던 시스템이 아무것도 안 적으면, 그게 이상이 생겼다는 뜻이 되죠.
둘, 0건은 경로 증명과 함께 받아요. "0건 수집"이 아니라 "대상 폴더 3개를 봤고, 파일 40개를 열었고, 그중 조건에 맞는 게 0건"처럼요. 본 것의 개수가 함께 오면, 아무것도 못 본 0건과 진짜 0건이 갈라져요.
셋, 감시기를 늘리기 전에 그 결과가 흘러갈 곳부터 확인해요. 제 죽은 변수 사건의 교훈이에요. 모으는 코드는 있는데 읽는 곳이 없는 감시는, 잘못된 안도감을 준다는 점에서 없는 감시보다 위험할 수 있어요. 있다고 믿게 만드니까요.
에이전트 시대의 운영은 결국 신뢰의 문제인 것 같아요. 그리고 신뢰는 "에러가 없었다"에서 오는 게 아니라, 살아있음을 계속 증명하는 구조에서 와요. 침묵을 정상으로 번역하지 마세요. 정상이라면, 정상이라는 증거가 남아야 해요.
이것 저것 AI와 사는 이야기를 공유합니다. 목요일마다 보내드리고, 그 사이에 나눌 이야기가 생기면 한 번 더 찾아뵐게요.
