도구·서비스

도구 사용

Tool Use · Function Calling

모델이 직접 실행하지 않고, 호출할 함수를 구조화된 형식으로 "요청"하면 애플리케이션이 실행해 결과를 돌려주는 방식. Anthropic의 tool use, OpenAI의 function calling이 여기에 해당합니다.

10

도구 사용(Tool Use) 또는 함수 호출(Function Calling)은 모델이 직접 코드를 실행하는 대신, 호출할 함수를 구조화된 형태로 "요청"하면 여러분의 애플리케이션이 실행하고 그 결과를 모델에 돌려주는 방식입니다. 에이전트가 외부 세계와 상호작용하는 가장 기본적인 통로입니다.

어떻게 동작하나

  • Anthropic: Claude가 요청과 도구 설명을 보고 호출 여부를 정해 stop_reason "tool_use"와 호출 블록을 반환 → 앱이 실행 → tool_result를 다시 전송합니다. 도구는 JSON input_schema로 정의하고, strict 옵션으로 스키마 준수를 강제할 수 있습니다.

  • OpenAI function calling의 5단계: ① 사용할 도구와 함께 요청 → ② 모델이 tool call 반환 → ③ 앱에서 실행 → ④ 그 결과를 담아 다시 요청 → ⑤ 최종 응답(또는 추가 호출).

  • 기본값(tool_choice: auto)에서는 모델이 매 턴 도구를 부를지 바로 답할지 스스로 정하며, 시스템 프롬프트나 tool_choice로 강제할 수 있습니다.

이렇게 쓰여요

  • "오늘 서울 날씨 알려줘"에 모델이 get_weather(location) 호출을 요청

  • DB 조회 도구가 돌려준 JSON 결과를 모델이 자연어로 요약

주의할 점

모델은 호출을 "요청"만 할 뿐 실행은 애플리케이션의 몫입니다. 또 모호한 프롬프트는 잘못된 파라미터 추측(OpenAI)이나 되묻기(Claude)로 이어질 수 있으니, 도구 설명과 스키마를 명확히 작성하세요.

함께 보면 좋아요

공식 가이드