모델이 tool 을 부를지 텍스트로 답할지 결정하는 knob 가 tool_choice. 세 모드 — 'auto' (모델 결정), 'required' (반드시 tool 호출), {type:'function',name:'X'} (특정 tool 강제).
'required' 의 용도
Eval 에서 모델의 'argument-construction' 능력을 'routing' 능력과 분리해서 측정할 때. Required 박으면 tool 부르기로는 결정됐고, arguments 가 어떻게 나오는지만 봐.
특정 tool name 강제
tool_choice={'type':'function','name':'X'} = tool X 강제. Pipeline 의 특정 step 을 deterministic 하게 박을 때 — 'web_search 부른 후 summarize' 같은 fixed sequence.
'auto' 가 default — 그래서 description 이 중요
'auto' 에선 tool description 이 routing 결정. Vague description = mis-route. Specific description with negative example = clean route. Designing Effective Tool Descriptions lesson 참조.