본문으로 건너뛰기

도구 사용 / 함수 호출

중급

도구 사용은 Claude가 당신이 정의한 함수 — 검색, 계산기, 데이터베이스, 모든 API — 를 호출하고 그 결과를 사용할 수 있게 해줍니다. 모든 에이전트의 토대입니다.

루프

  1. 도구 정의 목록(이름, 설명, JSON 스키마 입력)을 포함합니다.
  2. Claude가 그중 하나를 사용하기로 결정하면, tool_use 블록(인자 포함)을 반환하고 멈춥니다.
  3. 당신이 도구를 실행하고 출력을 tool_result로 다시 보냅니다.
  4. Claude는 답할 때까지 계속하며, 더 많은 도구를 호출할 수도 있습니다.

도구 정의하기 (Python)

tools = [{
"name": "get_weather",
"description": "Get current weather for a city.",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
}]

msg = client.messages.create(
model="claude-sonnet-4-6", max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

  • 설명은 프롬프트입니다. 명확한 도구 description과 파라미터 문서는 Claude가 언제/어떻게 도구를 호출하는지를 크게 개선합니다.
  • 받은 입력을 검증하세요 — 실행하기 전에, 절대 무턱대고 신뢰하지 마세요.
  • 오류를 결과로 반환하세요. 도구가 실패하면 Claude가 복구할 수 있도록 오류를 설명하는 tool_result를 보내세요.
  • 서버 측 도구. Anthropic은 내장 도구(예: 웹 검색, 코드 실행, 컴퓨터 사용)도 제공합니다 — 현재 메뉴는 문서를 확인하세요.

:::warning 도구 = 작업 = 위험 실제 작업을 수행하는 도구는 보안 모델을 상속합니다. 최소 권한을 적용하고 위험한 호출에는 사람을 루프 안에 두세요 — 에이전트 & 도구 보안 참고. :::

다음