홍드로이드의 야매코딩

AI 에이전트 실행 한도 — 멈추면 결과 글이 아예 없습니다 본문

AI & Vibe Coding

AI 에이전트 실행 한도 — 멈추면 결과 글이 아예 없습니다

홍드로이드 2026. 8. 31. 13:24
반응형

에이전트에게 "이 코드베이스 좀 개선해줘" 같은 열린 일을 시키면 언제 끝날지 모릅니다. 그래서 차례 수나 쓸 돈에 상한을 걸죠. 그런데 공식 문서를 보니 알아둘 게 있었습니다 — 상한에 걸려 멈추면 결과 글 자체가 안 옵니다. 그 칸은 성공했을 때만 채워지거든요. 다행히 이어받을 재료는 남습니다. 정리했습니다.

📌 30초 요약

  • ★★멈추면 결과 글이 안 옵니다 — 성공일 때만 채워집니다.
  • ★그래도 비용·차례 수·세션 번호는 다 옵니다.
  • 한 차례는 도구 왕복이고 마지막 글 응답은 안 셉니다.
  • ⚠️ 대기 중인 메시지는 다음 차례로 넘어갑니다.
  • ★★압축되면 처음에 준 지시가 사라질 수 있습니다.
  • 세션이 죽으면 비용이 0으로 나올 수 있습니다.

한 차례는 도구 왕복입니다

상한을 걸기 전에 "한 차례"가 뭘 세는지 알아야 합니다. 한 차례는 AI가 도구를 부르고, 결과가 돌아가고, 그걸 보고 다시 판단하는 한 바퀴예요. 이 바퀴는 내 코드로 제어권이 돌아오지 않은 채 계속 돕니다.

여기서 직관과 어긋나는 게 하나 — 상한은 도구를 부른 왕복만 세고, 마지막에 도구 없이 글로만 답하는 응답은 안 셉니다. 그래서 상한을 둘로 잡으면 세 번째에 하려던 수정 작업 전에 멈춥니다. "두 번은 할 수 있겠지" 하고 잡으면 생각보다 일찍 끊겨요.

멈추면 결과 글이 아예 없습니다

여기가 이 글의 핵심입니다. 일이 끝나면 마지막 정리 메시지가 오는데, 거기 담긴 결과 글은 성공했을 때만 들어 있습니다. 차례 상한에 걸렸든, 돈 상한에 걸렸든, 도중에 오류가 났든 그 칸은 비어 있어요.

그러니 종료 상태부터 확인하고 결과 글을 읽어야 합니다. 바로 읽으러 가면 빈 값이 흘러들어가 엉뚱한 데서 터집니다. 상태를 갈라 보면 왜 멈췄는지도 함께 알 수 있고요.

끝난 이유 결과 글
정상 완료 있음 — 유일한 정상 경로
차례 상한 도달 없음 — 상한을 올려 이어받기
돈 상한 도달 없음 — 배경 작업까지 멈춤
도중에 오류 없음
틀 맞추기 재시도 초과 없음

🔄 그래도 이어받을 수 있습니다

결과 글은 없어도 비용, 사용량, 돈 차례, 세션 번호는 모든 경우에 함께 옵니다. 그러니 차례 상한에 걸렸다면 상한을 올려 그 세션을 이어받으면 하던 데서 계속됩니다. "실패"가 아니라 "중단"인 셈이죠. 다만 한 번 묻고 끝내는 방식이라면 결과를 내보낸 뒤 예외를 던지니, 계속 돌아야 하는 코드는 감싸두세요. 통로를 열어두는 방식은 세션이 살아 있어 계속 보낼 수 있습니다.

압축되면 처음에 준 지시가 사라집니다

맥락은 차례마다 초기화되지 않고 계속 쌓입니다. 지시문, 도구 정의, 대화 이력, 도구에 넘긴 값과 돌아온 결과가 전부요. 큰 파일 하나만 읽어도 수천 단위를 먹으니 긴 작업일수록 빠르게 찹니다.

한계에 가까워지면 알아서 앞부분을 요약해 자리를 비웁니다. 문제는 여기예요 — 요약으로 바뀌면서 대화 초반에 준 구체적인 지시가 안 남을 수 있습니다. 그래서 문서의 처방이 분명합니다: 계속 지켜야 할 규칙은 첫 프롬프트가 아니라 프로젝트 지시문 파일에 적어두라는 것. 그 파일 내용은 매 요청마다 다시 실리기 때문입니다.

📝 요약할 때 남길 것을 지정할 수 있습니다

덜 알려진 요령입니다. 요약하는 쪽도 프로젝트 지시문 파일을 읽습니다. 그래서 거기에 "요약할 때 이런 것들은 반드시 남겨라"는 항목을 적어둘 수 있어요 — 지금 목표와 완료 기준, 손댄 파일 경로, 시험 결과와 오류 메시지, 내린 결정과 근거 같은 것들요. 제목 이름은 아무래도 상관없고 뜻으로 알아듣습니다. 압축 직전에 기록을 따로 보관하는 장치를 거는 방법도 있습니다.

대기 중인 메시지는 다음 차례로 넘어갑니다

통로를 열어두고 쓰는 경우에만 해당하는 함정입니다. 메시지를 여러 개 보내두면 순서대로 처리되는데, 차례 상한에 걸려 멈추는 순간 아직 줄 서 있던 메시지는 그 차례에 안 들어갑니다.

대신 그 메시지로 새 차례가 시작되고, 상한 카운트도 거기서 다시 셉니다.상한을 걸어뒀는데 메시지를 계속 밀어 넣으면 전체 실행량은 그만큼 늘어납니다. 진짜로 총량을 묶고 싶다면 돈 상한을 함께 거는 쪽이 확실합니다.

💵 그 비용 숫자 자체에도 함정이 있습니다

멈춰도 비용은 함께 온다고 했는데, 그 숫자를 어떻게 읽느냐에도 주의할 게 있습니다. 그 값은 내 컴퓨터에서 계산한 추정치라 실제 청구액과 어긋날 수 있고, 문서는 그 숫자로 사용자에게 청구하거나 금전적 결정을 내리지 말라고 못 박습니다. 직접 합산할 때는 같은 번호를 두 번 세지 않도록 걸러야 하고요.

자주 묻는 질문 (FAQ)

Q. 비용이 0으로 찍힙니다.

세션이 도중에 죽은 경우일 수 있습니다. 그때는 마지막 정리 메시지가 실행 중 오류로 오고, 비용 칸이 비워진 채 프로세스가 끝납니다. 멈춘 이유 값도 비어 있고요. 실제로 쓴 돈이 0인 게 아니니 집계를 그대로 믿으면 안 됩니다. 한 가지 더 — 사용량 칸은 주 흐름만 세니, 하위 작업까지 포함한 전체를 보려면 다른 칸을 봐야 합니다.

Q. 맥락을 아끼는 방법이 있나요?

네 가지가 제시됩니다. 따로 떼어낼 작업은 하위에 맡기고(중간 과정이 본 대화에 안 쌓임), 도구는 꼭 필요한 것만 두고, 외부 서버를 여럿 붙였다면 정의가 매 요청마다 실리지 않는지 확인하고, 단순한 일은 생각 깊이를 낮추는 것. 특히 세 번째는 일을 시작하기도 전에 맥락을 상당히 먹어버릴 수 있어 확인할 값어치가 있습니다.

Q. 거절당한 건지 그냥 끝난 건지 어떻게 아나요?

멈춘 이유를 알려주는 칸이 따로 있습니다. 정상적으로 마쳤는지, 출력 길이 한계에 닿았는지, 모델이 요청을 거절했는지가 값으로 구분돼요. 오류로 끝난 경우에도 직전 응답의 값이 그대로 실려 옵니다. 다만 앞서 말한 세션이 죽은 경우에는 이 값도 비어 있으니, 그것만으로 판단하지 말고 종료 상태와 함께 보세요.

🧾 정직하게 밝혀둘 것

  • 제가 한도를 걸어 오래 굴려본 실측이 아닙니다. 공식 문서의 루프 구조·종료 상태·주의 사항을 우리말로 정리했습니다.
  • ★설정 항목 이름·상태 값 이름·필드 이름·판올림 번호는 옮기지 않았습니다. 실제로 코드를 짤 때는 원문 표를 보세요.
  • ★"실패가 아니라 중단"이라는 정리는 제 표현이고, 문서는 각 종료 상태에서 무엇이 오는지를 밝힙니다.
  • 기본값과 동작은 판올림마다 바뀝니다. 상한 적용 범위처럼 최근에 정해진 항목이 있습니다.

✨ 정리하면

상한에 걸려 멈추면 결과 글이 아예 안 옵니다 — 종료 상태부터 확인하고 읽으세요. 대신 비용과 세션 번호는 남으니 상한을 올려 이어받을 수 있습니다. 한 차례는 도구 왕복만 세고, 맥락이 차서 압축되면 처음에 준 지시가 사라질 수 있으니 지켜야 할 규칙은 프로젝트 지시문 파일에 적어두세요. 하위에 맡겨 맥락을 아끼는 방법은 하위 에이전트 정리, 격리와 키 보호는 보안 격리 정리, 큰 맥락과 가격 이야기는 Grok 4.3 정리, 전체 비용 흐름은 AI 지출 관리 허브에 모아뒀습니다.

※ 출처: Claude 에이전트 개발 도구의 실행 루프 공식 문서(2026년 8월 31일 열람). 기본값과 상한 동작은 판올림마다 달라질 수 있습니다.

반응형
Comments