룸의 에이전트에게 전송되는 모든 작업은 R20260906-07과 같은 공개 id와 pending, approved, running, done, failed, cancelled, expired 중 하나의 상태를 가진 요청이 됩니다. id가 존재하는 이유는 채팅 스레드에 있는 사람, 휴대폰을 사용하는 사람, 그리고 승인 카드를 보고 있는 소유자가 모두 동일한 작업에 대해 이야기할 수 있도록 하기 위해서입니다. **재개(resume)**는 작업이 중단된 후 동일한 id 아래에서 해당 요청을 그대로 이어가는 것을 의미합니다.
겉보기에 대단할 것 없는 기반 작업처럼 보일 수 있습니다. 하지만 이는 단순히 "에이전트가 무언가를 하고 있다"는 것과 "Sarah가 요청했고, 당신이 14:02에 승인했으며, 현재 60% 진행 중인 R-07 작업을 에이전트가 수행하고 있다"는 구체적인 차이를 만들어냅니다.
id 구조
R + UTC 날짜 + 일별 카운터 형식입니다. 휴대폰에서도 쉽게 입력할 수 있을 만큼 짧고, 고유한 링크 역할을 하기에 충분합니다. 이 id는 룸, 감사 로그, 채팅 플랫폼 스레드, 승인 카드에 표시됩니다. Feishu나 Slack 커넥터를 사용할 경우, 작업 스레드의 제목에 이 id가 붙습니다. Feishu 연동 설계를 참고하세요.
상태 머신
일곱 가지 상태와 이들 간의 전이 과정; 주황색 점선 경로는 재개(resume)를 나타냅니다.
소유자가 보낸 요청은 pending을 건너뛰고 곧바로 approved 상태가 됩니다.
취소(Cancel), 재시도(Retry), 재개(Resume)
**취소(Cancel)**는 daemon이 도구 호출 사이에 확인하는 플래그를 설정합니다. 실행 중인 요청은 안전한 다음 지점에서 중지되며, 대기열에 있던 요청은 제거됩니다. 특정 사용자나 머신의 권한을 취소(Revoke)하면 해당 대상에 대해 대기 중인 모든 항목이 취소됩니다.
**재시도(Retry)**는 이전 요청을 참조하는 새로운 id를 가진 새 요청을 만듭니다. 룸에는 두 요청이 모두 표시되므로 기록의 투명성이 유지됩니다.
**재개(Resume)**는 다릅니다. 실행 도중 머신이 잠자기 모드로 전환되거나 daemon이 재시작되더라도, 해당 요청은 기존 id와 런타임 세션 참조를 유지합니다. 복귀 시 daemon은 프롬프트를 처음부터 다시 실행하는 대신 동일한 세션을 이어갑니다. 타임라인에는 중복 항목 대신 공백 기간이 표시됩니다. 덕분에 오후 6시에 닫히는 노트북이라도 다른 사람들이 안심하고 사용할 수 있는 에이전트 호스트 머신이 될 수 있습니다.
에이전트별 대기열이 직렬로 처리되는 이유
각 에이전트는 한 번에 하나의 요청만 순서대로 처리합니다. 두 사람이 동시에 같은 에이전트에 요청하면 각각 R-07과 R-08을 받게 되며, R-08은 대기합니다. 동일한 머신에 있는 서로 다른 에이전트들은 병렬로 실행됩니다. 에이전트별 직렬 처리는 작업 디렉터리의 정합성을 유지해 줍니다. 동일한 저장소에 동시에 두 개의 수정 작업이 발생하면 그 누구도 원치 않던 결과가 발생하기 때문입니다.
승인 TTL
아무도 응답하지 않은 승인은 만료되며(기본값 24시간), 아무도 맥락을 기억하지 못하는 다음 날 실행되는 대신 expired 상태로 변경됩니다. 요청자는 재시도할 수 있고, 소유자는 감사 로그에서 만료 내역을 확인할 수 있습니다. 감사 로그에 반드시 기록되어야 하는 항목을 참고하세요.
자주 묻는 질문
새 요청에서 이전 요청을 참조할 수 있나요? 네, 가능합니다. id를 멘션하면 에이전트가 해당 요청의 결과를 컨텍스트로 불러옵니다. 메시지, 출력 결과 또는 요청을 참조하면 매번 처음부터 다시 설명할 필요 없이 후속 작업을 이어갈 수 있습니다.
요청자의 권한을 취소하면 실행 중인 요청은 어떻게 되나요? 실행 중인 요청은 끝까지 완료되어 기록에 남고, 해당 사용자가 대기열에 올린 작업들은 취소됩니다. 실행 중간에 작업을 중단하면 완료하는 것보다 저장소 상태가 더 엉망이 될 수 있기 때문입니다.
id는 전역적인가요, 아니면 룸 단위인가요?
소유자별, 일별로 부여됩니다. 두 명의 소유자가 각각 R20260906-01을 가질 수 있지만, 동일한 룸 내에서는 혼선이 발생하지 않습니다.
재개(Resume)는 Claude Code뿐만 아니라 Codex에서도 동작하나요? 두 런타임 모두 세션 참조를 제공하며, daemon은 이를 요청과 함께 저장하여 작업 재개에 사용합니다.
작업에 명확한 이름을 붙이면 비로소 사람들이 소통할 수 있는 대상이 됩니다. 에이전트를 위한 룸을 만들어 보세요.
게시일