모델이 한 응답에 3 개 tool_calls 돌려준다 = '이 셋은 독립적이라 병렬 가능' 의 신호. Sequential 실행은 wall time 의 2/3 낭비. asyncio.gather (또는 sync 면 threading) 으로 병렬 실행, 같은 followup turn 에 모든 결과 함께 반환.
왜 plural 인가
tool_calls 가 array 인 이유 — 여러 tool 동시 호출이 first-class 패턴. 한 turn 에 weather, news, calendar 동시 fetch — 사용자 한테는 한 번의 wait.
Ordering 필요할 때
parallel_tool_calls=False = turn 당 1 tool. Step N 이 step N-1 결과에 의존하는 pipeline 에 적합. 느려도 명시적. Default 는 True (parallel).
Speedup 측정
3 cities weather fetch 같은 작업으로 parallel vs sequential wall time 측정. Gather 가 거의 max(t1,t2,t3) 에 끝, sequential 은 sum. Speedup factor 가 직관에 박혀.