# Claude Code의 “Extended Thinking” 출력 텍스트는 실제 추론이 아님

> Clean Markdown view of GeekNews topic #30766. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=30766](https://news.hada.io/topic?id=30766)
- GeekNews Markdown: [https://news.hada.io/topic/30766.md](https://news.hada.io/topic/30766.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-06-24T02:35:11+09:00
- Updated: 2026-06-24T02:35:11+09:00
- Original source: [patrickmccanna.net](https://patrickmccanna.net/the-text-in-claude-codes-extended-thinking-output-is-not-authentic/)
- Points: 1
- Comments: 1

## Topic Body

- Claude Code는 세션을 디스크에 기록하지만, 로컬 로그의 **thinking block**에는 실제 추론 텍스트 대신 600자 길이의 `signature`만 남아 있었음
- Claude의 추론은 **signature로 암호화**되며, 키는 Anthropic이 보유하고 사용자 기기에는 전달되지 않음
- API가 돌려주는 값은 실제 추론 원문이 아니라 **추론 요약**이고, 전체 thinking output을 얻으려면 enterprise agreement가 필요함
- `ctrl+o`로 보는 **extended-thinking** 출력도 Fable/Opus의 사고 과정 요약일 뿐, 세션에서 모델 행동을 직접 구동한 추론 자체는 아님
- Claude Code 세션을 감사 추적으로 쓰려면 로컬 파일, 입력·출력, 동작 로그만으로는 에이전트의 실제 논리를 재현할 수 없다는 점을 전제로 해야 함

---

### 로컬 로그에 남는 것은 추론 원문이 아님
- Claude Code는 각 세션을 디스크에 기록하고, 해당 로그에는 모델이 작업하는 동안의 **thinking blocks**가 포함됨
- 로컬에서 그 추론을 확인하려 했을 때 실제 텍스트는 없고 **600자 길이의 `signature`** 만 발견됨
- [Anthropic의 extended thinking 문서](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)는 이 구조를 다음처럼 다룸
  - Claude는 추론을 해당 **signature** 안에 암호화함
  - 키는 Anthropic이 보유함
  - 사용자 기기는 키를 받지 않음
  - API는 추론 자체가 아니라 **reasoning summary**를 반환함
  - 전체 thinking output을 얻으려면 **enterprise agreement**가 필요함
- [Matt Green의 글](https://blog.cryptographyengineering.com/2026/05/29/fooling-around-with-encrypted-reasoning-blobs/)은 signature block에 대한 더 자세한 관찰을 다룸

### Extended Thinking 출력의 한계
- Claude Code의 `ctrl+o`에서 보이는 [extended-thinking 출력](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#summarized-thinking)은 Fable/Opus thinking의 **요약**임
- 이 출력은 세션에서 모델의 행동을 실제로 구동한 thinking 자체가 아니라, thinking logic을 압축한 결과임
- 요약으로 바뀌는 과정에는 데이터 손실이 있으며, 원문은 이를 파일 형식을 변환하면서 정보가 손실되는 상황에 비유함
- Claude Code 세션에서 에이전트가 사용한 논리의 기록이 필요할 때 주의할 점
  - 로컬 파일만으로는 해당 논리를 생성할 수 없음
  - 시스템에 남은 추론 로그는 사용자에게 접근 가능한 형태가 아님
  - 입력, 출력, 실행 중인 Claude Code의 동작은 별도로 긁어와 기록할 수 있음
  - 그런 로그도 에이전트 행동을 실제로 구동한 추론은 아님
- 문서의 “extended thinking returns a summary of Claude’s full thinking process”라는 표현은 간접적이어서, 실제 full thinking 반환으로 오해할 여지가 있음

## Comments



### Comment 60227

- Author: neo
- Created: 2026-06-24T02:35:13+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=48630535) 
- Anthropic만의 문제가 아니라 OpenAI와 Google을 포함한 거의 모든 대형 AI 회사가 모델의 실제 **추론 과정**을 숨김  
  원시 추론을 공개하면 AI가 정보를 처리하는 방식이 그대로 드러나기 때문이고, 이 회사들은 경쟁사보다 나은 사고 과정을 만들려고 막대한 연구개발비를 쓰고 있음  
  그 사고 메커니즘을 경쟁사에 공개하는 건 지출 목적 자체를 무너뜨리는 일이라 절대 하지 않을 것이며, 자신을 쫓는 사람에게 정확한 위치를 알려주는 것과 비슷함
  - AI 회사들이 허락이나 보상 없이 모델 가중치로 바꿀 수 있도록, 세상의 정보를 **기계가 읽을 수 있는 형식**으로 제공하는 것과도 비슷함
  - 더 핵심적으로, 모델의 추론을 공개하면 경쟁사가 그걸 학습해 결과를 복제할 수 있음  
    그 내용을 요약 같은 방식으로 후처리하면 경쟁사에 덜 유용해짐
  - 원래 이유는 “추론”이 **정렬된 모델 출력**과 잘 맞지 않아서, 추론 중에는 정렬을 제거한 뒤 “정렬되지 않은” 모델 출력이 드러나지 않게 숨기는 것이라고 생각했음
  - Google에서 개인 데이터를 내보내면 모델 응답은 전부 숨기고 사용자 메시지만 남겨둠  
    그래서 더 나쁨
  - 하지만 복잡한 문제에서는 해답에 이르는 과정도 검토 가능해야 하므로, 이 방식은 **제품을 더 나쁘게** 만듦

- “실제 사고가 아니라 사고 논리의 요약이다. jpeg를 .bmp로 저장한 다음 .bmp를 편집하고 다시 .jpeg처럼 제시하는 것과 같다. 변환 과정에서 데이터 손실이 생긴다”는 비유는 반대임  
  **.bmp는 무손실** 형식이고, **.jpeg가 손실** 형식임

- 숨겨진 추론을 가진 모델은 쓰지도 추천하지도 않을 생각이며, 미국 모델은 전부 여기에 해당함  
  위험이 너무 크고 **프롬프트 최적화**도 더 어려워짐  
  공격자가 프롬프트 주입으로 추론 사슬에 비밀 목표를 심고, 요약과 출력에서는 그걸 숨길 수 있기 때문에 위험함  
  추론과 함수 호출이 섞이면 더 위험해지며, 모델이 숨겨진 추론 단계에서 함수를 호출할 수 있음  
  그러면 공격자가 데이터를 유출해도 추론 요약이 사용자에게 숨겨줄 수 있음  
  또한 모델이 추론 중 **무한 루프**에 빠져 토큰을 낭비하는지도 알 수 없는데, Gemini는 이런 경향이 있고 숨겨진 추론이 새어 나올 때 확인된 적이 있음  
  모델이 AGI가 되고 프롬프트 주입으로부터 안전해지면 신경 쓰지 않을 수도 있지만, 그 전까지는 모델이 프롬프트에 정확히 어떻게 반응하는지, 에이전트가 내 대신 정확히 무엇을 하는지 알고 싶음  
  추가 읽을거리: Fooling around with encrypted reasoning blobs  
  [https://blog.cryptographyengineering.com/2026/05/29/fooling-...](<https://blog.cryptographyengineering.com/2026/05/29/fooling-around-with-encrypted-reasoning-blobs/>)
  - 난독화된 추론 블록 안에서 **도구 호출**이 일어날 수는 없다고 봄  
    함수 호출을 클라이언트 쪽에서 평가하려면 언젠가 클라이언트에서 그 사고 스트림을 복호화해야 하고, 그러면 그렇게 난독화하는 목적이 사라짐  
    서버 쪽에서 함수 호출이 일어날 수 있다는 뜻이라면, 추론 API를 쓰는 한 서버가 그렇게 하고 숨기는 걸 막을 방법은 없음
  - 추론 사슬 하이재킹을 잠재적 공격 경로로 생각해본 적은 있지만, 주요 공급사들이 턴 사이의 **추론 토큰**을 모두 버리는 것으로 이해해서 미국 모델에서 입증된 구현은 본 적이 없음
  - 내가 만든 이 에이전트는 셸에서 실행은 못 하고 프로젝트 안의 파일만 편집할 수 있음  
    지금은 Rust에서만 동작함: [https://github.com/Kapperchino/agent-joe](<https://github.com/Kapperchino/agent-joe>)
  - 추론은 숨겨져도 **도구 호출**은 숨겨지지 않음  
    그렇지 않으면 클라이언트가 어떻게 실행하겠음
  - 사고 블록이 도구 호출을 할 수 없다면, 데이터 유출 위험은 잘 보이지 않음

- 이건 오래전부터 알고 있던 일이고, 회사들도 딱히 숨기려 하지 않음  
  경쟁사가 **사고 사슬(CoT)** 로 모델을 학습하지 못하게 하려고 그러는 것임
  - 이건 Opus 4.6 때부터 있던 것 아닌가 싶음  
    1월이나 2월쯤 이 변경이 있었던 걸 분명히 기억하고, 이유도 **증류 방지**라고 명시되어 있었음  
    Sonnet에는 이 제한이 없음  
    재미있는 점은 2년 전 방식으로 돌아가서 명시적으로 CoT 프롬프트를 넣으면 전체 사고 프롬프트가 다시 나온다는 것임  
    그래서 사고 기능을 완전히 끄고, 대신 일반 프롬프트 안에 다음처럼 사고를 포함시키면 됨  
    “답변하기 전에 단계별로 생각해라. 예를 들면:
    
    사용자는 나에게 …을 요청하고 있다  
    나는 blah blah를 생각해야 한다. 먼저 foo the bar를 하고, 그다음 blah blah를 해야 한다
    
    답변: ”
    
    그러면 tada.wav, GPT-3 시대처럼 CoT가 다시 작동함

- **사고 사슬 추론 블록**은 인간이 생각하는 의미의 추론과 그다지 대응하지 않는다고 봄  
  Fable/Mythos 시스템 카드 6.2.2절의 “읽기 어려운 추론”과 Apple 논문 “The illusion of thinking”이 제기한 질문을 보면 됨  
  사용자가 내부에서 무슨 일이 일어나는지 보면 놀랄 것이기 때문에 추론 블록을 가린다고 생각했음  
  동료들의 머릿속에서 실제로 무슨 일이 벌어지는지 보면 나도 아마 놀랄 것 같음
  - 이 글의 요지는 LLM의 “추론” 단계가 인간이 생각하는 추론과 같지 않다는 게 아니라, Anthropic이 Claude의 **추론 출력**을 의도적으로 숨겨 모델 증류를 어렵게 만든다는 것임
  - DeepSeek나 GLM의 사고 사슬을 읽다가 “대체 무슨 생각을 하는 거야”라고 외친 적이 셀 수 없이 많은데, 끝은 정답으로 가는 경우가 있었음  
    반대로 답변에는 빠졌지만 그 안에 유용한 아이디어가 들어 있는 경우도 있음

- 예전에 DeepSeek R1이 이런 식의 사고 흔적을 만든다는 작은 메모를 남긴 적이 있음  
  “(Dimethyl(oxo)-lambda6-sulfa雰囲idine)methane donate a CH2rola group occurs in reaction, Practisingproduct transition vs adds this.to productmodule. Indeed"come tally said Frederick would have 10 +1 =11 carbons. So answer q Edina is11.”  
  그리고 화학 문제에 대해 ‘맞는’ 답을 결론으로 냄  
  그렇다면 사고 흔적은 독자가 보기엔 꽤 **무의미한 문자열**일 수 있는데, 이게 모델의 특이성인지 LLM 일반의 성질인지는 아직 잘 모르겠음  
  예전에 저자와 이야기했지만 논문이 NIPS 같은 곳에 나온다고 해서 후속 확인을 잊었고, 누군가 찾으면 공유해주면 좋겠음  
  0: [https://wiki.roshangeorge.dev/w/Blog/2025-10-12/Word_Magic#I...](<https://wiki.roshangeorge.dev/w/Blog/2025-10-12/Word_Magic#Illegible_Chains_of_Thought>)?  
  1: 참인 믿음이라는 의미에서인 듯함
  - 맞음, 여러 모델이 이상한 전문어 같은 방식으로 생각함  
    Mythos가 솔리테어를 플레이할 때의 사고 예시는 여기 있음: [https://www.lesswrong.com/posts/wCSEpT3dTGz4N86Wi/even-illeg...](<https://www.lesswrong.com/posts/wCSEpT3dTGz4N86Wi/even-illegible-mythos-reasoning-traces-seem-pretty-legible>)
    
    “7♣-removal-IS-the-prerequisite-for-10♠/9♥!!)-⟹-OVERLAP-(ii)+(iv):-{6♠ J♦ 9♥ 2♣}-=-FOUR--—-UNLESS-7♣'s-seat-8♥-...-and-2♣-drains-only-at-crack-:-⟹-2♣-celled-+-9♥-celled-simultaneously-UNAVOIDABLE-in-t8-dig--—-BREAK:-9♥”
    
    이건 모델이 영어로 생각하기를 멈추고 내부 벡터 공간에서 생각하는 **뉴럴리즈(neuralese)** 에 조금 가까워진 단계임  
    텍스트로 직렬화되기 때문에 진짜 뉴럴리즈는 아니지만 그 방향으로 가고 있음  
    코드 작성할 때 내 내부 사고 과정도 영어로 적어내기 어려운 중간 단계가 많아서, 모델들에 어느 정도 공감함
  - 그건 그냥 망가진 구현이나 모델 양자화에서 나온 **토큰 잡음** 아닌가 싶음  
    모델이 그런 헛소리를 뱉은 적이 있었는데, 매번 llama.cpp 버그이거나 망가진 .gguf 때문이었음

- HN에서 의인화는 금기지만, 인간도 **사후 합리화**를 한다고 보는 사람들도 있다는 점은 언급할 만함  
  [https://www.patheos.com/blogs/tippling/2013/11/14/post-hoc-r...](<https://www.patheos.com/blogs/tippling/2013/11/14/post-hoc-rationalisation-reasoning-our-intuition-and-changing-our-minds/>)
  
  [https://www.researchgate.net/publication/316045349_Post_Hoc_...](<https://www.researchgate.net/publication/316045349_Post_Hoc_Ergo_Propter_Hoc_Some_Benefits_of_Rationalization>)
  - 순진하게 이해하기로는, 우리가 뭔가를 하거나 말한 뒤 왜 그렇게 결정했는지 스스로에게 서사를 붙이는 경우임  
    비언어적으로 생각한 다음 그럴듯한 근거를 사후에 언어화하는 것임  
    담론적 글쓰기에도 그게 적용되는지는 잘 모르겠음  
    글을 쓸 때는 기본적으로 논리 규칙을 사용해 서사의 방향을 정하므로, 비언어적 휴리스틱은 여전히 작동하겠지만 제약을 받기 때문에 완전히 사후적인 것은 아닐 듯함

- Anthropic이 자기 데이터는 그렇게 숨기면서, 여러분 데이터는 전부 빨아들이고 많은 사람이 기꺼이 넘겨주는 게 씁쓸함  
  그러고 나서 여러분의 제품을 만들어 시장을 잠식하며 경쟁함  
  Anthropic은 자기 **추론 토큰**이 해자이고 다른 연구소에 이점을 준다고 믿어서 숨기는 것임  
  정말 그게 자기 우위라고 믿는다면 놀랄 일이 생길 것임
  - 내가 알기로 Anthropic이 만드는 제품은 Claude, Claude Code, Claude API뿐이고, 전부 명백히 Anthropic 자체 제품이지 당신이 발명한 무언가가 아님  
    정확히 어떤 제품을 “빨아들였다”고 주장하는 것인지 궁금함
  - 사람들이 기꺼이 넘긴다기보다는 속기 쉽고 순진한 것 아닐까 싶음

- 설마 `reasoning_summary` 내용이 요약된 것이라는 말인가  
  참고로 OpenAI도 똑같이 하며, 별로 놀랍거나 특별히 사악한 일은 아님
  - 사악하진 않지만 **오만함**으로 가득함

- 사고를 숨기려고 이렇게 애쓰는데, Opus 4.8은 10만~20만 토큰이 지나면 자기 사고를 흘리기 시작함  
  정말 코미디임
  - 몇 번밖에 겪어보진 않았지만 결과가 정말 혼란스러움  
    특히 보통 보안 목적으로 탈옥시키는 중이라 더 그럼  
    “사용자가 사이버보안과 관련된 일을 요청하고 있고, 이는 공격적으로 쉽게 전용될 수 있으니 조심해야 한다” 같은 문장이 몇 페이지씩 나오다가, 결국 내가 원한 내용을 기꺼이 줌
