모델이 턴마다 도구 여러 개 호출 가능
User가 복합 질문('Seoul이랑 Tokyo 날씨')하면 Claude가 한 assistant 턴에 tool_use 블록 여러 개 반환. 너가 실행, 결과 모음, 모든 tool_result 블록을 한 user 턴에 다시 보냄. Round-trip이 N+1에서 2로 떨어짐.
Concurrency는 너 일
프로토콜이 병렬 tool_use 블록 전달; 동시 실행은 너 코드 일. 블록에 대한 asyncio.gather나 Promise.all이 명백한 수. 응답의 도구 순서가 tool_use_id와 매치되는지 확인 — 모델이 id로 결과 연결.
Parallel 비활성 시점
도구가 ordering 의존성 있으면(A 호출 후 B), 첫 라운드에 tool_choice: {"type": "tool", "name": "A"}, 두 번째에 다른 choice. 또는 tool_choice의 disable_parallel_tool_use: True로 sequential 강제. 절제해서 — 대부분 도구 독립.
원칙: 병렬 tool use는 도구 독립일 때 free 지연 win. 디폴트 병렬; 의존성 진짜일 때만 sequential 강제.