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

Claude로 AI 애플리케이션을 구축할 때, 실시간 정보에 대한 접근 권한이나 작업을 수행할 수 있는 능력을 Claude에게 부여해야 하는 경우가 많습니다. 이때 도구 함수(tool functions)가 필요합니다 - 이는 Claude가 사용자를 돕기 위해 추가 데이터가 필요할 때 호출할 수 있는 Python 함수입니다.

위 이미지는 우리가 구현할 세 가지 필수 도구를 보여줍니다: 현재 날짜/시간 가져오기, 날짜에 기간 추가하기, 알림 설정하기입니다. 첫 번째 도구부터 시작해 보겠습니다.

도구 함수란 무엇인가요?

도구 함수는 Claude가 작업을 완료하기 위해 추가 정보가 필요하다고 판단할 때 자동으로 실행되는 일반적인 Python 함수입니다. 예를 들어, 사용자가 "지금 몇 시예요?"라고 물으면, Claude는 현재 시간을 얻기 위해 날짜/시간 도구를 호출합니다.

다음은 날씨 도구 함수의 예시입니다. 입력값을 검증하고 명확한 오류 메시지를 제공하는 방식에 주목하세요 - 이는 우리가 따를 핵심 모범 사례입니다.

도구 함수 작성을 위한 모범 사례

도구 함수를 작성할 때는 다음 가이드라인을 염두에 두세요:

  • 설명적인 이름 사용: 함수 이름과 매개변수 이름 모두 그 목적을 명확하게 나타내야 합니다
  • 입력값 검증: 필수 매개변수가 존재하고 유효한지 항상 확인하세요
  • 의미 있는 오류 메시지 제공: Claude가 오류를 받으면, 수정된 매개변수로 함수를 다시 호출하려고 시도할 수 있습니다

오류 처리는 Claude가 실패로부터 학습할 수 있기 때문에 특히 중요합니다. "위치는 비워둘 수 없습니다"와 같은 명확한 오류 메시지를 반환하면, Claude는 적절한 위치 값으로 함수 호출을 재시도할 수 있습니다.

첫 번째 도구 함수 만들기

현재 날짜와 시간을 가져오는 함수를 만들어 보겠습니다. 이 함수는 날짜가 표시되는 방식을 제어하는 형식 문자열을 받습니다:

python
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    if not date_format:
        raise ValueError("date_format cannot be empty")
    return datetime.now().strftime(date_format)

기본 형식 문자열 "%Y-%m-%d %H:%M:%S"는 "2024-03-15 14:30:45"와 같은 출력을 생성합니다. 다른 형식 문자열을 전달하여 이를 사용자 지정할 수 있습니다:

python
# 시간만 가져오기
get_current_datetime("%H:%M")  # Returns "14:30"

# 다른 날짜 형식 가져오기
get_current_datetime("%B %d, %Y")  # Returns "March 15, 2024"

입력값 검증

검증 확인 if not date_format:은 빈 문자열로 날짜를 형식화하려고 시도하지 않도록 보장합니다. Claude가 이런 실수를 하는 경우는 드물지만, 명확한 오류 메시지를 제공하면 AI가 무엇이 잘못되었는지와 이를 어떻게 수정해야 하는지 이해하는 데 도움이 됩니다.

Claude가 오류를 만나면, 정확한 오류 메시지를 확인합니다. 이 피드백 루프는 Claude가 접근 방식을 조정하고 수정된 매개변수로 다시 시도할 수 있게 합니다.

다음 단계

이 도구 함수는 첫 번째 단계일 뿐입니다. 다음으로, 이 함수를 Claude에게 설명하는 JSON 스키마를 만들고, 이를 채팅 시스템에 통합해야 합니다. 함수 자체는 간단한 Python이지만, 복잡성은 이를 Claude의 도구 호출 시스템에 제대로 연결하는 데 있습니다.