응답은 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는 도구를 내부적으로 실행하고 추가적인 사용자 상호작용 없이 결과를 응답에 직접 통합합니다.