Claude가 도구 호출을 요청한 후에는 함수를 실행하고 결과를 다시 전송해야 합니다. 이는 Claude에게 요청한 정보를 제공함으로써 도구 사용 워크플로를 완료합니다.
도구 함수 실행하기
Claude가 도구 사용 블록으로 응답하면, 입력 매개변수를 추출하여 함수를 호출합니다. 도구 매개변수에 접근하는 방법은 다음과 같습니다:
이중 별표(**)는 딕셔너리를 함수가 예상하는 키워드 인수로 풀어냅니다.
도구 결과 블록
도구를 실행한 후, 도구 결과 블록을 사용하여 결과를 Claude에게 다시 전송합니다. 이 블록에는 몇 가지 중요한 속성이 있습니다:

- tool_use_id - 원래 도구 사용 블록의 ID와 일치해야 합니다
- content - 문자열로 변환된 도구 함수의 출력입니다
- is_error - 실행 중 오류가 발생한 경우 true로 설정합니다
여러 도구 호출 처리하기
Claude는 단일 응답에서 여러 도구 호출을 요청할 수 있습니다. 예를 들어, 사용자가 "10 + 10은 얼마이고 30 + 30은 얼마인가요?"라고 질문하면, Claude는 두 개의 별도 도구 사용 블록을 보낼 수 있습니다:

각 도구 사용 블록은 고유한 ID를 가지며, 결과를 다시 전송할 때 이러한 ID를 일치시켜야 합니다:

이 ID 시스템은 결과가 다른 순서로 도착하더라도 Claude가 각 결과를 해당 요청과 올바르게 일치시킬 수 있도록 보장합니다.
후속 요청 전송하기
Claude에 대한 후속 요청에는 전체 대화 기록과 새로운 도구 결과가 포함되어야 합니다:
대화 흐름은 다음과 같습니다:

Claude가 도구를 다시 호출할 필요가 없을 가능성이 높더라도, 후속 요청에 도구 스키마를 포함하는 것을 잊지 마세요. Claude는 대화 기록에 있는 도구 참조를 이해하기 위해 스키마가 필요합니다.
전체 워크플로
전체 프로세스는 다음과 같습니다:
- 사용자가 도구 사용이 필요한 질문을 합니다
- Claude가 도구 사용 블록으로 응답합니다
- 요청된 도구 함수를 실행합니다
- 도구 결과와 함께 후속 요청을 전송합니다
- Claude가 도구 출력을 사용하여 최종 답변을 제공합니다
최종 요청에는 전체 메시지 기록, 도구 결과 블록, 도구 스키마가 포함됩니다. 그런 다음 Claude는 도구 실행 결과의 정보를 통합한 일반 텍스트 메시지로 응답합니다.