| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- MQA
- catastrophic forgetting
- RLHF
- SK AI SUMMIT 2025
- BLEU
- fréchet inception distance
- test-time scaling
- 토크나이저
- self-attention
- reinforcement learning from human feedback
- extended thinking
- 트랜스포머
- re-ranking
- model context protocol
- CoT
- Engineering at Anthropic
- context engineering
- langgraph
- PEFT
- Multi-Head Attention
- Embedding
- Positional Encoding
- Langchain
- flashattention
- gqa
- chain-of-thought
- transformer
- rotary position embedding
- MHA
- attention
- Today
- Total
AI Engineer 공간 "사부작 사부작"
클로드(Claude)의 생각 엿보기: Extended Thinking으로 투명하고 강력한 AI 에이전트 만들기 본문
클로드(Claude)의 생각 엿보기: Extended Thinking으로 투명하고 강력한 AI 에이전트 만들기
ChoYongHo 2025. 7. 4. 08:17클로드(Claude)의 생각 엿보기: Extended Thinking으로 투명하고 강력한 AI 에이전트 만들기
복잡한 AI 멀티 에이전트 시스템을 구축할 때, 우리는 종종 "이 AI는 왜 이런 결정을 내렸을까?"라는 근본적인 질문에 부딪힙니다. 최종 결과물만으로는 그 과정의 타당성을 신뢰하기 어렵기 때문이죠. 마치 학생이 수학 문제의 답만 덜렁 적어냈을 때, 풀이 과정 없이는 정답에 이르기까지의 논리를 알 수 없는 것과 같습니다. 이러한 '블랙박스' 문제를 해결하고 AI의 투명성과 신뢰도를 높이기 위해 등장한 것이 바로 '추론 모델(Reasoning Model)'의 역할이며, 앤트로픽(Anthropic)의 클로드(Claude)가 제공하는 'Extended Thinking'은 이 개념을 가장 잘 구현한 기능 중 하나입니다. Extended Thinking은 단순히 더 좋은 답변을 얻는 것을 넘어, AI가 어떻게(How) 그 답변에 도달했는지 그 사고 과정을 단계별로 들여다볼 수 있게 해줍니다. 이것은 마치 AI의 머릿속에 작은 창문을 내어 그 생각의 흐름을 직접 관찰하는 것과 같습니다. 이번 글에서는 AI 에이전트 개발의 핵심 요소인 Extended Thinking의 개념과 중요성을 알아보고, LangChain을 활용하여 이 강력한 기능을 실제로 어떻게 구현할 수 있는지 구체적인 코드 예시와 함께 쉽고 상세하게 살펴보겠습니다.
Extended Thinking이란?: AI에게 생각할 시간을 주는 기술
우리가 어려운 문제를 풀 때 즉흥적으로 답하기보다 충분히 생각할 시간을 갖는 것처럼, Extended Thinking은 AI 모델에게 더 깊이 생각할 수 있는 유연성을 부여하는 기능입니다. 이 기능은 단순히 다른 모델로 전환하는 것이 아니라, 동일한 모델이 문제 해결에 더 많은 시간과 노력을 쏟도록 허용하는 방식입니다.
Extended Thinking이 활성화되면, 클로드는 최종 답변(text 블록)을 내놓기 전에 자신의 내부적인 추론 과정을 thinking 블록에 단계별로 출력합니다.
- 개념: 사용자의 질문을 받으면, AI는 먼저 문제 해결을 위한 계획을 세우고, 정보를 분석하며, 여러 가능성을 탐색하는 등 일련의 사고 과정을 거칩니다. Extended Thinking은 이 모든 내적 독백(internal monologue)을 텍스트 형태로 가시화하여 개발자에게 제공합니다.
- 비유: 유능한 셰프가 요리를 시작하기 전에 레시피를 읊어주는 것과 비슷합니다. "먼저, 양파를 캐러멜라이징될 때까지 볶은 다음, 다진 마늘과 향신료를 넣어 향을 낼 겁니다. 그 후에 주재료를 넣고 소스를 부어 졸여서 풍미를 극대화할 계획입니다."라고 설명해주는 것이죠. 우리는 이 과정을 들으며 요리가 어떤 방향으로 진행될지, 각 단계가 왜 필요한지 이해하고 최종 결과물을 더 신뢰하게 됩니다.
- 핵심 기능 - 사고 예산(Thinking Budget): 개발자(연구자)는 budget_tokens라는 파라미터를 통해 클로드가 사고 과정에 사용할 수 있는 최대 토큰 양을 직접 설정할 수 있습니다. 이는 AI에게 "이 문제는 복잡하니 최대 2000토큰 만큼 충분히 고민해 봐"라고 구체적인 '생각의 양'을 할당해주는 것과 같습니다.
왜 Extended Thinking이 중요한가?: 투명성과 제어, 두 마리 토끼 잡기
AI 에이전트가 단순히 정답을 맞히는 것을 넘어 신뢰할 수 있는 파트너가 되기 위해서는 그 과정의 투명성과 제어 가능성이 필수적입니다. Extended Thinking은 바로 이 두 가지 핵심 가치를 제공합니다.
- 신뢰와 디버깅: AI가 내놓은 결과가 예상과 다를 때, 우리는 thinking 블록을 통해 AI의 논리 흐름을 추적하고 어느 지점에서 실수가 발생했는지 쉽게 파악할 수 있습니다. 이는 마치 코드의 버그를 잡기 위해 디버거로 한 줄씩 실행하며 변수의 값을 확인하는 것과 같습니다. 이를 통해 개발자는 AI의 작동 방식을 더 깊이 이해하고 시스템을 안정적으로 개선할 수 있습니다.
- 향상된 에이전트 성능: 복잡하고 여러 단계의 추론이 필요한 작업에서 '생각할 시간'은 곧 성능 향상으로 이어집니다. 앤트로픽의 실험에 따르면, Extended Thinking을 활성화한 클로드 3.7 Sonnet은 게임 '포켓몬스터 레드'에서 이전 버전들이 시작 지점의 집조차 벗어나지 못했던 것과 달리, 여러 체육관 관장들을 이기고 훨씬 멀리까지 진행하는 데 성공했습니다. 이는 AI가 다양한 전략을 시도하고, 이전의 가정을 수정하며, 목표를 향해 꾸준히 나아가는 능력이 크게 향상되었음을 보여줍니다.
- 정교한 멀티-에이전트 워크플로우: 여러 AI 에이전트가 협업하는 시스템에서 '매니저' 역할을 하는 AI는 '워커' AI의 thinking 블록을 검토하여 그 계획의 타당성을 평가한 후 다음 단계를 승인할 수 있습니다. 이는 중요한 작업을 수행하기 전에 이중, 삼중으로 안전장치를 마련하는 효과를 낳아 훨씬 더 정교하고 안정적인 서비스 구축을 가능하게 합니다.
LangChain으로 Extended Thinking 구현하기
이제 LangChain 프레임워크를 사용하여 클로드의 Extended Thinking 기능을 실제로 구현하는 방법을 알아보겠습니다. 아래 코드는 LangChain을 통해 클로드 4 Sonnet 모델을 호출하면서 Extended Thinking을 활성화하는 예제입니다. "50.653의 세제곱근은 무엇인가?"라는 다소 계산이 필요한 질문을 던져보겠습니다.
import json
from langchain_anthropic import ChatAnthropic
# ChatAnthropic 모델 초기화
# 'thinking' 파라미터를 설정하여 Extended Thinking 기능을 활성화합니다.
llm = ChatAnthropic(
model="claude-sonnet-4-20250514",
max_tokens=5000,
thinking={"type": "enabled", "budget_tokens": 2000},
)
# 모델에 질문을 던집니다.
response = llm.invoke("What is the cube root of 50.653?")
# 반환된 응답의 content를 JSON 형태로 예쁘게 출력합니다.
print(json.dumps(response.content, indent=2))
위 코드를 실행하면 다음과 같은 형식의 JSON 응답을 받게 됩니다.
[
{
"signature": "ErUBCkYIARgCIkCx7bIPj35jGPHpoVOB2y5hvPF8MN4lVK75CYGftmVNlI4axz2+bBbSexofWsN1O/prwNv8yPXnIXQmwT6zrJsKEgwJzvks0yVRZtaGBScaDOm9xcpOxbuhku1zViIw9WDgil/KZL8DsqWrhVpC6TzM0RQNCcsHcmgmyxbgG9g8PR0eJGLxCcGoEw8zMQu1Kh1hQ1/03hZ2JCOgigpByR9aNPTwwpl64fQUe6WwIw==",
"thinking": "To find the cube root of 50.653, I need to find the value of $x$ such that $x^3 = 50.653$.\n\nI can try to estimate this first. \n$3^3 = 27$\n$4^3 = 64$\n\nSo the cube root of 50.653 will be somewhere between 3 and 4, but closer to 4.\n\nLet me try to compute this more precisely. I can use the cube root function:\n\ncube root of 50.653 = 50.653^(1/3)\n\nLet me calculate this:\n50.653^(1/3) \u2248 3.6998\n\nLet me verify:\n3.6998^3 \u2248 50.6533\n\nThat's very close to 50.653, so I'm confident that the cube root of 50.653 is approximately 3.6998.\n\nActually, let me compute this more precisely:\n50.653^(1/3) \u2248 3.69981\n\nLet me verify once more:\n3.69981^3 \u2248 50.652998\n\nThat's extremely close to 50.653, so I'll say that the cube root of 50.653 is approximately 3.69981.",
"type": "thinking"
},
{
"text": "The cube root of 50.653 is approximately 3.6998.\n\nTo verify: 3.6998\u00b3 = 50.6530, which is very close to our original number.",
"type": "text"
}
]
결과를 보면 응답이 두 개의 블록으로 나뉘어 있는 것을 확인할 수 있습니다.
- thinking: 모델이 문제를 어떻게 접근했는지 명확하게 보여줍니다. 먼저 3의 세제곱(27)과 4의 세제곱(64)을 통해 답이 3과 4 사이에 있을 것이라고 추정하고, 이후 더 정밀한 계산을 통해 값을 구한 뒤, 마지막으로 검산까지 하는 단계별 사고 과정이 그대로 담겨 있습니다.
- text: 모든 사고 과정을 마친 후, 사용자(User, Human)에게 제공되는 최종적이고 깔끔하게 정돈된 답변입니다.
이처럼 thinking은 AI의 추론 과정을 투명하게 보여주어, 우리는 모델이 단순히 답을 '찍은' 것이 아니라 논리적인 단계를 거쳐 결론에 도달했음을 확신할 수 있습니다.
마무리하며
Extended Thinking은 AI 모델의 '블랙박스'를 열어 그 속을 들여다볼 수 있게 해주는 강력한 도구입니다. 이는 단순히 흥미로운 기능을 넘어, AI 시스템의 신뢰성, 안정성, 성능을 한 단계 끌어올리는 핵심적인 패러다임의 전환을 의미합니다. 개발자는 AI의 사고 과정을 직접 확인하고 제어함으로써 더 정교하고 예측 가능한 AI 에이전트를 구축할 수 있으며, 사용자는 AI가 내놓은 결과물을 더 깊이 신뢰할 수 있게 됩니다. Extended Thinking을 이해하고 활용하는 것은, 우리와 AI 멀티 에이전트 서비스를 통해서 비지니스 문제를 풀는 핵심 열쇠가 될 것입니다.
https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking#how-extended-thinking-works
Building with extended thinking - Anthropic
When using streaming with thinking enabled, you might notice that text sometimes arrives in larger chunks alternating with smaller, token-by-token delivery. This is expected behavior, especially for thinking content. The streaming system needs to process c
docs.anthropic.com
https://python.langchain.com/docs/integrations/chat/anthropic/#extended-thinking
ChatAnthropic | 🦜️🔗 LangChain
This notebook provides a quick overview for getting started with Anthropic chat models. For detailed documentation of all ChatAnthropic features and configurations head to the API reference.
python.langchain.com
'Theory > Agents' 카테고리의 다른 글
| 컨텍스트 엔지니어링(Context Engineering): AI 에이전트의 기억력과 집중력을 극대화하는 기술 (0) | 2025.11.17 |
|---|---|
| Deep Agent: 단순 반복을 넘어, 복잡한 문제를 해결하는 AI의 새로운 진화 (0) | 2025.08.13 |
| 컨텍스트 엔지니어링(Context Engineering): 프롬프트 너머, AI 에이전트 성공의 핵심 (0) | 2025.06.30 |
| Best-of-N (BoN): 가장 좋은 하나를 고르는 단순함의 힘, LLM 성능 극대화의 비밀 (0) | 2025.06.27 |
| AI가 더 깊이 생각하게 만드는 기술: 테스트-타임 스케일링(Test-Time Scaling)과 예산 강제(Budget Forcing) (0) | 2025.06.27 |