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)
클라이언트 도구 vs 서버 도구
섹션 제목: “클라이언트 도구 vs 서버 도구”같은 문서가 두 종류를 나눈다.
| 종류 | 실행 위치 | 예 |
|---|---|---|
| 클라이언트 도구(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(서버)이 실행한다.
- 도구는 환각·컷오프·기억 부정확함을 측정 으로 우회하는 가장 강력한 한 가지 수단.