
Claude Code에서 도구 호출(invoke)이 '단순 문자열'로 출력되며 멈추는 버그의 원인과 해결 방법【공식 알려진 버그】
요약
Claude Code 사용 중 도구 호출(tool call)이 실행되지 않고 XML 태그가 문자열로 출력되는 알려진 버그의 원인과 해결 방법을 설명합니다. 모델이 구조화된 데이터를 레거시 XML 형식으로 출력하는 회귀 버그이며, 잘못된 재시도는 상황을 악화시킬 수 있습니다.
핵심 포인트
- 도구 호출이 XML 문자열로 출력되며 멈추는 회귀 버그 발생
- 망가진 형식이 대화 이력에 남으면 계속 복제되는 현상 주의
- 재시도 대신 /rewind 또는 /clear 명령어로 세션 초기화 권장
- 긴 세션 유지 및 과도한 컨텍스트 사용 시 재발 가능성 높음
「Claude Code로 작업하던 중, 갑자기 도구 호출(tool call)이 실행되지 않고,
<invoke ...>
와 같은 태그가 그대로 문자열로 출력되며 멈춘다」—— 이것은 당신의 설정 실수도, 프롬프트(prompt) 때문도 아닙니다. 공식 리포지토리(repository)에 여러 개의 이슈(issue)가 올라와 있는 알려진 버그(known bug)입니다. 원인과 확실하게 복구하는 절차, 재발을 줄이는 예방책을 정리합니다.
증상: 도구 호출이 실행되지 않고, <invoke ...> XML이 생텍스트(raw text)로 출력되며 턴(turn)이 멈춤. -
원인: 모델이 도구 호출을 '구조화된 데이터(structured data)'가 아닌 '오래된 형식의 XML 문자열'로 출력해 버리는 회귀 버그(regression bug) (2026년 5월 말~). 한 번 망가지면 이력(history)에 남아, 망가진 방식을 계속 복사함 (few-shot self-poisoning). -
❌ 하지 말아야 할 것: 재시도(retry) / "주의해줘"라고 재지시. → 망가진 템플릿을 증식시켜 상황을 악화시킵니다. -
✅ 해결 방법: Esc 2번 또는 /rewind로 망가지기 직전으로 되돌리기 → 안 된다면 /clear (확실함). -
✅ 예방: 구분 시점에 /clear · /compact 사용, 거대하고 XML이 가득한 skill을 도중에 읽어들이지 않기, 1M 컨텍스트(context)를 넘기지 않기.
도구(Bash, MCP 도구, 브라우저 조작 등)를 호출하려는 순간, 실행되지 않고 다음과 같은 텍스트가 그대로 화면에 나타나며 턴이 끝나버립니다:
court
<invoke name="mcp__Claude_in_Chrome__computer">
<parameter name="action">scroll</parameter>
...
주목해야 할 특징은 3가지입니다:
- 맨 앞에
court와 같은 **의미 없는 불필요한 토큰(token)**이 붙음 - 본래 있어야 할
antml:접두사(prefix)가 누락됨 - 전체를 감싸는
<function_calls>래퍼(wrapper)가 없음, 날것의<invoke>
이 세 가지 세트가 후술할 공식 이슈(issue)의 설명과 완전히 일치합니다.
anthropics/claude-code에 동종의 이슈가 여러 개 올라와 있습니다 (#64235, #62344, #64658 등). Opus 4.8에서도 재발 보고가 있으며, 집필 시점 기준으로 완전한 수정에는 이르지 못했습니다 (부분 수정은 배포됨).
본래 도구 호출은 stop_reason: tool_use의 **구조화된 블록(structured block)**으로 반환되어야 하는데, 모델이 그것을 **레거시(legacy)한 <invoke> XML "문자열"로 직렬화(serialization)**해 버리는 것입니다. 클라이언트 측에서는 이를 "단순 텍스트"로 해석하기 때문에, 도구는 실행되지 않고 턴이 종료됩니다 = 즉시 멈춤. 2026년 5월 말경부터 눈에 띄기 시작한 회귀 버그입니다.
이 부분이 중요합니다. 한 번 망가진 도구 호출이 대화 이력(history)에 남으면, 자기회귀 생성(autoregressive generation) 과정에서 이후에도 똑같은 망가진 방식을 계속 복사합니다.
따라서 재시도나 "주의해줘", "하나씩 호출해줘"와 같은 재지시는 최악의 수입니다. 망가진 템플릿을 이력에 늘려 세션(session) 내에서는 스스로 회복할 수 없게 만듭니다.
보고에 따르면 "4회 연속 재시도해도 전부 똑같이 망가진 방식으로 작동했다", "특정 문맥(연속된 도구 호출, 실패 후의 재시도)에서 안정적으로 재발했다"라고 합니다.
- 장시간 실행 중인 긴 세션 / 연속된 도구 호출
- 큰 파일/페이지를 많이 읽어 들임
<result>블록이나 히어 도큐먼트(heredoc) 등 XML/마크업 밀도가 높은 skill을 읽음- "1M 컨텍스트 + 강력한 사고(thinking)"의 조합
💡 브라우저 자동 조작(Claude in Chrome 등)은 주의가 필요합니다. 연속 스크롤 + 거대한 페이지 텍스트 읽어 들이기가 위의 조건들을 거의 모두 충족하기 때문에 특히 빠지기 쉽습니다.
| 단계 | 할 일 | 보충 |
|---|---|---|
| ① | 재시도하지 않기 | 오염을 늘릴 뿐 |
| ② | Esc를 2번 누르거나 /rewind | 망가지기 직전의 체크포인트로 되돌려 계속 진행 |
| ③ | /clear | 확실하게 효과가 있는 유일한 복구책. 문맥을 남기고 싶다면 먼저 /compact |
포인트는 "망가진 턴을 이력에서 지운 뒤에 계속하는 것"입니다. ②번으로 직전으로 되돌리는 것만으로 해결되는 경우가 많으며, 안 된다면 ③번으로 세션을 리셋합니다.
태스크의 구분 시점에 세션을 비대하게 만들지 마세요. /clear
또는 /compact를 수시로 사용하세요. 세션 도중에 거대하고 XML로 가득 찬 skill 파일을 읽어들이지 마세요.
1M 컨텍스트 (1M context)를 사용 중이라면 200K로 되돌리는 것도 유효합니다:
# 1M 컨텍스트 비활성화 (200K로 복구)
export CLAUDE_CODE_DISABLE_1M_CONTEXT=1
※ 환경 변수 이름은 향후 변경될 가능성이 있습니다. 최신 정확한 이름은 공식 문서에서 확인하십시오.
불필요한 상황에서는 /effort를 낮춥니다 (부분적인 완화).
Claude Code를 최신 버전으로 업데이트합니다 (부분적인 수정 사항이 포함되어 있습니다).
"일본어와 같이 멀티바이트 문자 (multi-byte character)의 밀도가 높으면 깨지기 쉽다"는 설도 있으며, 완화 방법으로 CLAUDE.md에 다음을 추가하는 방법이 공유되고 있습니다.
Think in English, respond in Japanese.
단, 이는 1차 소스의 근본 원인(회귀 버그 (regression bug) / self-poisoning)만큼 확증된 것은 아닙니다. 우선 위의 복구 및 예방 조치를 철저히 수행하고, 이 방법은 보험 정도로 시도해 보시는 것을 추천합니다.
도구 호출 (tool call)이 생텍스트 (raw text)로 출력되며 멈추는 것은 **사용자의 잘못이 아니라 공식적으로 알려진 버그 (known bug)**입니다.
재시도 (retry)는 엄금입니다. Esc 2회 / /rewind
→ 안 된다면 /clear.
긴 세션, XML이 밀집된 문맥, 1M 이상의 강한 사고 과정에서 발생하기 쉽습니다. 수시로 리셋하는 것이 효과적입니다.
같은 증상으로 어려움을 겪고 계신 분들에게 도움이 되기를 바랍니다.
- anthropics/claude-code #64235 — Regression: tool_use block absent / legacy
<invoke>XML text - anthropics/claude-code #62344 — Malformed tool calls due to in-context few-shot poisoning
- anthropics/claude-code #64658 — Opus 4.8에서도 재발
- anthropics/claude-code #63875 — Recurring "could not be parsed" interrupts sessions
- Claude Code Error reference (/rewind, Esc, /clear)
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기