콘텐츠로 이동

01-개념

01 · 도구 사용 — LLM이 “손과 발”을 갖는 방식

섹션 제목: “01 · 도구 사용 — LLM이 “손과 발”을 갖는 방식”

도구 사용(Tool Use)은 LLM이 텍스트만 출력하는 대신 “이 함수를, 이 인자로 호출해 줘” 라는 구조화된 요청 을 출력할 수 있게 만드는 능력이다. 호출은 클라이언트 코드(또는 Anthropic 인프라)가 실행하고, 결과를 다시 모델의 컨텍스트로 돌려보낸다.

원문: “Tool use lets Claude call functions you define or that Anthropic provides. Claude decides when to call a tool based on the user’s request and the tool’s description, then returns a structured call that your application executes (client tools) or that Anthropic executes (server tools).”
의역: “도구 사용은 Claude가 사용자가 정의했거나 Anthropic이 제공한 함수를 호출하게 한다. Claude는 사용자 요청과 도구 설명을 보고 도구 호출 시점을 결정한 뒤, 구조화된 호출을 반환한다 — 클라이언트 도구는 사용자 앱이, 서버 도구는 Anthropic이 실행한다.”
— Anthropic, Tool use with Claude (sources/01-anthropic-official/api/tool-use-overview.md)

같은 문서가 두 종류를 나눈다.

종류실행 위치
클라이언트 도구(Client tool)사용자 앱사용자 정의 함수, bash, text_editor
서버 도구(Server tool)Anthropic 인프라web_search, code_execution, web_fetch, tool_search

클라이언트 도구의 경우 모델은 stop_reason: "tool_use"로 응답을 멈추고 tool_use 블록을 반환한다. 사용자 코드가 그 호출을 실행하고 tool_result로 다시 모델에 보낸다. 서버 도구는 이 왕복을 Anthropic이 처리해 주므로 사용자는 결과만 본다.

원문: “Tool access is one of the highest-leverage primitives you can give an agent. On benchmarks like LAB-Bench FigQA … and SWE-bench …, adding even basic tools produces outsized capability gains, often surpassing human expert baselines.”
의역: “도구 접근은 에이전트에게 줄 수 있는 가장 레버리지 큰 원시 기능이다. LAB-Bench FigQA·SWE-bench 같은 벤치마크에서 기본 도구만 추가해도 사람 전문가 기준선을 웃도는 능력 향상이 나타난다.”

이유는 단순하다 — 모델은 기억 이 부정확하지만, 도구는 측정 이 정확하다. 코드 실행 도구는 코드의 동작을 직접 본다. 검색 도구는 학습 컷오프 이후 사실을 가져온다. 파일 도구는 모델이 추측하는 대신 읽게 한다. 05장에서 본 환각 방지 4겹의 두 번째 겹이 이것이다.

  • 도구 사용 = LLM이 구조화된 함수 호출을 출력할 수 있게 만드는 능력.
  • 호출은 사용자 앱(클라이언트) 또는 Anthropic(서버)이 실행한다.
  • 도구는 환각·컷오프·기억 부정확함을 측정 으로 우회하는 가장 강력한 한 가지 수단.