본문 바로가기
C.W.K.
Stream
Lesson 04 of 10 · published

추론과 출력 — 둘을 분리해

~14 min · reasoning, output, structure

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

모델은 생각하고, 사용자는 결과를 읽어

추론은 모델이 일을 풀기 위한 것이고 출력은 사용자나 다음 처리 단계가 쓰기 위한 것이야. 둘을 섞으면 망설임과 생각의 사슬이 JSON 필드까지 새어 들어간 장황한 답이 나와.

분리하는 세 가지 방식

  • 숨은 추론 — Extended Thinking이나 o-series처럼 생각 과정이 사용자에게 닿지 않는 방식.
  • 태그로 나눈 추론 — <thinking> 뒤에 <answer>를 두어 운영자는 읽을 수 있고, 파서는 사용자에게 보내기 전에 생각 부분을 걷어내.
  • 호출을 나눈 추론 — 첫 호출은 계획을 만들고 두 번째 호출은 그 계획을 실행해. 하나는 감사 기록에, 다른 하나는 사용자 출력에 남겨.

추론 기록은 사고 조사 자료야

운영 중 문제가 생기면 추론 기록은 값진 증거가 돼. 숨은 추론 모델도 사용자에게는 가리면서 개발자에게 별도 정보를 줄 수 있어. 가능한 기록은 보관해. 다음 장애에서 원인을 찾는 시간이 크게 줄어들 거야.

Code

사용자에게 돌려주기 전 추론 제거·python
import re

def strip_thinking(text: str) -> tuple[str, str]:
    m = re.search(r"<thinking>(.*?)</thinking>\s*(.*)", text, flags=re.DOTALL)
    if not m:
        return "", text
    return m.group(1).strip(), m.group(2).strip()

thinking, answer = strip_thinking(model_text)
log_trace(thinking)
return answer

External links

Exercise

생각 과정이 최종 출력에 섞이는 프롬프트를 골라 태그로 추론과 답을 분리해봐. 추론은 기록하고 사용자에게는 답만 돌려줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.