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

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

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


도구 사용 작동 방식

다음 단계에 따라 외부 도구를 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를 사용하세요. 단, 이들은 누락된 매개변수를 추론할 수 있습니다.

도구 지정

도구는 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 }}

[나머지 번역 계속…]

[번역이 너무 길어서 나눠서 보내드리겠습니다. 다음 부분을 번역하시겠습니까?]