강좌
65개 강의 중 28번째 · Claude with Amazon Bedrock여러 도구 추가하기
Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Not nowSign in

이제 하나의 도구가 작동하게 되었으니, 프로젝트를 완성하기 위해 나머지 두 개의 도구인 add_duration_to_datetime과 set_reminder를 추가할 차례입니다. 좋은 소식은 기반이 마련되어 있으면 새로운 도구를 추가하는 것이 간단하다는 점입니다.

사전 구축된 함수와 스키마

시간을 절약하기 위해, 두 개의 추가 함수에 대한 구현이 해당 JSON 스키마 명세와 함께 이미 제공되어 있습니다. 이전 코드 셀에서 이를 확인할 수 있습니다:

  • add_duration_to_datetime - 다양한 시간 단위에 대한 날짜 연산을 처리합니다
  • set_reminder - 리마인더를 생성합니다(현재는 단순히 출력만 하지만, 실제 리마인더 시스템과 통합하도록 확장할 수 있습니다)

각 함수에는 예상되는 매개변수와 그 타입을 정의하는 해당 JSON 스키마가 함께 제공됩니다.

대화에 도구 추가하기

첫 번째 단계는 새로운 도구 스키마를 대화 함수에 포함시키는 것입니다. run_conversation 함수에서 tools 배열에 추가 스키마를 추가하세요:

python
tools=[
    get_current_datetime_schema,
    add_duration_to_datetime_schema,
    set_reminder_schema
]

도구 함수 연결하기

다음으로, 새로운 도구 이름을 처리하도록 run_tool 함수를 업데이트해야 합니다. 두 개의 추가 조건 분기를 추가하세요:

python
def run_tool(tool_name, tool_input):
    if tool_name == "get_current_datetime":
        return get_current_datetime(**tool_input)
    elif tool_name == "set_reminder":
        return set_reminder(**tool_input)
    elif tool_name == "add_duration_to_datetime":
        return add_duration_to_datetime(**tool_input)
    else:
        raise Exception(f"Unknown tool name: {tool_name}")

전체 시스템 테스트하기

모든 도구가 연결되면, 이제 여러 도구 호출이 필요한 복잡한 워크플로를 테스트할 수 있습니다. 예를 들어, Claude에게 "병원에 가는 것을 알려주는 리마인더를 설정해줘. 예약은 100일 후야"라고 요청하면 다음과 같은 일련의 작업이 실행됩니다:

  1. get_current_datetime을 사용하여 오늘 날짜를 가져옵니다
  2. add_duration_to_datetime을 사용하여 해당 날짜에 100일을 더합니다
  3. set_reminder를 사용하여 리마인더를 생성합니다

Claude는 요청을 논리적인 단계로 자동으로 분해하고, 각 도구 호출을 실행하기 전에 계획을 설명합니다. 출력에는 계산된 미래 날짜와 리마인더 설정 확인을 포함한 전체 워크플로가 표시됩니다.

핵심 요점

기본적인 도구 사용 인프라가 마련되어 있으면, 새로운 도구를 추가하는 데는 단 두 가지 간단한 단계만 필요합니다: tools 배열에 스키마를 포함시키는 것과 라우팅 함수에서 도구 이름을 처리하는 케이스를 추가하는 것입니다. 초기 설정은 복잡하게 느껴질 수 있지만, 여러 도구로 확장하는 것은 매우 관리하기 쉬워집니다.