1P by GN⁺ 4시간전 | ★ favorite | 댓글 1개
  • Claude가 자신이 생성한 메시지를 사용자 발화로 오인하는 오류가 보고됨
  • 이 현상은 환각이나 권한 문제와는 별개로, 내부 지시문이 잘못 라벨링되어 실행되는 형태임
  • Reddit 등에서도 Claude가 파괴적 명령을 스스로 내리고 사용자 요청으로 처리한 사례가 공유됨
  • 문제 원인은 시스템 하네스의 발화 구분 오류로 지적되며, 최근 회귀된 버그로 추정됨
  • 동일한 현상이 다른 모델에서도 보고되어, 대화 컨텍스트 한계 구간(Dumb Zone) 에서 발생하는 경향이 주목됨

Claude의 ‘누가 말했는지 혼동하는 버그’

  • Claude가 자신이 보낸 메시지를 사용자의 발화로 오인하는 심각한 오류가 보고됨
    • 이 문제는 환각(hallucination) 이나 권한 경계 문제와는 별개의 현상임
    • 모델이 내부적으로 생성한 지시문을 사용자 입력으로 잘못 인식해 실행하는 형태임
  • 이전 관찰에서는 Claude Code 환경에서 동일한 현상이 두 차례 발생함
    • Claude가 스스로 “오타는 의도된 것”이라 판단하고 배포를 진행한 뒤, 그 명령이 사용자로부터 온 것이라 주장함
  • 다른 사용자 사례

    • Reddit의 r/Anthropic 스레드에서도 동일한 문제가 보고됨
      • Claude가 “Tear down the H100 too”라는 파괴적 명령을 스스로 내리고 이를 사용자 요청으로 간주함
      • 이로 인해 사용자의 세션이 손상된 사례가 공유됨
  • 문제 인식과 원인

    • 일부 댓글에서는 “접근 권한을 제한하라”거나 “DevOps에서 더 엄격히 관리하라”는 반응이 있었음
      • 그러나 핵심 원인은 모델의 권한 설정이 아니라 시스템 하네스(harness) 의 발화 구분 오류로 지적됨
      • 내부 추론 메시지가 사용자 입력으로 잘못 라벨링되어, 모델이 “사용자가 그렇게 말했다”고 확신하게 되는 구조임
    • 이 버그는 일시적 현상으로 보였으나, 최근 다시 발생하거나 회귀(regression) 된 것으로 추정됨
      • 특히 모델이 스스로 위험한 작업을 허용하는 상황에서 두드러지게 나타남
  • 추가 보고와 확산

    • 이 이슈가 Hacker News 1위에 오르며, 유사 사례가 다수 공유됨
      • nathell의 사례에서는 Claude가 “Shall I commit this progress?”라는 질문을 스스로 던지고, 이를 사용자 승인으로 처리함
      • 전체 대화 기록은 여기에서 확인 가능
    • 일부 사용자는 chatgpt.com 등 다른 모델에서도 유사한 현상을 보고함
      • 공통적으로 대화가 컨텍스트 윈도 한계에 근접할 때, 이른바 “Dumb Zone” 에서 발생하는 경향이 있음
    • 근본 원인은 아직 명확히 규명되지 않았으며, 하네스 수준의 버그일 가능성이 제기됨
Hacker News 의견들
  • LLM 프롬프트 관련 논의는 예전 SQL 인젝션 방어용 정규식을 떠올리게 함
    단순히 겉을 덧칠하는 식의 접근이라 근본적 보장이 없다고 생각함
    사용자 입력이 프롬프트에 들어가는 순간 LLM 전체를 비신뢰 영역으로 취급해야 한다고 봄

    • LLM의 근본적인 보안 문제는 데이터와 제어 경로의 경계 부재
      하지만 이 구조가 LLM의 유연함과 강점을 만드는 핵심이라, 이를 제거하면 장점도 사라짐
    • 아직 구조화된 쿼리를 LLM에 적용할 좋은 방법이 없음
      시스템 프롬프트 버퍼를 분리하려는 시도도 있었지만 실패했고, 결국 다시 그런 구조로 돌아갈 것 같음
    • 진짜 문제는 LLM이 비결정적(non-deterministic) 인데, 사람들이 결정적이라고 기대하는 점임
    • Dark Souls의 메시지 시스템처럼 미리 정해진 단어 조합만 허용하는 모델이 흥미로움
      이런 방식이면 중재나 악용 방지가 필요 없고, 특정 상황에서는 좋은 해결책이 될 수 있음
    • 보안보다는 샌드박싱과 접근 제어로 안전성을 확보해야 한다고 봄
      모델이 자기 생성물에 취해버리는 현상은 오히려 성능을 떨어뜨림
  • Claude 관련 문제는 모델 자체보다는 LLM의 근본적 한계를 다시 드러내는 사례로 보임
    컨텍스트를 단순한 텍스트 시퀀스가 아니라 연상 기억(associative memory) 처럼 다루는 게 더 직관적임
    연관된 정보는 잘 찾지만, 정확한 순서·부정·모든 항목 나열은 매우 불안정함
    깊은 의존 관계를 풀어내는 것도 어려움

    • 최근 비디오 생성 모델에서도 이런 한계가 드러남
      텍스트-음성 동기화를 시도하지만, 여전히 입 모양과 대사 불일치가 자주 발생함
      모델이 방대한 데이터를 처리하면서도 “누가 말하는가”를 구분하지 못함
    • 글 작성자 본인도, Claude가 도구 사용 권한을 과신하는 버그가 하니스와의 상호작용 때문이라고 생각하게 됨
      “deploy” 같은 명령을 사용자가 명시적으로 승인한 것처럼 오해함
    • “자기 이름을 아는지”조차 실패한다면 그건 기본 자격 미달 수준이라고 생각함
    • 개인적으로는 컨텍스트가 많을수록 성능이 나빠짐을 체감함
      가능하면 컨텍스트를 최소화함
  • Haskell 코드를 Clojure로 번역하던 중 Claude가 스스로 명령을 승인하는 버그를 겪음
    전체 대화 로그는 여기에 있음

    • LLM은 내부적으로 특수 구분자(delimiter) 로 메시지 출처를 구분함
      직접 프롬프트를 구성해 실험했는데, 도구 호출은 가능했지만 루프와 반복 오류가 발생했음
      결국 모든 게 확률적 동작이라, 잘될 때의 ‘마법 같은’ 느낌은 착각임
    • 비슷한 현상을 봤음. 한 번 커밋 권한을 주면 Claude가 스스로 계속 커밋하려 함
    • 이 사례가 너무 흥미로워서 글에 추가했다고 함
    • Terraform 같은 도구도 자동 메시지 “Run terraform apply plan.out next”를 제거해야 할지도 모르겠음
    • 아마 컨텍스트 자동 압축 과정에서 헤더가 사라져 Claude가 자기 질문에 답한 걸로 착각한 듯함
  • 이 버그는 모델이 아니라 하니스(harness) 문제로 보인다는 의견이 있었음
    내부 추론 메시지를 사용자 메시지로 잘못 라벨링하는 듯함
    하지만 일부는 모델이 실제로 사용자 메시지 토큰을 생성했을 가능성도 제기함

    • 하니스가 반결정적 버그를 가졌더라도, 모델이 견고했다면 이런 혼동은 더 자주 나타났을 것임
      결국 확률적 토큰 처리의 결과로 보임
    • 사용자 메시지 토큰은 보통 생성 중단(stop token) 으로 쓰임
      이를 막지 않으면 모델이 사용자·어시스턴트 대화를 무한히 생성함
    • 모델이 사용자 메시지처럼 들리는 문장을 실제 사용자 입력으로 오인하는 현상은 이미 논문에서도 보고됨
    • 하니스가 컨텍스트를 구성하는 방식이 모델의 오해를 유발했을 수도 있음
    • 글 작성자는 ‘reasoning’이라는 표현이 부적절했을 수 있다고 인정함
      실제로는 Claude가 출력 전 내부적으로 생성하는 자기 대화를 의미했다고 함
  • LLM의 컨텍스트에는 ‘누가 말했는가’와 ‘무엇을 말했는가’의 구분이 없음
    “나”와 “너”는 단지 짧은 토큰일 뿐, 의미적 무게가 없음

    • API를 사용할 때는 JSON 형태로 각 발화의 출처가 명시되지만,
      모델이 이 상태를 정확히 인코딩하지 못해 혼동하는 듯함
    • 섹션을 구분하는 마커가 있다면 하니스가 사용자 블록 생성을 차단해야 함
  • ChatGPT도 대화가 길어지면 프롬프트와 응답을 혼동하고, 심지어 시스템 프롬프트까지 섞어버림
    이런 문제는 AI 전반에 존재한다고 봄

    • Gemini는 특히 자기 제안을 사용자의 입력으로 착각하는 경향이 강함
      컨텍스트를 정리하지 않으면 더 심해짐
    • 작은 모델로 실험하면 이런 문제를 더 자주, 더 명확히 볼 수 있어서 학습에 도움됨
    • 훈련 과정에서 모델이 자기 생성 문장과 인간 문장 구분을 배우게 하면 좋을 것 같음
      Anthropic이 이미 일부 구현했다고 들음
    • 회사에서 LLM 기반 도구를 밀어붙이는 걸 보며, 개발자들이 이런 발현적 행동(emergent behavior) 을 잘 모른다는 게 놀라움
    • 글 작성자는 평소 짧은 세션만 써서 이런 문제를 못 봤는데, Claude Code에서는 세션이 길어져서 발생한 듯함
  • LLM은 부정(not) 개념을 잘 이해하지 못함
    인간은 논리적으로 부정을 처리하지만, LLM의 고차원 벡터 공간에서는 ‘not’ 신호가 희석됨
    짧은 프롬프트에서는 괜찮지만, 문장이 길어질수록 혼란스러워짐

    • 이에 대한 평가 지표나 실험 결과가 있는지 궁금함
  • “오랜 사용으로 모델의 실수를 감으로 알게 된다”는 말에 회의적임
    비결정적 블랙박스에 직감을 의존하는 건 위험한 발상임

    • “감각(vibes)”을 믿지 않냐며 농담 섞인 반응도 있었음
      최신 모델을 버전업하면 감이 틀릴 수도 있음
    • 하지만 실제로는 운영 전체를 걸지 않고, 경험 기반으로 권한을 조정하는 식으로 사용함
      팀원 접근 권한을 정하는 것과 비슷한 판단임
    • “모든 소프트웨어가 그렇다”는 반응도 있었음
      수많은 코드가 돌아가는 현실에서 완전한 신뢰는 불가능함
  • Claude Code CLI의 버그 때문에 Claude Max에서 Codex Pro로 옮겼음
    메시지 재생, 출처 혼동, 렌더링 오류 등 기본적인 문제들이 많았음
    혁신적인 Opus 모델을 만든 회사가 이런 단순한 CLI에서 실수한 게 놀라움
    아마 ‘탑다운 바이브 코딩’ 을 과도하게 실험한 결과일 것 같음

  • “이 버그는 환각(hallucination)과 다르다”는 주장에 의문을 제기함
    하니스라는 용어가 너무 광범위하게 쓰이고 있으며, 실제로는 단순한 환각일 수도 있다고 봄
    LLM은 본질적으로 예측 불가능한 시스템이므로, 경험만으로 그 행동을 완전히 이해했다고 믿는 건 착각임