도구를 잘 쓰게 하려니 느려졌다 — gpt-5-mini에서 Haiku로
비서가 도구를 제대로 못 썼다. 추론을 올려 도구를 잘 쓰게 했더니 이번엔 느려져 타임아웃. 추론 없이도 도구를 잘 쓰는 Claude Haiku로 갈아탄 이야기 — 그리고 더 비싼 출력을 흑자에 맞춘 법.
도구를 잘 쓰게 하려니 느려졌다 — gpt-5-mini에서 Haiku로
fecit 안에는 대화형 비서가 있습니다. “내일 3시에 운동 추가하고 집중 태스크로 해줘”라고 말하면, 그 자리에서 할 일을 만들고 일정을 잡고 집중 태스크로 올려줍니다.
핵심은 비서가 말만 하는 게 아니라 실제로 도구를 부르는 것입니다. “추가했어요”라고 답하려면, 그 전에 진짜 할 일 생성 도구를 호출해야 하죠.
그런데 gpt-5-mini 위에서, 비서는 도구를 제대로 못 썼습니다.
문제: 말은 하는데 손은 안 움직였다
“만들어 드릴게요”라고 해놓고 정작 생성 도구를 안 부르는 일이 잦았습니다. 사용자 입장에선 됐다는데 아무것도 안 생긴 거죠. 가장 나쁜 실패입니다.
gpt-5-mini는 추론(reasoning) 모델이라, 얼마나 깊이 생각할지 조절하는 손잡이가 있습니다. 추론을 최소로 두면 빠르지만, 바로 이 “말만 하고 도구는 안 부르는” 문제가 터졌습니다. 도구를 안정적으로 부르게 하려면 추론을 올려야 했어요.
그런데 추론을 올리니 느려졌다
추론을 올리자 도구는 잘 부르기 시작했습니다. 대신 시간이 갔습니다. 생각하는 만큼 늦어졌고, 클라이언트는 일정 시간(60초) 동안 신호가 없으면 연결을 끊는데, 길어진 추론이 그 침묵에 걸렸습니다. 화면엔 “응답이 지연되고 있어요.” 가 떴고, 답이 중간에 잘리기도 했습니다.
정리하면 이런 막다른 길이었습니다.
- 추론 최소/낮음: 빠르지만 도구를 안 부름
- 추론 중간: 도구는 잘 부르는데 너무 느려서 타임아웃 + 답 잘림
도구를 잘 쓰는 것과 빠른 것을 동시에 주는 설정이 없었습니다. 지연은 병이 아니라, 이 모델에게서 도구 사용을 억지로 끌어내는 대가였어요.
갈아타기: Claude Haiku 4.5
그래서 Anthropic의 Claude Haiku 4.5로 바꿨습니다. Haiku는 추론 없이도 도구를 잘 부릅니다. Claude 계열이 도구 사용에 native로 강하거든요. 그래서 thinking을 끈 채로도 — 도구를 안정적으로 부르면서, 동시에 즉답합니다. 추론을 올릴 필요가 없으니, 추론 때문에 느려질 일도 없어진 겁니다. 막다른 길의 두 벽이 같이 사라졌습니다.
다만 모델 이름만 바꾸는 일은 아니었습니다. OpenAI와 Anthropic은 메시지를 표현하는 방언이 다릅니다.
- 도구 실행 결과가 OpenAI에선
tool이라는 별도 역할인데, Anthropic에선 user 메시지 안의 블록입니다. - 시스템 프롬프트가 OpenAI에선 첫 메시지인데, Anthropic에선 별도 파라미터입니다.
- 도구 정의 모양도, 프롬프트 캐시 거는 법도 다릅니다 — 캐시 키 대신
cache_control마커로.
그래서 에이전트 루프를 통째로 다시 썼습니다.
반전: 돈
복병이 있었습니다. Haiku는 출력 토큰이 더 비쌉니다 — 100만 토큰당 5달러로, gpt-5-mini의 2달러보다 2.5배. 그리고 fecit은 부트스트랩이라 모든 AI 기능은 건당 흑자여야 합니다.
그래서 “보통은 작을 거예요” 같은 희망 섞인 추정 말고 엄격한 worst-case를 쟀습니다. 재보니 출력이 비용의 대부분이었습니다. 그래서 손잡이를 조였어요 — 도구 루프의 라운드 수를 줄이고, 답변당 출력 상한을 낮추고, 도구 결과 길이를 잘랐습니다. 동시에 전 유저가 공유하는 정적 부분(시스템 프롬프트 + 도구 스펙)은 캐시해 거의 공짜로 재사용하게 했습니다. worst-case를 한 턴이 버는 값 아래로 다시 눌렀습니다.
교훈
문제를 증상이 아니라 원인으로 봐야 했습니다. 겉으로 드러난 건 “느리다”였지만, 진짜 원인은 “도구를 못 쓴다”였고, 느림은 그걸 억지로 고치다 생긴 부작용이었어요. 모델을 그 본성에 거슬러 쓰면 이런 대가를 치릅니다 — gpt-5-mini는 도구 사용을 위해 추론이라는 비싼 우회로가 필요했고, Haiku는 그 일을 곧장 해냈습니다.
그리고 주머니가 가벼울수록 희망이 아니라 worst-case로 계산해야 합니다. 캐싱이 토큰당 더 비싼 모델을 흑자로 버티게 해줬고요.
비서는 이제 도구를 잘 쓰고, 빠릅니다. 다음은 그 자리에 기쁨을 채울 차례입니다. 그건 다음 글에서.