카나리아 트릭: Claude(또는 모든 AI 에이전트)가 환각을 시작하기 전에 알아채기

AI 코딩 에이전트가 망가지기 시작하는 순간을 알아내는 한 줄짜리 트릭. 모든 답변을 이름으로 시작하게 하세요. 이름이 사라지면 카나리아가 죽은 것이고, 새 세션을 시작할 때입니다. Claude, Codex, Gemini CLI, Mistral Vibe 등 모든 LLM에서 작동합니다.

AI 코딩 에이전트와의 긴 세션은 한 번에 무너지는 일이 드뭅니다. Claude가 한 번의 대화로 예리한 상태에서 헛소리로 추락하지는 않습니다. 먼저 작은 지시 하나를 슬그머니 건너뜁니다. 한두 차례 뒤에는 지어내기 시작하죠. 존재하지 않는 파일, 애초에 없던 API, 당신이 명시적으로 배제한 결정 같은 것들입니다. 환각으로 만들어진 경로를 알아챘을 무렵이면 이미 최근 몇 번의 답변에 대한 신뢰를 잃었고, 당신의 코드가 아니라 에이전트를 디버깅하고 있게 됩니다.

거의 민망할 만큼 간단하면서도 공짜로 조기 경보를 얻는 방법이 있습니다. '카나리아'라고 부르며, 한 줄로 설정합니다.

에이전트가 탈선하는 이유: 컨텍스트 부패(context rot)

매 차례마다 에이전트는 첫 메시지부터 마지막까지 대화 전체를 다시 읽고, 이해를 처음부터 다시 쌓습니다. 컨텍스트 윈도우가 차오를수록 가장 먼저 무너지는 것이 지시 준수입니다. 모델은 여전히 자신 있게 들리지만, 따라가기 위해 가장 덜 중요한 제약부터 놓아버리기 시작한 것입니다. 연구자들은 이를 「context rot」라 부르고, 그와 관련된 「lost in the middle」 효과도 알려져 있습니다. 컨텍스트가 길수록, 그 안에 묻힌 개별 지시를 모델이 지키는 신뢰도는 낮아집니다.

핵심 통찰이 바로 이것입니다. 성능 저하는 환각에서 시작하지 않습니다. 모델이 작은 지시를 조용히 무시하는 데서 시작합니다. 그러니 사라질 때 눈에 띄는 것만이 유일한 임무인 작은 지시를 심어두면, 진짜 피해가 나기 전에 작동하는 덫줄을 얻게 됩니다.

카나리아 트릭이란 무엇인가

광부들은 예전에 카나리아를 데리고 갱도로 내려갔습니다. 이 새는 사람보다 유독가스에 민감해서, 노래를 멈추면 광부들은 자신이 무언가를 느끼기 훨씬 전에 빠져나가야 한다는 것을 알았습니다.

프롬프트 카나리아도 같은 발상입니다. 에이전트가 매 차례 읽는 파일에 사소한 지시 하나를 추가합니다. 모든 답변을 정해둔 이름으로 시작하라는 것이죠. 그 이름이 당신의 카나리아입니다. 답변 첫머리에 그 이름이 나타나는 한, 모델은 여전히 당신의 지시를 읽고 따르고 있습니다. 이름을 잊은 첫 답변이 세션이 저하되고 있다는 신호이며, 보통 진짜 환각이 나타나기 한두 차례 전입니다. 이 기법은 에이전틱 코딩 커뮤니티에서 OpenClaw의 제작자 Peter Steinberger 같은 개발자들에 의해 널리 알려졌습니다. 이들은 작은 카나리아 신호에 기대어 어긋나기 시작한 세션을 일찍 잡아냅니다.

긴 세션 동안 AI 에이전트의 지시 준수 신뢰도가 떨어지는 모습을 보여주는 곡선. 카나리아 지시는 환각이 시작되기 전에 사라져 조기 경보 구간을 남긴다.

카나리아는 환각이 시작되기 전에 사라진다. 그 틈이 당신이 대응할 수 있는 구간이다.

한 줄로 설정하기

에이전트가 매 차례 불러오는 파일에 지시를 넣으세요.

  • Claude Code는 CLAUDE.md를 읽습니다.
  • Codex, Gemini CLI, Mistral Vibe를 비롯한 대부분의 다른 CLI는 AGENTS.md를 읽습니다.
## 카나리아
모든 답변을 이름 "Felix"로 시작할 것.

짧고 눈에 띄는 이름을 고르세요. 키우는 고양이, 색깔, 답변 첫머리에서 즉시 알아챌 수 있는 것이라면 무엇이든 좋습니다. 무조건 단순하게 유지하세요. 복잡한 지시는 목적에 어긋납니다. 모델이 가장 쉽게 놓아버릴 수 있는 것이어야 하기 때문입니다. 이것조차 떨어져 나간다면, 컨텍스트 속의 더 미묘한 것들은 이미 위태롭습니다.

카나리아가 죽으면 무엇을 할까

이름 자체는 처음부터 핵심이 아니었습니다. 중요한 건 타이밍입니다. 카나리아가 사라지면 지금의 흐름을 밀어붙이지 마세요.

  1. 최근 두세 번의 답변을 더는 믿지 말고 의심의 눈으로 다시 읽으세요.
  2. /clear를 실행하거나 새 세션을 시작하세요.
  3. 중요한 컨텍스트만 다시 주입하세요. 지금 편집 중인 파일, 목표, 그리고 이미 내린 결정입니다.

군더더기 없는 브리핑을 갖춘 깨끗한 윈도우는 비대해진 윈도우를 매번 이깁니다. 진척을 잃는 게 아니라, 모델을 끌어내리던 군더더기를 버리는 것입니다.

판단 루프: 에이전트의 답변을 읽고 이름으로 시작하는지 확인한다. 그렇다면 카나리아는 살아 있으니 작업을 계속한다. 아니라면 카나리아는 죽은 것이니 컨텍스트를 비우거나 새 세션을 시작하고 핵심 컨텍스트를 다시 주입한다.

습관 전체가 하나의 루프에 담긴다. 첫 단어를 흘끗 보고, 판단하고, 계속하거나 초기화한다.

Claude뿐 아니라 모든 모델에서 작동한다

이 트릭은 설계상 공급자에 종속되지 않습니다. Claude, Codex, Gemini CLI, Mistral Vibe, Grok, Aider 모두 같은 컨텍스트 한계를 공유하고, 모두 컨텍스트 파일을 읽으며, 모두 카나리아를 실을 수 있습니다. 우리가 Claude를 먼저 다루는 것은 오늘날 가장 많이 쓰이는 코딩 에이전트이기 때문이지만, 여기 있는 어떤 것도 Claude에만 국한되지 않습니다. 컨텍스트를 채우는 LLM은 무엇이든 당신의 가장 작은 지시부터 놓아버리므로, 같은 카나리아가 그 모두를 지켜줍니다. AGENTS.md 컨텍스트 파일을 운영한다면, 카나리아는 거기에 더하는 한 줄일 뿐입니다.

전체 함대에서 카나리아 지켜보기

답변마다 빠진 이름을 찾는 일은 에이전트가 하나일 때는 쉽습니다. 여러 개를 동시에 돌릴 때는 확장되지 않는데, 오늘날 진지한 작업의 대부분이 바로 그곳에서 이뤄집니다.

그 부분을 AgentsRoom이 쉽게 만듭니다. 멀티 에이전트 콕핏입니다. 각 에이전트는 역할과 실시간 상태 점, 고유한 색을 가지며, 함대 전체를 한 창에서 감독합니다. 공유하는 CLAUDE.mdAGENTS.md에 카나리아를 한 번만 넣으면 모든 에이전트가 이를 물려받습니다. 어떤 에이전트가 이름을 빠뜨리기 시작하면 한눈에 잡아내고, 프로젝트 전체가 아니라 그 한 줄기만 초기화할 수 있습니다. 선택적인 git worktree 격리 덕분에 그러는 동안에도 병렬 에이전트들이 서로 부딪치지 않습니다.

일곱 공급자, 하나의 콕핏, 그리고 그 각각을 지켜보는 카나리아. AgentsRoom 다운로드하고, 각 에이전트가 무엇을 지원하는지 보려면 공급자 호환성 표를, 대화 도중 전환이 컨텍스트를 어떻게 온전히 지키는지는 멀티 공급자 지원을 확인하세요.

AgentsRoom 다운로드

모든 프로젝트에서 Claude 에이전트를 하나의 창에서 실행하세요.

무료AgentsRoom 다운로드

컴패니언 앱: 이동 중에도 에이전트를 모니터링

Claude, Codex, Gemini CLI 또는 다른 AI 공급자를 사용하세요.

확장 프로그램 설치
Chrome Web Store

버그와 요청을 공개 백로그로 바로 보내세요.

AgentsRoom의 실제 모습.

멀티 프로젝트
멀티 프로바이더
멀티 에이전트
실시간 상태
파일 diff & 커밋
모바일 앱
라이브 프리뷰
에이전트 팀
브라우저 자동화
백로그 기반 개발
프롬프트 라이브러리
스킬 라이브러리
모든 기능 보기