도구 조합
도구 조합 (Tool combinations)
Anthropic이 제공하는 도구들은 함께 동작하도록 설계됐어요. 흔한 에이전트 패턴은 워크플로의 보완적인 단계를 다루는 도구들을 짝지어요. 하나는 모으거나 발견하고, 다른 하나는 처리하거나 행동하죠. 아래 조합들은 시작점이지 강제가 아니에요. 작업에 맞게 섞어 쓰세요.
출처: 문서
본문
Anthropic이 제공하는 도구들은 함께 동작하도록 설계됐어요. 흔한 에이전트 패턴은 워크플로의 보완적인 단계를 다루는 도구들을 짝지어요. 하나의 도구가 모으거나 발견하면 다른 도구가 처리하거나 행동하는 구조예요. 아래 조합들은 시작점이지 강제가 아니에요. 작업에 맞게 섞으세요.
각 스니펫은 tools 배열만 보여줘요. 전체 요청 형태는 도구 호출 처리하기를 참고하세요.
연구 에이전트: web_search + code_execution (Research agent: web_search + code_execution)
검색이 소스를 찾고, 코드 실행이 분석하고 종합해요. Claude가 데이터를 검색한 뒤 그것을 처리·집계·시각화하는 Python을 작성해요. "이번 분기 실적을 상위 5개 클라우드 제공업체에서 비교해 줘"처럼 최신 정보와 그에 대한 의미 있는 계산을 모두 요구하는 질문에 잘 어울려요.
{
"tools": [
{ "type": "web_search_20260209", "name": "web_search" },
{ "type": "code_execution_20260521", "name": "code_execution" }
]
}
흐름은 보통 검색 → 실행 → (첫 패스에서 공백이 드러났다면) 선택적 추가 검색이에요. 코드 실행은 서버 쪽에서 동작하니, 클라이언트 쪽 샌드박스를 관리할 필요가 없어요.
코딩 에이전트: text_editor + bash (Coding agent: text_editor + bash)
텍스트 편집기가 파일을 읽고 수정하고, bash가 테스트와 빌드 명령을 돌려요. 코드 확인 → 편집 → 테스트 실행 → 반복의 전형적인 소프트웨어 개발 루프예요. 두 도구 모두 클라이언트에서 실행되므로, 애플리케이션이 어떤 파일과 명령에 접근할 수 있는지 제어해요.
{
"tools": [
{ "type": "text_editor_20250728", "name": "str_replace_based_edit_tool" },
{ "type": "bash_20250124", "name": "bash" }
]
}
에이전트가 신뢰할 수 없는 코드를 다룬다면 제한된 작업 디렉토리와 명령 허용 목록을 함께 사용하세요. 실행 계약은 텍스트 편집기 도구와 Bash 도구를 참고하세요.
인용 후 페치: web_search + web_fetch (Cite-then-fetch: web_search + web_fetch)
검색이 후보 URL을 드러내고, 페치가 관련 있는 URL의 전체 페이지 내용을 가져와요. 이렇게 하면 모든 걸 미리 가져올 필요가 없어요. Claude가 검색을 실행하고, 스니펫을 살펴보고, 실제로 관련 있어 보이는 두세 개 결과를 고른 뒤 그 페이지만 가져와요.
{
"tools": [
{ "type": "web_search_20260209", "name": "web_search" },
{ "type": "web_fetch_20260209", "name": "web_fetch" }
]
}
이 조합은 답이 검색 스니펫으로는 완전히 담기지 않는 장문 콘텐츠(문서 페이지, 기사, 사양서)에 있을 때 유용해요. 페치가 전체 페이지를 가져와서 Claude가 특정 구절을 인용할 수 있게 해 줘요.
오래 돌아가는 에이전트: memory + 다른 도구들 (Long-running agent: memory + any other tools)
메모리가 대화를 넘나들며 상태를 유지하고, 다른 도구들이 작업을 해요. 이전 세션을 기억해야 하는 아무 에이전트에 메모리를 추가하세요. 고객의 이전 문제를 기억하는 지원 에이전트나 지난주 결정을 추적하는 프로젝트 어시스턴트처럼요.
{
"tools": [{ "type": "memory_20250818", "name": "memory" }]
}
같은 배열의 memory 옆에 다른 도구들을 추가하세요.
메모리는 다른 도구들과 직교해요. 다른 도구들의 동작을 바꾸지 않고, 컨텍스트 창이 리셋되면 잃어버릴 사실을 Claude가 적어 두었다가 나중에 꺼내 쓸 자리를 주는 거예요. 저장 모델은 메모리 도구를 참고하세요.
올인원: computer_use (All-in-one: computer_use)
컴퓨터 사용 도구는 전체 데스크톱을 조작해서 대부분의 다른 도구를 아우러요. Claude가 스크린샷을 보고 마우스·키보드 동작을 발행하므로, 사람이 할 수 있는 어떤 애플리케이션이든 구동할 수 있어요. API가 없는 레거시 소프트웨어, 시각적 검증 단계, 여러 데스크톱 앱에 걸친 워크플로처럼 더 구체적인 도구가 닿지 못하는 임의 GUI 상호작용이 필요한 작업에 사용하세요.
{
"tools": [{ "type": "computer_toolset_20260801" }]
}
툴셋 항목은 name이나 표시 치수를 받지 않아요. 좌표는 우리가 반환하는 스크린샷의 픽셀 공간으로 표현되고, 항목의 configs 필드로 개별 동작을 끌 수 있어요.
컴퓨터 사용은 가장 일반적인 옵션이면서 가장 느려요. Claude는 보통 각 동작 배치 후에 새 스크린샷이 필요하기 때문이에요. 사용 사례를 더 좁은 도구가 다룰 수 있으면 그걸 선호하고, 다른 것으로 안 맞을 때 컴퓨터 사용으로 넘어가세요. 작업이 웹 브라우저 안에 머문다면 다음 섹션의 브라우저 에이전트 패턴을 쓰세요. 샌드박스 설정은 컴퓨터 사용 도구를 참고하세요.
브라우저 에이전트: browser_use (Browser agent: browser_use)
전체 작업이 웹페이지 안에서 일어날 때(양식 작성, 페이지 내용 읽기, 탭 작업)는 브라우저 사용 도구가 컴퓨터 사용보다 더 잘 맞아요. 우리 애플리케이션이 제어하는 브라우저를 구동해 스크린샷이나 페이지 상태를 반환하면, Claude가 클릭·타이핑과 함께 read_page, find, form_input, get_page_text 같은 페이지 인식 멤버 도구를 호출해서 픽셀 좌표뿐 아니라 요소 참조에도 동작할 수 있어요.
{
"tools": [{ "type": "browser_toolset_20260801" }]
}
컴퓨터 사용 툴셋처럼 이 항목도 name을 받지 않고, configs 필드로 개별 멤버 도구를 꺼요. 실행 계약은 브라우저 사용 도구를 참고하세요.