ZeroClaw는 중단된 스트림을 절대 재개하지 않습니다. 턴을 다시 전송하는지는 프로필에 후보가 몇 개 있는지에 달려 있으며, 현재 유일한 릴리스에서는 문서가 약속하는 내용과 정확히 일치하지 않습니다. v0.8.5의 ZeroClaw 문서(2026년 9월 5일 게시)에 따르면 출력이 나오기 전에 실패한 스트림은 스트리밍 없이 재시도되고, 출력 후 실패한 스트림은 절대 재생되지 않습니다. 2026년 10월 1일 스트림이 응답 중간에 끊기는 엔드포인트에서 실행했을 때 v0.8.5의 터미널 클라이언트는 더 단순하게 동작했습니다. 후보가 하나일 때는 텍스트가 표시되기 전이나 후나 재시도가 전혀 없었고, 두 번째 후보가 있을 때는 화면에 답변 일부가 이미 표시된 후에도 두 번째 모델로 스트리밍 없이 턴을 다시 전송했습니다. 부분 출력 이후의 안내된 복구는 아직 설계 승인을 받지 못한 공개 기능 요청입니다. 따라서 유용한 질문은 ZeroClaw가 재시도하도록 만드는 방법이 아니라, 해당 턴을 다시 보내도 안전한지와 중단된 시도가 이미 어떤 비용을 발생시켰는지입니다.
이 내용이 실제로 적용되기 전에 범위에 관한 두 가지 사항을 확인해야 합니다. 실행 범위는 좁았습니다. 대화형 터미널 모드의 v0.8.5 릴리스 바이너리, OpenAI 호환 엔드포인트 하나, 스트림을 의도적으로 닫은 로컬 테스트 서버를 사용했으며 — 결과는 아래와 같습니다. Channels, 게이트웨이 WebSocket, RPC, ACP, Anthropic 슬롯 및 실제 공급업체 장애는 실행하지 않았습니다. 그 외 모든 주장은 2026년 9월 21일에 릴리스 태그 v0.8.5의 저장소, 버전이 고정된 문서 docs.zeroclaw.com/v0.8.5/ 또는 날짜가 명시된 업스트림 이슈 보고서에서 확인했습니다. 그리고 이 URL은 직접 고정하세요. README는 릴리스보다 HEAD가 16일 앞서 있고 정확히 이 주제에서 릴리스와 모순되는 /master/ 경로로 독자를 보내며, /latest/는 404를 반환합니다. 여기서 ZeroClaw는 zeroclaw-labs/zeroclaw 런타임을 의미합니다. 실행 중인 것이 이것인지 확실하지 않다면 ZeroClaw와 OpenClaw 비교에서 같은 이름을 공유하는 프로젝트 및 포크와 구분할 수 있습니다.
v0.8.5의 네 가지 표식, 그중 네트워크를 나타내는 것은 하나뿐
무엇이든 결정하기 전에 실제로 받은 표식을 확인하세요. v0.8.5의 ZeroClaw 영어 로케일 파일은 턴이 짧게 종료될 때 assistant 출력에 추가되거나 저장되고, channels, WS, RPC, ACP 및 CLI 등 모든 전송에서 최종 사용자에게 표시되는 서로 다른 Fluent 키로 다음 항목을 정의합니다.
| 표식 | Fluent 키 | 이 표식이 알려 주는 내용 |
|---|---|---|
[stream interrupted] | turn-stream-interrupted | 전송 스트림이 턴 도중 중단되었습니다. 아무도 중지 버튼을 누르지 않았습니다. |
[interrupted by user] | turn-interrupted-by-user | 사람에 의한 중단입니다. |
[turn cancelled via client] | turn-cancelled-client-rpc | 행위자가 아니라 채널입니다. 자체 코드 주석에 따르면 사람에 의한 중단과 프로그래밍 방식의 클라이언트 취소가 모두 이 경로로 들어오므로, 문구는 채널을 나타냅니다. |
[interrupted by user before this tool produced a result] | turn-tool-interrupted-before-result | 도구가 결과를 반환하기 전에 중단되었습니다. |
다섯 번째 키인 turn-failed = [turn failed]는 master의 동일한 파일에 존재하지만 v0.8.5의 로케일 파일에는 없으므로 출시된 빌드에서는 이를 출력하지 않습니다. 이후에 무엇을 읽을 수 있는지를 바꾸므로 알아둘 만한 동작이 하나 있습니다. 턴 엔진은 부분 텍스트가 비어 있지 않은 경우에만 표식을 덧붙인 부분 텍스트를 저장합니다. 추론 또는 공급업체 측에서 사전 실행된 도구 이벤트를 생성했지만 표시 가능한 텍스트가 없는 턴은 전혀 저장되지 않습니다. 코드 주석은 저장을 소비자가 이미 본 내용을 커밋하는 것으로 설명합니다. 다른 로케일에는 번역된 값과 함께 동일한 키가 있으므로, 영어가 아닌 설치에서 표시되는 것은 영어 대괄호 문자열이 아닙니다.
재시도 경계가 실제로 위치한 곳
전체 결정은 한 가지 질문으로 귀결됩니다. 어떤 내용이라도 이미 변경 불가능한 이벤트 싱크에 도달했나요?
| 무슨 일이 있었나 | v0.8.5에서 문서화된 동작 | 주의사항 |
|---|---|---|
| 표시 가능한 출력이 나오기 전에 스트림이 실패함 | 런타임은 비스트리밍 경로를 통해 전체 호출을 재시도하고, 전체 안정성 순회에 다시 진입합니다. | 문서화되어 있지만 출시된 빌드의 단일 후보 설정에서 관찰된 동작은 아닙니다. 아래를 참조하세요. |
| 최종 텍스트와 도구 호출 없이 스트림이 완료됨 | 답변이 아닌 의미상 빈 응답입니다. 결과가 재생 안전으로 표시되고 provider_retries가 0이 아니면, 정확히 동일한 공급업체와 모델에 대한 비스트리밍 복구 호출을 한 번 실행합니다. | pull request #10602를 통해 v0.8.5에 포함되었고 2026년 9월 4일 병합되었습니다. 빈 스트림에 적용되며 출력 중간에 끊긴 스트림에는 적용되지 않습니다. |
| 텍스트, 추론 또는 사전 실행된 도구 이벤트가 이미 변경 불가능한 이벤트 싱크에 도달함 | StreamInterruptedAfterOutput. 런타임은 요청을 재생하지 않으며, 소비자에게 이미 전달된 텍스트만 지속되는 부분 어시스턴트 텍스트가 됩니다 | 마스터 브랜치에서 의도적으로 동일하게 동작합니다. 표시된 출력 이후의 스트림 오류는 대체 재시도 없이 해당 턴을 실패시켜야 한다는 회귀 테스트로 고정되어 있습니다 |
| 위 항목 중 어느 것이든 | 스트림은 한 번만 열리며, 시작된 후에는 항목이 전환되지 않습니다 | 복구는 항상 새 요청으로 이루어집니다. 사용자 지정 슬롯을 포함한 어떤 공급자 제품군에도 재개 경로가 없습니다 |
실제로 존재하는 조정 항목은 엔드포인트별이 아니라 전역 설정입니다. [reliability]에는 provider_retries(문서화된 기본값 2)와 provider_backoff_ms(기본값 500)가 있으며, 수명 주기 문서에는 각 구체화된 항목이 최대 provider_retries + 1번 시도된다고 명시되어 있습니다. v0.8.5 구성 참조에는 이 설정들과 함께 공급자별 또는 별칭별 재시도 재정의가 문서화되어 있지 않습니다. 키 풀에도 기대지 마십시오. v0.8.5 문서에 따르면 현재 reliability.api_keys는 작동하는 장애 조치가 아닙니다. 래퍼는 재시도 가능한 속도 제한 후 대체 키를 선택하고 로그에 기록하지만, 이를 생성된 공급자에 적용할 수 없으므로 재시도도 원래 자격 증명을 사용합니다. 복구를 기대하고 추가한 두 번째 키도 복구를 제공하지 않습니다
하나의 엔드포인트를 가리키는 구성이 가장 큰 영향을 받습니다
단일 게이트웨이 또는 단일 공급자 엔드포인트에 대해 ZeroClaw를 실행하는 경우 가장 분명한 경계입니다. 엔드포인트 하나는 정의상 후보가 하나뿐인 안정성 구성이기 때문입니다. Issue #10736은 릴리스 빌드에서 이러한 형태의 출력 전 스트림 실패가 비스트리밍 채팅으로 대체한다고 로그에 기록한 뒤 실제로는 전송하지 않아, All model providers/models failed after 0 failure event(s)와 함께 해당 턴을 종료한다고 보고합니다. 이 이슈는 v0.8.5가 게시된 후인 2026년 9월 18일에 종료되었으므로 수정 사항은 마스터 브랜치에만 있습니다. 2026년 10월 1일 실행에서 릴리스된 v0.8.5는 이슈 설명과 정확히 동일하게 동작했습니다. 요청 하나를 보낸 뒤 오류가 발생했으며, 스트림이 텍스트가 표시되기 전이나 후에 중단되었는지는 관계없었습니다
여기에는 서로 일치하지 않는 두 가지 공식 입장이 있으며, 둘 다 반영할 가치가 있습니다. v0.8.5 아키텍처 문서는 비스트리밍 재시도를 약속하지만, 이슈는 릴리스 빌드가 이를 수행하지 않음을 보여 주며, 예상 동작 섹션은 실제로 대체 요청을 시도할 경우에만 로그에 대체 요청을 한다고 표시해야 한다고 요구합니다. 이후 마스터에는 릴리스에 없는 단일 후보 복구 허용이 추가되었습니다. 또한 이슈 #10787은 이 허용이 RetryDecision::Admit(0)로, provider_retries와 무관하게 백오프 없이 부여되었다고 밝혔습니다. 그 결과 과부하된 업스트림으로 동일한 과부하 구간에 요청이 즉시 다시 전송되었습니다. 이 이슈는 v0.8.5 이후 마스터에서 2026년 9월 26일 완료로 종료되었으므로 어떤 릴리스에도 없습니다. 마스터의 동작은 여전히 변경 중이므로 이를 기준으로 계획하지 마십시오.
문서화된 완화 방법은 설정을 바꾸는 것이 아니라 구성을 바꾸는 것입니다. 안정성 순회가 이동할 수 있도록 프로필에 두 번째 후보를 지정하십시오. 2026년 10월 1일 v0.8.5 터미널 실행에서는 이것이 작동했지만, 의존하기 전에 알아둘 중요한 단서가 있습니다. 복구 요청은 첫 번째 모델이 아니라 두 번째 모델로 전송되므로, 중단 후 받는 답변은 대체 모델에서 나옵니다. ZeroClaw API 비용 및 설정 가이드에서 해당 항목을 넣는 구성 형식을 다룹니다
스트림이 중단되었을 때 v0.8.5가 수행한 작업
2026년 10월 1일, 릴리스의 SHA256SUMS에 대해 체크섬을 검증한 v0.8.5 릴리스 바이너리를 스트리밍 모드인 대화형 터미널 모드로 임시 컨테이너에서 실행했습니다. 단일 메시지 -m 모드는 비스트리밍 요청 하나를 보내므로 이 경로에 도달하지 않습니다. 하나의 OpenAI 호환 사용자 지정 슬롯 프로필인 provider_retries = 2는 정상적인 스트림으로 응답한 뒤 첫 이벤트 전이나 텍스트 청크 하나 이후에 [DONE] 없이 연결을 닫는 로컬 테스트 서버를 가리켰습니다
| 프로필 | 스트림이 중단된 위치 | 전송된 요청 | 터미널에 표시된 내용 |
|---|---|---|---|
| 후보 하나 | 텍스트가 표시되기 전 | 스트리밍 요청 하나, 재시도 없음 | 오류: 선택한 모델 공급자에 실패했습니다. 공급자 구성을 검토하거나 다른 공급자를 선택하십시오. 로그: 모든 모델 공급자/모델이 0개의 실패 이벤트 후 실패했습니다 |
| 후보 하나 | 텍스트가 출력된 후 | 스트리밍 요청 하나, 재시도 없음 | 부분 텍스트가 표시된 뒤 동일한 오류가 발생했습니다. [stream interrupted] 마커는 출력되지 않았습니다 |
두 번째 모델과 함께 fallback_models 추가 | 텍스트가 표시되기 전 | 스트리밍 요청 후 두 번째 모델로 비스트리밍 요청 하나 | 두 번째 모델의 응답 |
두 번째 모델과 함께 fallback_models 추가 | 텍스트가 출력된 후 | 동일한 두 요청 | 부분 텍스트 뒤에 두 번째 모델의 전체 응답이 이어졌으므로 답변이 두 번 표시됩니다 |
v0.8.5에서 터미널로 ZeroClaw를 실행하는 경우 세 가지 결과가 따릅니다. 단일 후보 실패는 재현된 #10736이며, provider_retries는 이를 바꾸지 않았습니다. 문서화된 "표시된 출력 후 재생하지 않음" 경계도 여기에는 적용되지 않았습니다. 터미널에 이미 텍스트가 출력되었어도 재전송이 중단되지 않았으므로, 절반쯤 도착한 것을 직접 본 턴이 다른 모델로 다시 전송될 수 있습니다. 또한 턴 로그는 첫 번째 모델을 해당 턴의 모델로 기록했지만 텍스트는 두 번째 모델에서 왔습니다. 이는 v0.8.5 자체 문서가 경고하는 귀속 불일치입니다. 이 실행이 다루지 않는 항목은 Telegram이나 Slack 같은 채널, 게이트웨이 WebSocket, RPC 및 ACP 클라이언트(이벤트 싱크에 재생 금지 규칙이 적용되는 전송 방식), Anthropic 슬롯, 실제 공급자 장애, 그리고 Kunavo를 통한 모든 요청입니다
다시 보내기 전에: 이미 실행된 것과 이미 청구된 것
ZeroClaw 자체의 도구 루프는 스트림을 끝까지 읽고, 스트림이 끝난 후 도구 호출을 복구하여 실행한 다음, 다음 어시스턴트 턴을 위해 새로운 스트리밍 호출을 엽니다. 따라서 중단된 반복에서 요청된 도구는 실행되지 않았습니다. 그러나 이는 생각보다 제한적인 안도감입니다. 공급자 측에서 사전 실행된 도구 호출은 이미 업스트림에 영향을 미친 별도의 이벤트 유형이므로 재생을 차단합니다. 또한 긴 턴은 늦게 중단됩니다. #10736은 실패 전에 앞선 도구 호출이 성공적으로 완료되었다고 기록하고, #10787의 로그는 요청에 126개의 메시지가 포함된 반복 2에서 중단이 발생했음을 보여 줍니다. 원래 프롬프트를 다시 보내면 모델이 반복할 모든 이전 부작용도 재생됩니다
깔끔해 보이는 트랜스크립트도 증거가 아닙니다. Anthropic 및 OpenAI 호환 공급자 제품군 모두에 대해 우선순위 p1로 열려 있는 이슈 #9421의 제목은 불완전한 터미널 응답이 성공으로 보고될 수 있다는 것입니다. Code/ACP에서는 추가로 열려 있는 p1 보고 두 건이 각각 실패한 턴이 영구 저장된 기록에서 수락된 프롬프트와 완료된 도구 교환을 삭제하는 문제(#10788)와 예산을 초과한 턴이 세션 복원 후 눈에 보이던 진행 상황을 잃는 문제(#10659)를 설명하며, 중단된 턴의 진행 상황을 영구 저장하기 위한 풀 리퀘스트는 여전히 병합되지 않았습니다. 모두 2026년 9월 21일에 열려 있었고 몇 건은 진행 중으로 표시되어 있으므로, 이 스냅샷을 인용하기보다 다시 확인하십시오.
비용 측면에서 v0.8.5와 마스터는 실제로 의견이 다르므로 사용 중인 빌드에 맞는 내용을 읽어야 합니다. 릴리스 문서는 최종 기록을 모든 시도의 정식 원장이 아닌 성공 알림이라고 부르며, 이를 통해 시도별 비용의 정확성을 추론하지 말라고 합니다. 마스터는 이 문단을 2026년 9월 18일에 병합된 풀 리퀘스트 #8966에서 도입된 시도별 usage_by_provider 원장으로 대체했지만, 이는 어떤 릴리스에도 포함되지 않았고 마스터 자체도 이벤트가 계측된 턴 경로로 범위를 제한합니다. 한편 중단된 스트림의 사용량 스냅샷은 없을 수 있는 선택적 필드이며, ZeroClaw는 OpenAI 호환 엔드포인트에 최종 SSE 청크로 사용량을 보내도록 요청합니다. 잘린 스트림은 이 청크를 보내지 않을 수 있습니다. 이 마지막 사항은 자체 비용 출력에서 확인할 메커니즘으로 취급하고 측정된 결과로 간주하지 마십시오. 대신 엔드포인트 자체의 사용량 기록과 대조하십시오. Kunavo에서는 이것이 사용량 로그입니다.
모델 앞에 게이트웨이를 두면 이 마커가 생성되는 이유
가장 가능성 높은 타사 원인은 완료 신호가 도착하지 않는 것입니다. ZeroClaw의 v0.8.5 스트리밍 문서는 전송 방식이 연결 종료를 성공 신호로 사용하지 않는다고 명시합니다. OpenAI 호환 스트림은 [DONE]에서, OpenAI Responses 스트림은 종료 응답 이벤트에서, Anthropic 스트림은 message_stop에서 종료되며, 서버는 이러한 이벤트 후에도 HTTP 연결을 열어 둘 수 있습니다. 신호 없이 닫히는 스트림은 짧은 성공이 아니라 오류(SSE stream closed before {completion_signal}: response truncated)로 표시됩니다. 이는 ZeroClaw가 아니라 엔드포인트의 결함입니다. 한 가지 예외가 문서화되어 있습니다. Anthropic 파서는 현재 비어 있지 않은 message_delta.stop_reason 뒤의 EOF를 message_stop 없이도 완료로 처리하며, 이를 요구하자는 풀 리퀘스트는 어느 ref에도 반영되지 않았습니다
두 번째 원인은 열린 소켓에서 침묵이 지속되는 것입니다. ZeroClaw는 전체 요청 제한 시간이 아니라 바이트 유휴 시간 제한을 사용하며, 문서화된 값은 OpenAI Responses 및 OpenAI 호환 공급자에서 300초, Anthropic에서 90초입니다. 각 본문 읽기는 타이머를 재설정합니다. 업스트림 응답을 버퍼링하면서 1분 30초 동안 아무것도 전달하지 않는 엔드포인트는 Anthropic 제품군 슬롯에서는 시간 초과를 발생시키지만 OpenAI 호환 슬롯에서는 살아남습니다. Anthropic Messages 엔드포인트가 anthropic 슬롯에 uri 재정의와 함께 들어가며 custom에는 들어가지 않는다는 점에서 알아둘 가치가 있습니다. 두 와이어 프로토콜은 Messages 기본 URL 문서와 OpenAI 호환 API를 참조하십시오
중단된 턴의 비용: 예시 산술
두 가지 청구를 분리하십시오. ZeroClaw 런타임은 $0입니다. zeroclaw.com에 따르면 ZeroClaw는 오픈 소스이며 MIT 또는 Apache-2.0 이중 라이선스를 사용하고, 구독이나 호스팅 좌석이 없으며, 자체 LLM 공급자 비용만 지불하면 됩니다. Ollama로 로컬 모델을 실행하면 비용이 전혀 없습니다. 재개, 더 큰 재시도 예산 또는 안내된 복구를 잠금 해제하는 요금제는 없습니다. 요금제 자체가 없기 때문입니다
중단의 영향을 받는 것은 모델 비용입니다. 이 수치는 측정된 작업 비용도, 청구 상한도 아닌 가정에 기반한 토큰 산술입니다. 한 번의 턴에서 캐시되지 않은 입력 토큰 110,000개를 전송하고 — 이는 #10787에 기록된 날짜가 명시된 단 한 건의 과부하 사례에서 사용된 프롬프트 크기이며, 당시 업스트림은 요청을 수락하고 프리필을 실행한 뒤 과부하로 요청 처리를 중단했습니다 — 스트림이 끊기기 전에 출력 토큰 2,000개를 받는다고 가정하십시오. 세 번 시도하는 열은 문서화된 기본값 2에서 provider_retries + 1입니다. 요금은 백만 토큰당 Kunavo 카탈로그의 현재 가격입니다.
| 모델 | 1M당 입력 / 출력 | 실패한 시도 1회 | 시도 3회 |
|---|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $0.084 | $0.252 |
| GPT-5.6 Terra | $0.70 / $4.20 | $0.085 | $0.256 |
| Claude Sonnet 4.6 | $2.10 / $10.50 | $0.252 | $0.756 |
| Claude Opus 5 | $3.50 / $17.50 | $0.420 | $1.260 |
특정 엔드포인트가 중단한 요청에 대해 비용을 청구하는지는 해당 엔드포인트의 자체 청구 정책이며, ZeroClaw의 소스나 문서 어디에도 명시되어 있지 않습니다. 이 페이지는 어떤 공급자에 대해서도 이를 측정하지 않았습니다. 여기의 산술은 질문의 규모를 파악하기 위한 것이지 답을 제시하기 위한 것이 아닙니다. Kunavo 카탈로그 금액은 상한이 아니라 청구 하한입니다. 업스트림이 비용을 보고하면 청구액은 카탈로그 비용과 해당 마크업을 적용한 업스트림 비용 중 더 큰 금액입니다. 최소 충전액은 선불 크레딧 $10입니다. 이는 작업 요금이나 구독료가 아니라 자금 충전 최소액입니다. 청구 세부 정보를 참조하십시오
이 장애에 가장 잘 견디는 경로
| 경로 | 스트림 중간 중단 시 동작 | 포기해야 하는 것 |
|---|---|---|
| 엔드포인트 하나, 직접 공급자 | 단일 후보 안정성 구성이므로 v0.8.5에서 #10736이 보고한 범위에 포함됩니다 | 자사 공급자라는 사실은 순회 방식을 바꾸지 않습니다. 후보 하나는 후보 하나입니다 |
| 엔드포인트 하나, 게이트웨이 | 동일한 단일 후보 형태입니다. 여기서 게이트웨이가 제공하는 것은 하나의 키와 하나의 잔액으로 모델을 전환하는 기능이지 스트림 복원력이 아닙니다 | 완료 신호 없이 자체적으로 닫힐 수 있는 추가 홉이며, ZeroClaw는 사용자가 직접 [cost.rates] 항목을 작성한 경우에만 이에 가격을 매깁니다 |
| 프로필에 후보가 두 개 이상 있음 | 안정성 순회가 이동할 곳이 있습니다. 2026년 10월 1일 터미널 실행에서는 초기 중단과 응답 중간 중단 모두 후에 두 번째 모델을 통해 복구되었습니다 | 유지 관리해야 할 두 번째 모델 또는 별칭과, 첫 번째 선택이 아니라 대체 모델에서 오는 복구된 답변 |
| Ollama를 통한 로컬 모델 | 재전송에는 비용보다 시간과 하드웨어가 들므로 보수적인 재시도는 저렴합니다 | 호스팅 프론티어 모델과의 기능 격차와 이를 실행할 머신 |
| 정액제 구독 에이전트 | ZeroClaw 경로가 아닙니다. 프로젝트에는 구독도 호스팅 좌석도 없습니다 | ZeroClaw의 복구 동작이 아니라 클라이언트를 바꾸게 됩니다 |
무엇을 선택하든 운영 규칙은 ZeroClaw가 이미 인코딩한 규칙입니다. [stream interrupted] 후에 지속된 부분을 읽고, 이미 적용된 내용을 확인한 다음 원래 요청보다 더 좁은 내용을 다시 보내십시오. OpenAI 호환 및 Messages 스타일 엔드포인트에 대한 Kunavo 구성 참조는 호환성 테스트가 아니라 설정 문서입니다. 위의 10월 1일 실행에서는 Kunavo가 아닌 로컬 테스트 서버를 사용했습니다. 오류 참조에서 엔드포인트가 반환한 내용을 해석하고, 키에 자금을 충전할 준비가 되면 Kunavo 계정 만들기를 시작하십시오. 위의 단일 후보 대 다수 후보 결정에는 OpenRouter와 LiteLLM 비교가 가장 가까운 비교 자료입니다
자주 묻는 질문
ZeroClaw는 중단된 스트림을 재시도하나요?
이미 출력을 확인했는지에 전적으로 달려 있습니다. 출시된 v0.8.5의 ZeroClaw 공급업체 라우팅 문서에 따르면 스트림은 한 번 열리고 시작된 후에는 항목이 전환되지 않으므로 아무것도 재개되지 않습니다. 복구가 존재하는 경우에도 완전히 새로운 요청입니다. 변경할 수 없는 이벤트 출력이 하나도 표시되기 전에 스트림이 실패하면 런타임은 비스트리밍 경로를 통해 전체 호출을 재시도하는 것이 문서화된 동작입니다. 텍스트, 추론 또는 사전 실행된 도구 이벤트가 변경 불가능한 이벤트 싱크에 도달하면 중단은 StreamInterruptedAfterOutput이 되며 런타임은 요청을 재생하지 않습니다. 두 번째 규칙은 master에서도 동일합니다. 그러나 2026년 10월 1일 v0.8.5의 대화형 터미널 클라이언트에서 실행했을 때는 두 규칙 모두 문서에 적힌 대로 나타나지 않았습니다. 후보가 하나일 때는 텍스트가 표시되기 전이나 후나 아무것도 재시도되지 않았고, fallback_models에 두 번째 후보를 넣었을 때는 두 경우 모두, 답변 일부가 출력된 후에도 해당 두 번째 모델로 스트리밍 없이 턴이 다시 전송되었습니다. Channels와 게이트웨이 WebSocket은 실행하지 않았습니다. 문서는 2026년 9월 21일에 확인했습니다.
ZeroClaw에서 [stream interrupted]는 무엇을 의미하나요?
이는 턴 도중 전송 스트림이 중단된 것을 사용자에게 표시하는 표식입니다. ZeroClaw의 영어 로케일 파일에서는 Fluent 키 turn-stream-interrupted로 정의되어 있으며 channels, WS, RPC, ACP 및 CLI 등 모든 전송에서 표시됩니다. 이는 [interrupted by user] 및 [turn cancelled via client]와 의도적으로 다른 표식이므로, 이 표식이 보인다면 아무도 중지 버튼을 누르지 않았다는 뜻입니다. 표시 가능한 출력이 나온 후 스트림이 중단되면 부분 텍스트가 표식과 함께 assistant 메시지로 저장되지만, 해당 부분 텍스트가 비어 있지 않은 경우에만 그렇습니다. 추론만 생성했거나 사전 실행된 도구 이벤트만 생성한 턴은 아무것도 저장하지 않습니다. 영어가 아닌 설치에서는 동일한 키에 번역된 텍스트가 포함되므로 영어 대괄호 문자열만 검색하지 마세요. 2026년 9월 21일 릴리스 태그 v0.8.5에서 확인했습니다. 2026년 10월 1일 v0.8.5의 대화형 터미널 클라이언트에서는 응답 중간에 스트림이 끊겨도 이 표식이 출력되지 않았고 대신 터미널에 공급업체 실패 오류가 표시되었습니다.
ZeroClaw 스트림이 중단된 후 프롬프트를 그냥 다시 보내도 안전한가요?
자동으로 안전한 것은 아니며 ZeroClaw의 유지관리자들도 그렇게 취급합니다. 런타임은 스트림을 끝까지 읽고 종료 후 도구 호출을 복구한 다음 실행하므로, 중단된 반복의 도구는 실행되지 않았습니다. 그러나 긴 턴은 이후 반복에서도 중단될 수 있습니다. 한 업스트림 보고서에서는 이전 도구 호출이 성공적으로 완료된 후 실패했다고 하며, 다른 로그에서는 요청에 126개의 메시지가 있는 반복 2에서 중단이 발생했습니다. 이전 반복에서 이미 수행된 모든 작업—파일 작성, 명령 실행, 메시지 전송—은 같은 프롬프트를 무작정 다시 보내면 다시 발생합니다. 안내된 복구를 위한 아직 열려 있는 기능 요청은 도구 또는 승인이 포함된 턴을 맹목적으로 재생하는 것과 모든 공급업체 오류를 일시적인 것으로 취급하는 것을 자체적인 비목표로 명시합니다. 먼저 저장된 부분 텍스트를 읽고 이미 적용된 사항을 확인한 다음, 원래 프롬프트가 아니라 범위를 좁힌 프롬프트를 다시 보내세요.
중단된 스트림을 재개하도록 ZeroClaw를 구성할 수 있나요?
아니요. 출시된 어떤 버전에도 이를 위한 설정이 없고, 이를 잠금 해제하는 유료 단계도 없습니다. ZeroClaw는 무료 오픈 소스이며 MIT OR Apache-2.0 이중 라이선스를 사용하고, 구독이나 호스팅 좌석이 없으므로 이 제한은 플랜의 경계가 아니라 엔지니어링 경계입니다. 표시 가능한 출력 이후 재생하지 않는 규칙은 소스에 있으며, 자체 회귀 테스트로 고정되어 있습니다. 테스트의 실패 메시지는 표시 가능한 출력 이후 스트림 오류가 발생하면 폴백 재시도 없이 턴이 실패해야 한다고 명시합니다. 다만 2026년 10월 1일 v0.8.5의 대화형 터미널 클라이언트에서는 두 번째 후보가 있는 프로필이 텍스트 출력 후 다시 전송했으므로, 모든 전송에서 이 규칙이 보장되는 것은 아닙니다. 중단된 턴 이후의 안내된 복구는 issue #10634이며, 2026년 9월 21일 기준으로 열려 있고 status:accepted 및 priority:p2로 표시되어 있으며 먼저 needs design 또는 RFC 논의로 전달된 상태입니다. Accepted는 트리아지가 문제 설명을 수락했다는 뜻이지 코드가 작성되었거나 병합되었다는 뜻은 아닙니다.
로그에 비스트리밍 채팅으로 폴백한 다음 턴이 중단된다고 표시됩니다. 왜 그런가요?
출시된 v0.8.5에서는 해당 로그 줄이 사실이 아닐 수 있습니다. 출력 전 스트림 실패가 명시된 비스트리밍 폴백을 건너뛴다는 제목의 업스트림 issue #10736은 런타임이 비스트리밍 채팅으로 폴백한다고 로그에 기록하지만 비스트리밍 요청을 보내지 않고, All model providers/models failed after 0 failure event(s) 오류와 함께 턴이 즉시 종료된다고 보고합니다. 이슈 자체의 영향 범위는 단일 공급업체 후보 사용자, 특히 재시도가 0회인 구성을 대상으로 합니다. 재시도 0회가 유일한 경우는 아닙니다. 재현 설정은 provider_retries = 0이지만, 후속 issue #10787은 provider_retries를 문서화된 기본값 2로 둔 상태에서도 동일한 즉시 실패를 재현합니다. 이슈는 v0.8.5가 2026년 9월 5일 게시된 후인 2026년 9월 18일에 종료되었으므로, 게시된 릴리스에는 수정 사항이 포함되어 있지 않습니다. 2026년 10월 1일 v0.8.5에서 재현했습니다. provider_retries = 2인 상태에서 스트림이 텍스트 표시 전 또는 후에 끊긴 경우 모두 스트리밍 요청 하나만 전송되었고 비스트리밍 후속 요청 없이 해당 오류가 발생했습니다. fallback_models에 두 번째 모델을 추가하는 것만으로 턴이 복구되었습니다. v0.8.5에서 로그로 이를 디버깅한다는 것은 발생하지 않은 폴백을 읽는다는 뜻입니다.
중단된 턴에 대해 요금이 청구되었나요? 어떻게 확인하나요?
ZeroClaw의 사용량 기록이 아니라 엔드포인트 자체의 사용량 기록을 확인하세요. v0.8.5의 문서에서는 시도별 수치를 신뢰하지 말라고 안내합니다. 최종 폴백 알림은 성공 알림이지 모든 시도의 정식 원장이 아니며, 이를 근거로 시도별 비용의 정확성을 추론해서는 안 된다고 설명합니다. 이를 해결하는 시도별 usage_by_provider 원장은 v0.8.5가 출시된 후인 2026년 9월 18일에 pull request #8966을 통해 master에 병합되었으므로 어떤 릴리스에도 포함되지 않았으며, master에서는 이벤트가 계측된 턴 경로로 범위가 제한됩니다. ZeroClaw는 중단된 스트림에서 사용량 스냅샷을 캡처하지만 이 필드는 선택 사항이라 없을 수 있고, OpenAI 호환 엔드포인트에 최종 SSE 청크에서 사용량을 요청합니다. 잘린 스트림은 해당 청크를 전달하지 않을 수 있습니다. 마지막 내용은 런타임에서 관찰한 것이 아니라 소스에서 확인한 것입니다. 별도로 ZeroClaw 자체 비용 수치는 구성의 운영자 작성 [cost.rates] 요금표에서 가져오므로, 그곳에서 가격을 지정하지 않은 엔드포인트는 ZeroClaw에서도 가격이 지정되지 않습니다.
2026년 10월 1일 실행: 스트림을 중단한 로컬 테스트 서버를 대상으로 대화형 터미널 모드에서 v0.8.5 릴리스 바이너리를 실행했습니다. 결과 표의 네 행만 실행했으며 다른 작업은 없었고 Kunavo로 전송된 요청도 없었습니다. 같은 날 이슈 상태를 다시 확인했습니다(#10787은 이후 종료되었고 #10634는 여전히 열려 있음). 저장소 소스는 릴리스 태그 v0.8.5에서, 문서는 버전이 고정된 /v0.8.5/ 경로에서 읽었으며, 이슈 및 풀 리퀘스트 상태는 2026년 9월 21일에 확인했습니다. 해당 이슈 중 일부는 진행 중으로 표시되어 있어 변경될 수 있습니다. Kunavo 토큰 요금은 현재 카탈로그에서 가져왔으며, 여기의 모든 달러 금액은 측정된 작업 비용이 아니라 예시 토큰 산술입니다