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

Claude를 위한 도구를 구축하려면 즉시 명확하게 드러나지 않는 여러 가지 문제를 해결해야 합니다. Claude가 미래 날짜에 대한 알림을 설정하도록 하려고 하면, Claude가 현재 날짜는 알고 있지만 정확한 시간은 항상 알지 못하고, 복잡한 날짜 연산에 어려움을 겪으며, 실제로 알림을 설정할 수 있는 내장 방법이 없다는 것을 금방 알게 됩니다.

해결책은 이러한 특정 작업을 처리하는 맞춤형 도구를 만드는 것입니다. 알림 시스템의 경우, 세 가지 별도의 도구가 필요합니다: 현재 날짜와 시간을 가져오는 도구, 날짜에 기간을 더하는 도구, 그리고 실제로 알림을 설정하는 도구입니다.

이것이 어려운 이유

Claude는 시간 기반 작업에 있어 몇 가지 한계가 있습니다:

  • Claude는 현재 날짜는 알 수 있지만, 정확한 시간은 알지 못할 수 있습니다
  • Claude는 특히 여러 날 이후의 미래를 볼 때 시간 기반 덧셈을 잘 처리하지 못하는 경우가 있습니다
  • Claude는 알림을 설정하는 방법을 모릅니다

필요한 도구들

이러한 문제를 해결하기 위해, 세 가지 전용 도구를 만들게 됩니다:

  • 현재 날짜 시간 가져오기 - Claude는 현재 날짜와 시간을 알아야 합니다
  • 날짜 시간에 기간 더하기 - Claude는 날짜 시간 덧셈에 완벽하지 않습니다
  • 알림 설정하기 - 알림을 설정할 방법이 필요합니다

도구 함수의 작동 방식

도구 시스템은 서버와 Claude 사이의 특정 흐름을 따릅니다. Claude가 추가 정보가 필요할 때 호출할 수 있는 함수를 작성하고, Claude는 응답을 구성하는 데 도움이 되는 결과를 받습니다.

이 과정에는 여러 단계가 포함됩니다: 도구 함수 작성, JSON 스키마 명세 생성, 해당 스키마로 Claude 호출, Claude가 요청할 때 도구 실행, 그리고 결과를 Claude에게 다시 제공하는 것입니다.

도구 함수 작성하기

도구 함수는 Claude가 사용자를 돕기 위해 추가 정보가 필요하다고 판단할 때 실행되는 일반적인 Python 함수입니다. 효과적으로 작성하는 방법은 다음과 같습니다:

모범 사례

  • 이름이 잘 지어진, 설명적인 인자를 사용하세요 (이는 나중에 중요해집니다)
  • 입력값을 검증하고, 검증에 실패하면 오류를 발생시키세요
  • 의미 있는 오류를 반환하세요 - Claude는 오류가 발생하면 함수를 두 번째로 호출하려고 시도합니다

첫 번째 도구 만들기

가장 간단한 도구인 현재 날짜와 시간을 가져오는 것부터 시작해 보겠습니다. 이 함수는 날짜 형식 매개변수를 받아 현재 타임스탬프를 반환합니다:

python
from datetime import datetime, timedelta

def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
    return datetime.now().strftime(date_format)

이 함수는 간단하지만 핵심 원칙을 따릅니다: 설명적인 이름을 가지고 있고, 합리적인 기본값을 가진 이름이 잘 지어진 매개변수를 받으며, 약속한 것을 정확히 반환합니다.

JSON 스키마 명세

함수를 작성한 후에는, 이를 Claude에게 설명하는 JSON 스키마를 작성해야 합니다. 이 스키마는 함수가 필요로 하는 인자를 Claude에게 알려주고, Claude가 도구를 언제 어떻게 사용해야 하는지 이해하는 데 도움을 줍니다.

JSON 스키마는 두 가지 목적을 수행합니다: Claude가 함수에 필요한 인자를 이해하는 데 도움을 주며, 이는 단순히 LLM 개념이 아니라 - JSON 스키마는 많은 프로그래밍 맥락에서 데이터 검증에 일반적으로 사용됩니다. 스키마 생성을 도와주는 온라인 도구도 많이 있습니다.

스키마 모범 사례

  • 도구가 무엇을 하는지, 언제 사용해야 하는지, 그리고 무엇을 반환하는지 설명하세요
  • 설명은 3~4개 문장을 목표로 하세요
  • 매개변수에 대한 상세한 설명을 제공하세요

도구 함수를 작성하고 스키마를 정의했다면, 이제 이를 Claude와 통합하여 알림 설정과 같은 실제 작업을 처리할 수 있는 더 정교한 AI 상호작용을 구축할 준비가 된 것입니다.