10월 17일 토요일, Meta는 전국적인 행사 한가운데서 No Kings Coalition의 Instagram 계정을 일시적으로 중단했으며, 이 연합체에 따르면 해당 페이지는 약 [90분 동안] 접속이 안 되었습니다(https://finance.yahoo.com/technology/ai/articles/meta-says-claude-ai-tool-235954717.html). 일요일에 Meta는 입장을 변경하여 Anthropic의 Claude를 기반으로 구축된 도구가 Instagram을 폭주적으로 읽은 것이 원인이라고 주장했습니다.
Bloomberg 보도에 따르면, Meta의 커뮤니케이션 담당 부사장 Andy Stone은 Instagram 엔지니어들이 Claude 도구가 프로필, 게시물 및 해시태그를 정상 속도의 약 4배로 강렬하게 폭주하며 접근하는 것을 발견했다고 말했습니다. Stone은 이러한 요청이
Meta의 설명은 주말 동안 변경되었습니다. 토요일에 Stone은 게시, 공유 또는 댓글을 달는 비정상적으로 높은 비율을 탓했으며(Bloomberg via Yahoo Finance) Meta의 자동화 시스템이 잘못 작동했다고 말했습니다(IBTimes UK). 일요일인 10월 18일, 그는 사과와 함께 수정된 설명을 X에 게시했습니다. TNW의 인용에 따르면, 그는 “오류에 대해 진심으로 사과드립니다”라고 말했습니다.
자동화 검토 결과 약 한 시간 후에 해당 계정이 삭제되어서는 안 된다는 것이 밝혀졌고, 측은 토요일 뉴욕 시간 오후 5시 33분에 완전한 접근이 복구되었다고 밝혔습니다(Bloomberg via Yahoo Finance).
여전히 세 가지가 빠져 있습니다. Stone의 진술에는 어떤 Claude 도구가 관련되었는지, 누가 그것을 운영했는지, 또는 계정과 관련하여 무엇을 했는지에 대한 언급이 없었습니다(TNW). 여기에 인용된 보고서 중 어느 것도 Anthropic의 진술을 포함하고 있지 않습니다. 따라서 “Claude 도구”는 누가 무엇을 했는지에 대한 확립된 사실이 아니라 Meta의 설명으로 간주해야 합니다. 아무도 로그를 공개하지 않았습니다.
에이전트가 봇처럼 보이는 이유
Instagram에는 에이전트라는 것이 없습니다. 세션 쿠키, 계정, 그리고 요청 스트림만 있습니다. 해시태그를 스크롤하는 사람은 일시 정지하며 인간의 속도로 읽습니다.
Instagram 자체 이용 약관는 이 점에 대해 명확하게 밝히고 있습니다. “승인되지 않은 방식으로 계정을 생성하거나 접근하거나 정보를 수집하려고 시도할 수 없습니다. 여기에는 당사의 명시적인 허가 없이 자동화된 방식으로 계정을 생성하거나 정보를 수집하는 것이 포함됩니다.” 제가 그 조항을 읽어보니, 로그인 세션을 탐색하는 에이전트는 자동화된 방식으로 정보를 수집하는 것 외에는 달리 묘사하기 어렵습니다.
브라우저 에이전트가 이렇게 하는 것을 쉽게 만듭니다. Anthropic의 Claude in Chrome 권한 가이드에는 세 가지 모드가 나열되어 있으며, 그중 “모든 승인 건너뛰기 (Skip)”라고 표시된 모드에서는 가이드가 “Claude는 멈춰서 물어보지 않으며, 아무것도 그 행동을 자동으로 확인하지 않는다”고 말합니다. Meta가 Claude in Chrome이 도구라고 말한 것은 아닙니다. 요점은 일반적입니다. 페이지 로드 사이에 승인 단계가 없으면, 어떤 것도 에이전트를 인간의 속도로 늦추지 못한다는 것입니다.
같은 가이드에는 관리자가 알아야 할 레버리지도 있습니다. “블록리스트는 사용자 권한에 관계없이 Claude가 특정 사이트에 접근하는 것을 방지합니다.” 조직의 주요 소셜 계정이 브라우저 에이전트를 실행하는 노트북에 있다면, 그것은 저렴한 안전장치입니다.
에이전트가 수행하는 모든 읽기 작업의 속도 조절하기
만약 에이전트를 위한 자체 탐색 또는 가져오기(fetch) 도구를 작성한다면, 속도 조절(pacing)을 도구 코드에 포함시키세요. “천천히 가라”는 지시를 받은 모델은 시계가 없습니다.
이 래퍼(wrapper)는 기다리기 전에 호스트당 슬롯을 예약하여, 병렬 도구 호출들이 한꺼번에 발사되는 대신 대기열로 쌓이게 합니다:
const nextSlot = new Map<string, number>();
export async function paced(
...
4초 간격은 제가 선택한 시작점일 뿐이며, Meta가 제시한 숫자는 아닙니다. Meta는 “정상 속도(normal rate)”가 무엇인지 발표하지 않았으며, 공적인 임계값은 봇 개발자들이 그 바로 아래에 머무를 것이기 때문에 기대해서도 안 됩니다. 호스트당 간격을 유지하고, 지터(jitter)를 추가하며, 하나의 작업이 총 몇 페이지를 읽을 수 있는지 제한하세요.
플랫폼에서 API를 사용할 때 사용하기
더 깔끔한 해결책은 아예 탐색하지 않는 것입니다. Meta의 Graph API는 속도 제한(rate limiting)에 대해 문서화하고 있습니다. Instagram Platform의 경우, 해당 페이지에는 '24시간 내 호출 횟수 = 4800 * 노출 수'라는 공식을 제시하며, 이는 앱 및 앱 사용자별로 계산됩니다. 또한, 속도 제한(throttled)이 걸리면 X-Business-Use-Case-Usage 헤더에 사용량을 보고해주며, 여기에는 접근 권한을 되찾는 예상 시간(estimated_time_to_regain_access)이 분 단위로 포함되어 있습니다.
에이전트 도구(agent tool)는 이 헤더를 읽고 스스로 멈출 수 있습니다:
type BucEntry = {
type: string;
call_count: number;
...
API를 통해 접근하면 문서화된 제한에 걸리고, 숫자를 받고 기다리면 됩니다. 하지만 로그인한 브라우저를 통해서는 받는 첫 신호가 계정 정지일 수 있습니다.
요청을 기록하여 '어떤 도구였는지' 답할 수 있게 하라
Meta의 성명에서 놓치기 쉬운 부분을 다시 살펴보세요: 어떤 도구가, 누가 실행했는지, 무엇을 하고 있었는지. 만약 플랫폼이 당신의 계정에 대해 이런 말을 한다면, 그 질문들에 대한 답변은 한 시간 안에 준비해야 합니다.
따라서 에이전트 도구가 수행하는 모든 요청을 구조화된 하나의 라인으로 기록하세요: 타임스탬프, 호스트, 경로, 도구 이름, 이를 유발한 세션 또는 작업, 그리고 배후에 있는 에이전트와 모델까지. 이렇게 하면 '평소보다 네 배 빠른 속도로, 폭발적으로'라는 주장을 당신 자신의 데이터를 기반으로 확인할 수 있게 되며, 단순히 받아들이거나 거절할 수밖에 없는 주장(claim)이 아니게 됩니다. 이것 없이는 모두가 뉴스 기사를 읽는 것과 마찬가지로 추측만 하게 될 뿐입니다.
중요한 날에는 에이전트를 계정에서 멀리 두라
특정 날짜(시위, 제품 출시 등)에 계정이 중요하다면, 그날 하루 동안은 에이전트가 로그인 세션에 접근하지 못하도록 하세요.
혹시 실행하던 에이전트 때문에 계정에 플래그가 지정된 적이 있나요? 플랫폼이 이유를 알려주었나요? 댓글로 말씀해주세요.
이 글이 유용했다면
여기서 잘못된 대부분의 부분은 관측 가능성(observability) 격차입니다. 공개 기록상 아무도 어떤 도구가 어떤 요청을, 어느 속도로, 어떤 작업을 위해 보냈는지 말할 수 없습니다. Observability for LLM Applications는 제가 프로덕션 환경에서 추적(tracing), 평가 및 비용 책정하는 LLM 기능에 대한 책으로, 에이전트가 귀하를 대신하여 수행하는 도구 호출까지 포함합니다.
저는 또한 Claude Code와 Codex 같은 코딩 에이전트를 각각의 터미널과 작업 트리(worktree)에서 나란히 실행하는 무료 다운로드 데스크톱 앱인 Hermes IDE를 구축했습니다. 이는 GitHub에 있습니다.
Observability for LLM Applications — the book