응답에는 tool_use의 stop_reason과 다음을 포함하는 하나 이상의 tool_use 콘텐츠 블록이 있습니다:
id: 이 특정 도구 사용 블록의 고유 식별자입니다. 나중에 도구 결과를 매칭하는 데 사용됩니다.
name: 사용되는 도구의 이름입니다.
input: 도구의 input_schema를 준수하는, 도구에 전달되는 입력을 포함하는 객체입니다.
클라이언트 도구에 대한 도구 사용 응답을 받으면 다음을 수행해야 합니다:
tool_use 블록에서 name, id, input을 추출합니다.
해당 도구 이름에 대응하는 코드베이스의 실제 도구를 실행하고 도구 input을 전달합니다.
role이 user인 새 메시지와 tool_result 타입 및 다음 정보를 포함하는 content 블록을 전송하여 대화를 계속합니다:
tool_use_id: 이 결과가 대응하는 도구 사용 요청의 id입니다.
content (선택 사항): 도구의 결과로, 문자열(예: "content": "15 degrees"), 중첩된 콘텐츠 블록 목록(예: "content": [{"type": "text", "text": "15 degrees"}]), 또는 문서 블록 목록(예: "content": [{"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "15 degrees"}}])입니다. 이러한 콘텐츠 블록은 text, image, document, 또는 search_result 타입을 사용할 수 있습니다.
is_error (선택 사항): 도구 실행이 오류로 끝난 경우 true로 설정합니다.
도구 결과를 받은 후, Claude는 해당 정보를 사용하여 원래 사용자 프롬프트에 대한 응답 생성을 계속합니다.
서버 도구의 결과 처리
Claude는 도구를 내부적으로 실행하고 추가적인 사용자 상호작용 없이 결과를 응답에 직접 통합합니다.