Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

도구 함수를 작성한 후 다음 단계는 Claude에게 함수가 어떤 인자를 예상하는지, 그리고 이를 어떻게 사용해야 하는지 알려주는 JSON 스키마를 만드는 것입니다. 이 스키마는 Claude가 도구를 언제, 어떻게 호출해야 하는지 이해하기 위해 읽는 문서 역할을 합니다.

JSON Schema 이해하기

JSON Schema는 AI나 도구 호출에만 특화된 것이 아니라, 오랫동안 사용되어 온 널리 쓰이는 데이터 검증 명세입니다. AI 커뮤니티는 함수 매개변수를 설명하고 데이터를 검증하는 편리한 방법이기 때문에 이를 채택했습니다.

완전한 도구 명세는 세 가지 주요 부분으로 구성됩니다:

  • name - 함수 이름(예: "get_weather")
  • description - 도구가 무엇을 하는지, 언제 사용해야 하는지
  • input_schema - 인자를 설명하는 실제 JSON 스키마

효과적인 설명 작성하기

description 필드는 Claude가 도구를 이해하는 데 매우 중요합니다. 다음 모범 사례를 따르세요:

  • 도구가 무엇을 하는지, 언제 사용해야 하는지, 무엇을 반환하는지 설명하세요
  • 3~4개 문장을 목표로 하세요
  • 각 인자에 대해서도 상세한 설명을 제공하세요

input_schema 섹션은 표준 JSON Schema 형식을 사용하여 함수의 매개변수를 설명하며, 타입 정보와 각 인자에 대한 상세한 설명을 포함합니다.

쉬운 방법: Claude에게 스키마를 작성하게 하기

JSON 스키마를 처음부터 작성하는 대신, Claude 자체를 사용하여 생성할 수 있습니다. 다음은 그 과정입니다:

  1. 도구 함수를 복사합니다
  2. Claude로 이동하여 도구 호출을 위한 JSON 스키마를 작성해 달라고 요청합니다
  3. 도구 사용에 관한 Anthropic 문서를 컨텍스트로 포함합니다
  4. Claude가 모범 사례를 따라 올바르게 형식화된 스키마를 생성하도록 합니다

프롬프트는 다음과 같은 형태여야 합니다: "이 함수에 대한 도구 호출 목적의 유효한 JSON 스키마 명세를 작성하세요. 첨부된 문서에 나열된 모범 사례를 따르세요."

코드에 스키마 구현하기

Claude가 스키마를 생성하면 이를 코드 파일에 복사하세요. 체계적으로 관리하기 위해 function_name_schema와 같은 일관된 명명 패턴을 사용하세요:

python
get_current_datetime_schema = {
    "name": "get_current_datetime",
    "description": "Returns the current date and time formatted according to the specified format",
    "input_schema": {
        "type": "object",
        "properties": {
            "date_format": {
                "type": "string",
                "description": "A string specifying the format of the returned datetime. Uses Python's strftime format codes.",
                "default": "%Y-%m-%d %H:%M:%S"
            }
        },
        "required": []
    }
}

타입 안전성 추가하기

더 나은 타입 검사를 위해 Anthropic 라이브러리에서 ToolParam 타입을 가져와 사용하세요:

python
from anthropic.types import ToolParam

get_current_datetime_schema = ToolParam({
    # 여기에 스키마 딕셔너리를 입력하세요
})

이는 기능상 반드시 필요한 것은 아니지만, 나중에 코드에서 스키마를 사용할 때 타입 오류를 방지해 줍니다.

잘 작성된 도구 함수와 상세한 JSON 스키마의 조합은 Claude가 대화에서 도구를 이해하고 올바르게 사용하는 데 필요한 모든 것을 제공합니다.