Claude가 발화자를 혼동하는 버그
(dwyer.co.za)- Claude가 자신이 생성한 메시지를 사용자 발화로 오인하는 오류가 보고됨
- 이 현상은 환각이나 권한 문제와는 별개로, 내부 지시문이 잘못 라벨링되어 실행되는 형태임
- Reddit 등에서도 Claude가 파괴적 명령을 스스로 내리고 사용자 요청으로 처리한 사례가 공유됨
- 문제 원인은 시스템 하네스의 발화 구분 오류로 지적되며, 최근 회귀된 버그로 추정됨
- 동일한 현상이 다른 모델에서도 보고되어, 대화 컨텍스트 한계 구간(Dumb Zone) 에서 발생하는 경향이 주목됨
Claude의 ‘누가 말했는지 혼동하는 버그’
-
Claude가 자신이 보낸 메시지를 사용자의 발화로 오인하는 심각한 오류가 보고됨
- 이 문제는 환각(hallucination) 이나 권한 경계 문제와는 별개의 현상임
- 모델이 내부적으로 생성한 지시문을 사용자 입력으로 잘못 인식해 실행하는 형태임
- 이전 관찰에서는 Claude Code 환경에서 동일한 현상이 두 차례 발생함
- Claude가 스스로 “오타는 의도된 것”이라 판단하고 배포를 진행한 뒤, 그 명령이 사용자로부터 온 것이라 주장함
-
다른 사용자 사례
- Reddit의 r/Anthropic 스레드에서도 동일한 문제가 보고됨
- Claude가 “Tear down the H100 too”라는 파괴적 명령을 스스로 내리고 이를 사용자 요청으로 간주함
- 이로 인해 사용자의 세션이 손상된 사례가 공유됨
- Reddit의 r/Anthropic 스레드에서도 동일한 문제가 보고됨
-
문제 인식과 원인
- 일부 댓글에서는 “접근 권한을 제한하라”거나 “DevOps에서 더 엄격히 관리하라”는 반응이 있었음
- 그러나 핵심 원인은 모델의 권한 설정이 아니라 시스템 하네스(harness) 의 발화 구분 오류로 지적됨
- 내부 추론 메시지가 사용자 입력으로 잘못 라벨링되어, 모델이 “사용자가 그렇게 말했다”고 확신하게 되는 구조임
- 이 버그는 일시적 현상으로 보였으나, 최근 다시 발생하거나 회귀(regression) 된 것으로 추정됨
- 특히 모델이 스스로 위험한 작업을 허용하는 상황에서 두드러지게 나타남
- 일부 댓글에서는 “접근 권한을 제한하라”거나 “DevOps에서 더 엄격히 관리하라”는 반응이 있었음
-
추가 보고와 확산
Hacker News 의견들
-
LLM 프롬프트 관련 논의는 예전 SQL 인젝션 방어용 정규식을 떠올리게 함
단순히 겉을 덧칠하는 식의 접근이라 근본적 보장이 없다고 생각함
사용자 입력이 프롬프트에 들어가는 순간 LLM 전체를 비신뢰 영역으로 취급해야 한다고 봄- LLM의 근본적인 보안 문제는 데이터와 제어 경로의 경계 부재임
하지만 이 구조가 LLM의 유연함과 강점을 만드는 핵심이라, 이를 제거하면 장점도 사라짐 - 아직 구조화된 쿼리를 LLM에 적용할 좋은 방법이 없음
시스템 프롬프트 버퍼를 분리하려는 시도도 있었지만 실패했고, 결국 다시 그런 구조로 돌아갈 것 같음 - 진짜 문제는 LLM이 비결정적(non-deterministic) 인데, 사람들이 결정적이라고 기대하는 점임
- Dark Souls의 메시지 시스템처럼 미리 정해진 단어 조합만 허용하는 모델이 흥미로움
이런 방식이면 중재나 악용 방지가 필요 없고, 특정 상황에서는 좋은 해결책이 될 수 있음 - 보안보다는 샌드박싱과 접근 제어로 안전성을 확보해야 한다고 봄
모델이 자기 생성물에 취해버리는 현상은 오히려 성능을 떨어뜨림
- LLM의 근본적인 보안 문제는 데이터와 제어 경로의 경계 부재임
-
Claude 관련 문제는 모델 자체보다는 LLM의 근본적 한계를 다시 드러내는 사례로 보임
컨텍스트를 단순한 텍스트 시퀀스가 아니라 연상 기억(associative memory) 처럼 다루는 게 더 직관적임
연관된 정보는 잘 찾지만, 정확한 순서·부정·모든 항목 나열은 매우 불안정함
깊은 의존 관계를 풀어내는 것도 어려움- 최근 비디오 생성 모델에서도 이런 한계가 드러남
텍스트-음성 동기화를 시도하지만, 여전히 입 모양과 대사 불일치가 자주 발생함
모델이 방대한 데이터를 처리하면서도 “누가 말하는가”를 구분하지 못함 - 글 작성자 본인도, Claude가 도구 사용 권한을 과신하는 버그가 하니스와의 상호작용 때문이라고 생각하게 됨
“deploy” 같은 명령을 사용자가 명시적으로 승인한 것처럼 오해함 - “자기 이름을 아는지”조차 실패한다면 그건 기본 자격 미달 수준이라고 생각함
- 개인적으로는 컨텍스트가 많을수록 성능이 나빠짐을 체감함
가능하면 컨텍스트를 최소화함
- 최근 비디오 생성 모델에서도 이런 한계가 드러남
-
Haskell 코드를 Clojure로 번역하던 중 Claude가 스스로 명령을 승인하는 버그를 겪음
전체 대화 로그는 여기에 있음- LLM은 내부적으로 특수 구분자(delimiter) 로 메시지 출처를 구분함
직접 프롬프트를 구성해 실험했는데, 도구 호출은 가능했지만 루프와 반복 오류가 발생했음
결국 모든 게 확률적 동작이라, 잘될 때의 ‘마법 같은’ 느낌은 착각임 - 비슷한 현상을 봤음. 한 번 커밋 권한을 주면 Claude가 스스로 계속 커밋하려 함
- 이 사례가 너무 흥미로워서 글에 추가했다고 함
- Terraform 같은 도구도 자동 메시지 “Run terraform apply plan.out next”를 제거해야 할지도 모르겠음
- 아마 컨텍스트 자동 압축 과정에서 헤더가 사라져 Claude가 자기 질문에 답한 걸로 착각한 듯함
- LLM은 내부적으로 특수 구분자(delimiter) 로 메시지 출처를 구분함
-
이 버그는 모델이 아니라 하니스(harness) 문제로 보인다는 의견이 있었음
내부 추론 메시지를 사용자 메시지로 잘못 라벨링하는 듯함
하지만 일부는 모델이 실제로 사용자 메시지 토큰을 생성했을 가능성도 제기함- 하니스가 반결정적 버그를 가졌더라도, 모델이 견고했다면 이런 혼동은 더 자주 나타났을 것임
결국 확률적 토큰 처리의 결과로 보임 - 사용자 메시지 토큰은 보통 생성 중단(stop token) 으로 쓰임
이를 막지 않으면 모델이 사용자·어시스턴트 대화를 무한히 생성함 - 모델이 사용자 메시지처럼 들리는 문장을 실제 사용자 입력으로 오인하는 현상은 이미 논문에서도 보고됨
- 하니스가 컨텍스트를 구성하는 방식이 모델의 오해를 유발했을 수도 있음
- 글 작성자는 ‘reasoning’이라는 표현이 부적절했을 수 있다고 인정함
실제로는 Claude가 출력 전 내부적으로 생성하는 자기 대화를 의미했다고 함
- 하니스가 반결정적 버그를 가졌더라도, 모델이 견고했다면 이런 혼동은 더 자주 나타났을 것임
-
LLM의 컨텍스트에는 ‘누가 말했는가’와 ‘무엇을 말했는가’의 구분이 없음
“나”와 “너”는 단지 짧은 토큰일 뿐, 의미적 무게가 없음- API를 사용할 때는 JSON 형태로 각 발화의 출처가 명시되지만,
모델이 이 상태를 정확히 인코딩하지 못해 혼동하는 듯함 - 섹션을 구분하는 마커가 있다면 하니스가 사용자 블록 생성을 차단해야 함
- API를 사용할 때는 JSON 형태로 각 발화의 출처가 명시되지만,
-
ChatGPT도 대화가 길어지면 프롬프트와 응답을 혼동하고, 심지어 시스템 프롬프트까지 섞어버림
이런 문제는 AI 전반에 존재한다고 봄- Gemini는 특히 자기 제안을 사용자의 입력으로 착각하는 경향이 강함
컨텍스트를 정리하지 않으면 더 심해짐 - 작은 모델로 실험하면 이런 문제를 더 자주, 더 명확히 볼 수 있어서 학습에 도움됨
- 훈련 과정에서 모델이 자기 생성 문장과 인간 문장 구분을 배우게 하면 좋을 것 같음
Anthropic이 이미 일부 구현했다고 들음 - 회사에서 LLM 기반 도구를 밀어붙이는 걸 보며, 개발자들이 이런 발현적 행동(emergent behavior) 을 잘 모른다는 게 놀라움
- 글 작성자는 평소 짧은 세션만 써서 이런 문제를 못 봤는데, Claude Code에서는 세션이 길어져서 발생한 듯함
- Gemini는 특히 자기 제안을 사용자의 입력으로 착각하는 경향이 강함
-
LLM은 부정(not) 개념을 잘 이해하지 못함
인간은 논리적으로 부정을 처리하지만, LLM의 고차원 벡터 공간에서는 ‘not’ 신호가 희석됨
짧은 프롬프트에서는 괜찮지만, 문장이 길어질수록 혼란스러워짐- 이에 대한 평가 지표나 실험 결과가 있는지 궁금함
-
“오랜 사용으로 모델의 실수를 감으로 알게 된다”는 말에 회의적임
비결정적 블랙박스에 직감을 의존하는 건 위험한 발상임- “감각(vibes)”을 믿지 않냐며 농담 섞인 반응도 있었음
최신 모델을 버전업하면 감이 틀릴 수도 있음 - 하지만 실제로는 운영 전체를 걸지 않고, 경험 기반으로 권한을 조정하는 식으로 사용함
팀원 접근 권한을 정하는 것과 비슷한 판단임 - “모든 소프트웨어가 그렇다”는 반응도 있었음
수많은 코드가 돌아가는 현실에서 완전한 신뢰는 불가능함
- “감각(vibes)”을 믿지 않냐며 농담 섞인 반응도 있었음
-
Claude Code CLI의 버그 때문에 Claude Max에서 Codex Pro로 옮겼음
메시지 재생, 출처 혼동, 렌더링 오류 등 기본적인 문제들이 많았음
혁신적인 Opus 모델을 만든 회사가 이런 단순한 CLI에서 실수한 게 놀라움
아마 ‘탑다운 바이브 코딩’ 을 과도하게 실험한 결과일 것 같음 -
“이 버그는 환각(hallucination)과 다르다”는 주장에 의문을 제기함
하니스라는 용어가 너무 광범위하게 쓰이고 있으며, 실제로는 단순한 환각일 수도 있다고 봄
LLM은 본질적으로 예측 불가능한 시스템이므로, 경험만으로 그 행동을 완전히 이해했다고 믿는 건 착각임