콘텐츠로 이동

example-01-도구-호출-루프

예시 01 · 도구 호출 루프의 가장 짧은 형태

섹션 제목: “예시 01 · 도구 호출 루프의 가장 짧은 형태”

Anthropic 공식 문서의 가장 단순한 예 — web_search 서버 도구 호출.

import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=[{"type": "web_search_20260209", "name": "web_search"}],
messages=[{"role": "user", "content": "What's the latest on the Mars rover?"}],
)
print(response.content)

(원문: sources/01-anthropic-official/api/tool-use-overview.md, verbatim:true)

  1. 사용자가 질문을 보낸다.
  2. 모델이 도구 호출이 필요하다고 판단 한다(학습 컷오프 이후 사실).
  3. 서버 도구 이므로 Anthropic이 자동으로 검색을 실행한다.
  4. 결과가 모델 컨텍스트로 돌아온다.
  5. 모델이 결과를 종합해 사용자에게 답한다.

모델은 stop_reason: "tool_use"로 멈추고 tool_use 블록을 반환한다. 사용자 코드가 함수를 실행하고 tool_result로 다시 모델에 보낸다. 이 왕복을 환경 루프 라고 부른다(02-구조 참고).

  • 도구를 여러 개 등록한다(검색·코드 실행·파일 읽기 등).
  • 모델이 언제 어느 도구를 부를지 스스로 결정하도록 둔다.
  • 정지 조건을 정한다(작업 완료, 토큰 한도, 사람 승인 필요).
  • 컨텍스트 위생(04장)·검증 패스(05장)·OMC 라우팅(06장)을 결합한다.
  • sources/01-anthropic-official/api/tool-use-overview.md (verbatim)
  • sources/01-anthropic-official/prompting/building-effective-agents.md