Claude는 외부 클라이언트 측 도구 및 함수와 상호작용할 수 있어, 더 다양한 작업을 수행하기 위해 사용자가 직접 만든 도구를 Claude에 장착할 수 있습니다.

새로운 종합 도구 사용 과정을 통해 Claude와 함께하는 도구 사용의 모든 것을 배워보세요! 이 양식을 사용하여 아이디어와 제안을 계속 공유해주세요.

다음은 Messages API를 사용하여 Claude에 도구를 제공하는 방법의 예시입니다:

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 1024,
    "tools": [
      {
        "name": "get_weather",
        "description": "Get the current weather in a given location",
        "input_schema": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "The city and state, e.g. San Francisco, CA"
            }
          },
          "required": ["location"]
        }
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "What is the weather like in San Francisco?"
      }
    ]
  }'

도구 사용 방법

다음 단계에 따라 외부 도구를 Claude와 통합하세요:

1

Claude에 도구와 사용자 프롬프트 제공

  • API 요청에 도구의 이름, 설명, 입력 스키마를 정의합니다.
  • 이러한 도구가 필요할 수 있는 사용자 프롬프트를 포함합니다(예: “샌프란시스코의 날씨는 어떤가요?”).
2

Claude의 도구 사용 결정

  • Claude는 사용자의 질문에 도움이 될 수 있는 도구가 있는지 평가합니다.
  • 있다면, Claude는 적절한 형식의 도구 사용 요청을 구성합니다.
  • API 응답의 stop_reasontool_use로 표시되어 Claude의 의도를 알립니다.
3

도구 입력 추출, 코드 실행, 결과 반환

  • 사용자 측에서 Claude의 요청에서 도구 이름과 입력을 추출합니다.
  • 실제 도구 코드를 클라이언트 측에서 실행합니다.
  • tool_result 콘텐츠 블록이 포함된 새로운 user 메시지로 대화를 계속합니다.
4

Claude가 도구 결과를 사용하여 응답 작성

  • Claude는 원래 사용자 프롬프트에 대한 최종 응답을 작성하기 위해 도구 결과를 분석합니다.

참고: 3단계와 4단계는 선택사항입니다. 일부 워크플로우의 경우 Claude의 도구 사용 요청(2단계)만으로도 충분할 수 있으며, Claude에 결과를 다시 보낼 필요가 없습니다.

도구는 사용자가 제공

Claude는 내장된 서버 측 도구에 접근할 수 없다는 점을 유의해야 합니다. 모든 도구는 사용자가 각 API 요청에서 명시적으로 제공해야 합니다. 이를 통해 Claude가 사용할 수 있는 도구에 대해 사용자가 완전한 통제권과 유연성을 가질 수 있습니다.

컴퓨터 사용(베타) 기능은 예외입니다 - Anthropic이 제공하지만 사용자가 구현하는 도구를 도입합니다.


도구 사용 구현 방법

모델 선택

일반적으로 복잡한 도구와 모호한 쿼리에는 Claude 3.7 Sonnet, Claude 3.5 Sonnet 또는 Claude 3 Opus를 사용하세요. 이들은 여러 도구를 더 잘 처리하고 필요할 때 명확한 설명을 요청합니다.

간단한 도구에는 Claude 3.5 Haiku나 Claude 3 Haiku를 사용하세요. 단, 이들은 누락된 매개변수를 추론할 수 있습니다.

Claude 3.7 Sonnet을 도구 사용 및 확장 사고와 함께 사용하는 경우, 여기에서 자세한 정보를 참조하세요.

도구 지정

도구는 API 요청의 최상위 매개변수 tools에서 지정됩니다. 각 도구 정의에는 다음이 포함됩니다:

매개변수설명
name도구의 이름. 정규식 ^[a-zA-Z0-9_-]{1,64}$와 일치해야 합니다.
description도구의 기능, 사용 시기, 동작 방식에 대한 자세한 일반 텍스트 설명.
input_schema도구에 필요한 매개변수를 정의하는 JSON Schema 객체.

도구 사용 시스템 프롬프트

tools 매개변수로 Anthropic API를 호출하면, 도구 정의, 도구 구성, 사용자가 지정한 시스템 프롬프트에서 특별한 시스템 프롬프트를 구성합니다. 구성된 프롬프트는 모델에게 지정된 도구를 사용하도록 지시하고 도구가 제대로 작동하는 데 필요한 컨텍스트를 제공하도록 설계되었습니다:

In this environment you have access to a set of tools you can use to answer the user's question.
{{ FORMATTING INSTRUCTIONS }}
String and scalar parameters should be specified as is, while lists and objects should use JSON format. Note that spaces for string values are not stripped. The output is not expected to be valid XML and is parsed with regular expressions.
Here are the functions available in JSONSchema format:
{{ TOOL DEFINITIONS IN JSON SCHEMA }}
{{ USER SYSTEM PROMPT }}
{{ TOOL CONFIGURATION }}

[번역이 계속됩니다…]