모델이 한 응답에 tool_calls 세 개를 반환했다면 서로 독립적으로 실행할 수 있다는 뜻이야. 하나씩 처리하면 대기 시간이 합쳐지므로 asyncio.gather 또는 sync 코드의 threading 으로 병렬 실행하고, 결과는 같은 다음 turn 에 함께 보내.
tool_calls 가 배열인 이유
여러 도구를 한 turn 에 호출하는 게 기본 지원되는 패턴이기 때문이야. weather, news, calendar 를 동시에 가져오면 사용자는 한 번만 기다리면 돼.
순서가 필요할 때는 병렬 호출을 꺼
parallel_tool_calls=False 는 turn 마다 tool 하나만 호출하게 해. 다음 단계가 앞선 결과에 의존하는 pipeline 에서는 느리더라도 순서를 명시하는 편이 맞아. 기본값은 병렬 호출이 가능한 True 야.
실제 시간을 비교해
도시 세 곳의 날씨를 가져오는 작업으로 병렬과 순차 실행 시간을 재봐. 병렬 실행은 대체로 가장 느린 호출 하나의 시간에 가깝고, 순차 실행은 세 호출의 시간을 더한 만큼 걸려.