web_search_20250305
, text_editor_20250124
)을 사용합니다.Claude에게 도구와 사용자 프롬프트 제공
Claude가 도구 사용을 결정
tool_use
의 stop_reason
을 가집니다.도구 실행 및 결과 반환
tool_result
콘텐츠 블록을 포함하는 새로운 user
메시지로 결과를 반환합니다Claude가 도구 결과를 사용하여 응답 작성
Claude가 서버 도구 실행
Claude가 서버 도구 결과를 사용하여 응답 작성
단일 도구 예시
get_weather
함수를 실행하고 새로운 user
메시지로 결과를 반환해야 합니다:병렬 도구 사용
tool_use
블록이 단일 어시스턴트 메시지에 포함되며, 모든 해당 tool_result
블록은 후속 사용자 메시지에서 제공되어야 합니다.다중 도구 예시
get_weather
와 get_time
도구 모두와 함께 두 가지를 모두 요청하는 사용자 쿼리의 예시입니다.get_weather
를 호출한 다음 날씨 결과를 받은 후 get_time
을 호출tool_use
블록을 출력tool_result
블록에 넣어 단일 user
메시지로 모든 도구 결과를 반환해야 합니다.정보 누락
get_weather
도구를 사용하여 위치를 지정하지 않고 Claude에게 “날씨가 어때?”라고 묻는다면, 특히 Claude Sonnet은 도구 입력에 대해 추측할 수 있습니다:순차 도구
get_location
도구를 사용하여 사용자의 위치를 가져온 다음 해당 위치를 get_weather
도구에 전달하는 예시입니다:get_location
도구를 호출하여 사용자의 위치를 가져옵니다. tool_result
에서 위치를 반환한 후, Claude는 해당 위치로 get_weather
를 호출하여 최종 답변을 얻습니다.전체 대화는 다음과 같을 수 있습니다:역할 | 내용 |
---|---|
사용자 | 제가 있는 곳의 날씨는 어떤가요? |
어시스턴트 | 먼저 현재 위치를 찾은 다음 그곳의 날씨를 확인하겠습니다. [get_location에 대한 도구 사용] |
사용자 | [일치하는 id와 San Francisco, CA 결과를 가진 get_location에 대한 도구 결과] |
어시스턴트 | [다음 입력을 가진 get_weather에 대한 도구 사용]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
사용자 | [일치하는 id와 “59°F (15°C), 대부분 흐림” 결과를 가진 get_weather에 대한 도구 결과] |
어시스턴트 | 샌프란시스코, CA에 있는 현재 위치를 기준으로, 지금 날씨는 59°F (15°C)이고 대부분 흐립니다. 꽤 시원하고 흐린 날입니다. 밖에 나가실 때는 가벼운 재킷을 가져가시는 것이 좋겠습니다. |
get_location
도구를 호출합니다.get_location
함수를 실행하고 tool_result
블록에서 “San Francisco, CA” 결과를 반환합니다.location
매개변수로 “San Francisco, CA”를 전달하여 get_weather
도구를 호출합니다(unit
은 필수 매개변수가 아니므로 추측된 unit
매개변수도 함께).get_weather
함수를 다시 실행하고 다른 tool_result
블록에서 날씨 데이터를 반환합니다.사고 연쇄 도구 사용
관련 도구(사용 가능한 경우)를 사용하여 사용자의 요청에 답하세요. 도구를 호출하기 전에 분석을 수행하세요. 먼저, 제공된 도구 중 사용자의 요청에 답하는 데 관련된 도구가 무엇인지 생각해 보세요. 둘째, 관련 도구의 각 필수 매개변수를 살펴보고 사용자가 직접 제공했거나 값을 추론하기에 충분한 정보를 제공했는지 확인하세요. 매개변수를 추론할 수 있는지 결정할 때, 특정 값을 지원하는지 모든 컨텍스트를 신중히 고려하세요. 모든 필수 매개변수가 존재하거나 합리적으로 추론할 수 있다면 도구 호출을 진행하세요. 하지만 필수 매개변수의 값 중 하나가 누락된 경우, 함수를 호출하지 마세요(누락된 매개변수에 대한 채우기 값을 사용하더라도) 대신 사용자에게 누락된 매개변수를 제공하도록 요청하세요. 제공되지 않은 선택적 매개변수에 대해서는 더 많은 정보를 요청하지 마세요.
JSON 모드
tool_choice
(도구 사용 강제 참조)를 설정해야 합니다input
을 도구에 전달할 것이므로 도구의 이름과 설명은 모델의 관점에서 작성되어야 한다는 점을 기억하세요.record_summary
도구를 사용하여 특정 형식에 따라 이미지를 설명하는 예시입니다.tools
parameter)tools
parameter in API requests (tool names, descriptions, and schemas)tool_use
content blocks in API requests and responsestool_result
content blocks in API requeststools
, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools
are provided, then a tool choice of none
uses 0 additional system prompt tokens.
Model | Tool choice | Tool use system prompt token count |
---|---|---|
Claude Opus 4.1 | auto , none any , tool | 346 tokens 313 tokens |
Claude Opus 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.7 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (Oct) (deprecated) | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (June) (deprecated) | auto , none any , tool | 294 tokens 261 tokens |
Claude Haiku 3.5 | auto , none any , tool | 264 tokens 340 tokens |
Claude Opus 3 (deprecated) | auto , none any , tool | 530 tokens 281 tokens |
Claude Sonnet 3 | auto , none any , tool | 159 tokens 235 tokens |
Claude Haiku 3 | auto , none any , tool | 264 tokens 340 tokens |
usage
메트릭의 일부로 입력 및 출력 토큰 수를 모두 출력합니다.