AI 에이전트가
환각을 시작하기 전에 잡아내세요
AI 코딩 에이전트와의 긴 세션은 한 번에 무너지는 일이 거의 없습니다. 조용히 지시 하나를 건너뛰고, 한두 턴 뒤에는 존재한 적도 없는 파일이나 API, 결정을 지어냅니다. AgentsRoom canary는 그 컨텍스트 드리프트의 순간을 일찍 포착해, 환각이 코드에 닿기 전에 대응할 수 있게 해줍니다.
에이전트가 이미 만들어내는 신호 위에서 돌아가기 때문에 설정할 것도, 기억할 것도 없습니다. Claude Code, Codex, Gemini CLI를 비롯해 AgentsRoom이 조종하는 모든 공급자가 보호됩니다.

canary가 조용해지면 AgentsRoom이 에이전트 터미널 위에 이 경고를 띄웁니다. 깨끗한 컨텍스트에서 재시작하거나 대화를 압축하세요.
컨텍스트 부패는 긴 에이전트 세션의 조용한 살인자입니다. 매 턴마다 모델은 대화 전체를 다시 읽고 이해를 처음부터 재구성합니다. 컨텍스트 창이 차오를수록 가장 먼저 무너지는 것이 지시 이행입니다. 모델은 여전히 자신만만하게 들리지만, 속도를 맞추려고 가장 덜 중요하다고 판단한 제약부터 버리기 시작한 것입니다.
그것이 canary의 핵심 통찰입니다. 품질 저하는 환각으로 시작하지 않습니다. 모델이 작은 지시 하나를 조용히 무시하는 데서 시작합니다. 사라졌을 때 눈에 띄는 것만이 유일한 임무인 지시를 심어 두면, 진짜 피해가 나기 전에 발동하는 트립와이어를 얻게 됩니다.
AgentsRoom은 이미 모든 에이전트에게 그 지시를 줍니다. 각 에이전트는 매 턴이 끝날 때 한 줄 상태를 기록하는데, 이것이 사이드바와 휴대폰에서 보는 짧은 요약입니다. 그 턴마다의 기록이 바로 canary입니다. 계속 갱신되는 동안에는 에이전트가 여전히 지시를 읽고 따르고 있는 것입니다. 그것이 사라지는 첫 턴들이 당신의 조기 경보입니다.
출력을 지켜보는 것보다 canary가 나은 이유
에이전트가 하나면 모든 답변을 읽고 언제 흔들리는지 느낄 수 있습니다. 병렬로 일하는 에이전트 함대에서는 아무도 모든 응답을 실시간으로 다시 읽지 않습니다. canary는 놓칠 수 없는 수동적 신호를 줍니다.
컨텍스트 부패와 lost-in-the-middle 효과는 잘 문서화되어 있습니다. 컨텍스트가 길수록 그 안에 묻힌 어떤 지시 하나도 모델이 덜 안정적으로 따릅니다. canary는 그 취약함을 눈에 보이는 경보로 바꿉니다.
canary는 환각을 앞서갑니다. 상태는 에이전트가 무언가를 지어내기 시작하기 한두 턴 전에 갱신을 멈추는데, 바로 당신이 대응하고 싶은 그 창입니다.
실행할 테스트도, 입력할 명령도 없습니다. 당신이 다른 에이전트나 다른 프로젝트에서 일하는 동안 감지가 알아서 일어납니다.
canary가 작동하는 방식
각 에이전트가 이미 보고하는 상태 위에 얹은 내장형 조기 경보 루프.
모든 에이전트가 자동으로 canary를 받습니다
AgentsRoom으로 에이전트를 띄우면 세션 지시가 프롬프트에 주입됩니다. 매 턴이 끝날 때 세션 파일에 한 줄 상태를 기록하라는 지시입니다. 당신이 더할 것은 없습니다. canary는 사이드바와 모바일 푸시를 움직이는 바로 그 상태입니다.
AgentsRoom은 각 턴이 시작될 때 상태를 스냅샷합니다
에이전트가 생각하기 시작하는 순간, AgentsRoom은 현재 상태를 기록합니다. 턴이 끝나면 비교할 기준점입니다.
턴이 안정된 뒤 다시 확인합니다
턴이 끝나고 짧은 유예 시간 뒤에 AgentsRoom은 에이전트 세션 파일을 다시 읽습니다. 에이전트가 기록하고 상태 폴러가 그것을 집어 올릴 만큼 충분한 시간이라, 느린 기록이 죽은 canary로 오인되는 일은 없습니다.
갱신을 놓치면 연속 횟수가 올라갑니다
상태가 바뀌지 않았으면 놓친 턴 카운터가 올라갑니다. 에이전트가 새 상태를 기록했으면 카운터는 0으로 돌아가고 어떤 경고든 사라집니다. 조용한 턴 한 번으로는 경보가 울리지 않는데, 짧지만 정당한 턴이 상태를 그대로 둘 수 있기 때문입니다.
조용한 턴이 연속 두 번이면 경고가 뜹니다
에이전트가 두 턴 연속으로 상태를 건너뛰면, 그것은 잡음이 아니라 누락의 명확한 신호입니다. 그 에이전트 터미널 위에 경고 배너가 나타납니다. canary가 죽었고, 에이전트가 드리프트하고 있을 가능성이 큽니다.
깨끗하게 재시작하거나 압축하고, 이어가기
배너는 에이전트를 죽이고 새 컨텍스트에서 다시 띄우는 원클릭 재시작과 함께, 대화를 압축하라는 알림을 제공합니다. 에이전트가 다시 상태를 보고하기 시작하면 경고는 알아서 사라집니다.
탄광의 canary(카나리아), 당신의 AI 세션을 위해
광부들이 갱도로 canary를 데려간 것은 그것이 사람보다 훨씬 먼저 유독 가스에 반응했기 때문입니다. 여기서도 똑같은 발상입니다.
프롬프트 canary는 에이전트가 매 턴 지켜야 하는 사소한 지시입니다. 그것을 지키는 한, 당신은 모델이 여전히 당신의 지시를 처음부터 끝까지 읽고 있음을 압니다. 그것을 잊는 첫 답변이 당신의 트립와이어입니다.
AgentsRoom은 별도의 잔재주를 에이전트에 덧붙이지 않습니다. 각 에이전트가 사이드바와 휴대폰 알림을 위해 이미 기록하는 상태를 재사용하므로, canary는 비용이 들지 않고 설정을 잊을 수도 없습니다.
요점은 결코 상태의 텍스트가 아니었습니다. 타이밍입니다. 빠듯한 브리프가 담긴 깨끗한 컨텍스트 창은 매번 부풀어 오른 창을 이깁니다. canary가 죽었을 때 당신은 진척을 잃는 것이 아니라, 모델을 끌어내리던 죽은 무게를 떨궈내는 것입니다.
상태 추적, 그다음 드리프트 감지
대부분의 콕핏은 에이전트가 일하는 중인지 끝났는지 알려줍니다. canary는 그것이 미끄러지기 시작했음을 알려줍니다.
canary가 없으면
- : 환각으로 지어낸 파일 경로나 잘못된 API를 읽고 나서야 에이전트가 빗나갔음을 알아챕니다.
- : 그때쯤이면 최근 몇 개의 답변은 이미 의심스럽고, 당신은 코드가 아니라 에이전트를 디버깅하고 있습니다.
- : 여러 에이전트를 한꺼번에 돌릴 때, 드리프트하는 하나가 빤히 보이는 곳에 숨습니다.
- : 나쁜 출력이 이미 도착한 뒤, 너무 늦게 재시작합니다.
AgentsRoom canary가 있으면
- : 에이전트가 상태 보고를 멈추는 순간 터미널 위에 경고가 나타납니다.
- : 환각이 시작되기 한두 턴 전에 드리프트를 잡습니다.
- : 전체 프로젝트가 아니라 미끄러진 그 에이전트만 리셋합니다.
- : 깨끗하고 짧은 컨텍스트에서 재시작하면 에이전트가 더 또렷하고 빨라집니다.
사후 부검이 아니라 조기 경보. 그것이 canary의 전부입니다.
왜 새 컨텍스트가 더 나은 에이전트를 만드는가
에이전트에 정보를 쌓을수록 드리프트하고, 환각하고, 느려지는 경향이 커집니다. 대부분 낡은 탐색과 막다른 길, 이미 끝난 질문으로 채워진 컨텍스트 창은 매 턴 모델에게 불리하게 작용합니다.
canary가 죽었을 때, 해결책은 같은 실타래를 더 세게 밀어붙이는 경우가 드뭅니다. 최근 두어 답변을 믿는 것을 멈추고, 대화를 압축하거나 새 세션을 시작해 중요한 것만 다시 주입하세요. 지금 편집 중인 파일, 목표, 그리고 이미 내린 결정 말입니다.
압축은 대화를 요약해 에이전트가 분량 없이 핵심을 간직하게 합니다. 재시작은 깨끗한 백지를 줍니다. 둘 다 빠듯한 브리프로 당신을 되돌리는데, 코딩 에이전트가 가장 잘하는 지점입니다. AgentsRoom canary는 어느 순간이 맞는지 알려줍니다.
이것은 설계상 공급자에 종속되지 않습니다. Claude Code, Codex, Gemini CLI를 비롯한 다른 에이전트 모두 같은 컨텍스트 한계를 공유하고 모두 AgentsRoom을 통해 상태를 보고하므로, 같은 canary가 그 하나하나를 보호합니다. 드리프트 감지는 어느 한 CLI가 아니라 AgentsRoom 안에 있습니다.
canary 플레이북 전체를 읽어보세요
canary 트릭에 대한 심층 분석을 썼습니다. 왜 에이전트가 탈선하는지, CLAUDE.md나 AGENTS.md에 직접 canary를 심는 법, 그리고 그것이 죽는 순간 무엇을 해야 하는지. AgentsRoom은 함대 전체에서 지켜보는 부분을 자동화합니다.
canary 글 읽기FAQ
AgentsRoom의 canary란 무엇인가요?
컨텍스트 드리프트의 조기 경보 신호입니다. 모든 에이전트가 매 턴이 끝날 때 한 줄 상태를 기록합니다. 어떤 에이전트가 두 턴 연속으로 그 상태를 갱신하지 않으면, AgentsRoom은 canary가 죽은 것으로 보고 에이전트가 컨텍스트를 잃고 있을 가능성이 크다고 경고하는데, 보통 환각이 시작되기 전입니다.
설정해야 할 것이 있나요?
없습니다. canary는 모든 AgentsRoom 에이전트가 사이드바와 모바일 알림을 위해 이미 기록하는 턴마다의 상태를 재사용합니다. 에이전트를 띄우면 감지가 켜집니다. 설정할 것도, 기억할 것도 없습니다.
컨텍스트 부패란 무엇인가요?
대화가 길어질수록 모델은 매 턴 모든 것을 다시 읽고 지시 이행이 저하됩니다. 작은 제약부터 조용히 버리다가 환각을 일으킵니다. 지어낸 파일, 잘못된 API, 당신이 배제한 결정 같은 것들이죠. 관련된 lost-in-the-middle 효과는 긴 컨텍스트에 묻힌 지시가 덜 안정적으로 지켜진다는 뜻입니다.
왜 한 턴이 아니라 두 턴을 놓칠 때까지 기다리나요?
짧은 턴 하나는 상태를 그대로 두는 것이 정당할 수 있습니다. 예를 들어 에이전트가 파일만 읽고 짧게 답할 때입니다. 두 턴 연속으로 조용한 것은 에이전트가 실제로 지시 따르기를 멈췄다는 명확한 신호라, 거짓 양성을 낮춥니다.
경고가 나타나면 무엇을 해야 하나요?
두 갈래입니다. 원클릭으로 에이전트를 재시작해 새 깨끗한 컨텍스트를 얻거나, /compact를 입력해 대화를 요약하고 분량 없이 핵심을 간직하세요. 둘 다 에이전트를 빠듯한 브리프로 되돌리는데, 거기서 가장 잘합니다.
Claude뿐 아니라 Codex와 다른 공급자에서도 작동하나요?
네. canary는 모든 AgentsRoom 에이전트가 따르는 세션 상태 프로토콜에만 의존하며, 그 아래의 CLI가 무엇이든 상관없습니다. Claude Code, Codex, Gemini CLI 등 모두 보호됩니다. 감지는 어느 한 공급자가 아니라 AgentsRoom 안에 있습니다.
경고는 저절로 사라지나요?
네. 에이전트가 새 상태를 다시 기록하는 순간 놓친 턴 카운터가 리셋되고 배너는 알아서 사라집니다. 그 세션에 대해 직접 닫을 수도 있습니다.
에이전트를 하나만 돌릴 때도 쓸모가 있나요?
도움이 되지만, 여러 에이전트를 한꺼번에 돌릴 때 진가를 발휘합니다. 에이전트가 하나면 모든 답변을 읽을 수 있습니다. 병렬 함대에서는 아무도 각 응답을 실시간으로 다시 읽지 않으니, 수동적 드리프트 경보가 조용히 저하되는 에이전트를 빠져나가지 못하게 막아줍니다.
canary가 에이전트를 느리게 하나요?
아니요. 에이전트가 매 턴 이미 기록하는 한 줄 상태에 얹혀 갑니다. 추가 프롬프트도, 추가 모델 호출도, 더해지는 지연도 없습니다.
왜 깨끗한 컨텍스트가 에이전트를 더 낫게 하나요?
에이전트가 낡은 컨텍스트를 더 많이 짊어질수록 드리프트하고, 환각하고, 느려집니다. 재시작이나 압축은 죽은 무게를 떨궈내고 에이전트를 짧고 집중된 브리프로 되돌리는데, 코딩 에이전트가 가장 안정적이고 빠른 지점입니다.
이런 것도 좋아할 거예요
에이전트 상태 추적
어떤 에이전트가 생각 중이고, 끝났고, 입력을 기다리는지 보여주는 실시간 색상 표시.
다이내믹 아일랜드
모든 앱 위에 떠 있는, 항상 최상단에 보이는 플로팅 에이전트 상태 표시기.
에이전트 알림
에이전트가 끝나거나 당신의 입력이 필요할 때 뜨는 읽지 않음 배지와 푸시 알림.
토큰 사용량
세션별 토큰 소비와 비용을 실시간으로 보고, 어디서 최적화할지 파악하세요.
프로젝트 통계
프로젝트별, 에이전트별 시간, 프롬프트, 토큰, 비용을 하나의 대시보드에서.
멀티 공급자
Claude Code, Codex, Gemini CLI를 나란히 돌리고 컨텍스트를 잃지 않고 전환하세요.
컨텍스트 드리프트가 대가를 치르게 하기 전에 잡으세요
에이전트 하나가 갈피를 잃기 시작하면 경고해 주는 콕핏에서 AI 코딩 에이전트를 돌리세요. macOS용 AgentsRoom을 다운로드하세요.
컴패니언 앱: 이동 중에도 에이전트를 모니터링
Claude, Codex, Gemini CLI 또는 다른 AI 공급자를 사용하세요.
버그와 요청을 공개 백로그로 바로 보내세요.
AgentsRoom의 실제 모습.