Function calling 이 실제로 무엇
Function calling (tool use 라고도) 이 학습된 output format + orchestration wrapper. 모델이 tool 호출 원하면 structured JSON (또는 등가물) emit 하도록 post-train. External 시스템이 그 output 파싱, tool 실행, 결과를 다른 모델 input 으로 다시 feed. 모델 backbone unchanged.
두 조각 — 어느 것도 architecture 아님
- Structured output format emit 하도록 모델 학습. Post-training data — 언제 어떻게 tool-call JSON 생산할지 보여주는 예시.
- Tool 실행하는 execution 레이어. Application 코드 — function dispatcher, sandbox, API 호출, retry 로직.
Reasoning + tool 조합
현대 reasoning 모델 (o4-mini, extended thinking 중 tool use 하는 Claude) 이 thinking phase 중 tool 호출 허용해서 line blur. 이것도 architecture 아냐 — 더 풍부한 post-training format ("thinking, OR tool 호출, OR 최종 답 어느 시점에든 emit 가능") + thought 중 tool 실행하는 orchestration.
모델이 'tool use 좋음' 일 때 변하는 것
- Tool-call 예시의 post-training data quality 와 양.
- 모델이 tool error 와 retry 에서 얼마나 잘 회복.
- 모델이 tool call 얼마나 reliably 포맷 (correct schema, hallucinated tool 없음).
안 변하는 것
네트워크 wiring. Chat-completions API 와 right post-training 가진 어떤 base 모델도 tool call 가능. Tool use enable, disable, partial 어떤 거든 architecture unchanged.