도구 컨텍스트 관리하기

도구 컨텍스트 관리하기 (Manage tool context)

도구 정의와 축적된 tool_result 블록은 여러분의 컨텍스트 창을 소모해요. 도구가 많거나 턴이 많은 장기 실행 에이전트는 작업이 끝나기 전에 사용 가능한 컨텍스트를 모두 써버릴 수 있어요. 네 가지 접근 방식이 파이프라인의 다른 지점에서 이 문제를 해결해줘요.

출처: 문서

본문

도구 정의와 축적된 tool_result 블록은 여러분의 컨텍스트 창을 소모해요. 장기 실행되는 에이전트는 도구가 많거나 턴이 많을 때 작업이 끝나기 전에 사용 가능한 컨텍스트를 모두 소진할 수 있어요. 이 문제를 해결하는 네 가지 접근 방식이 파이프라인의 서로 다른 지점에서 작동해요.

네 가지 접근 방식 (The four approaches)

각 접근 방식은 서로 다른 컨텍스트 압박의 원인을 겨냥해요. 토큰이 어디로 새어나가는지에 따라 맞는 방법을 골라보세요.

접근 방식 줄여주는 것 어울리는 상황 더 알아보기
도구 검색 (Tool search) 미리 로드되는 도구 정의 스킬이 많은 도구셋(20개 이상)에서 매 턴 모든 도구가 필요하지 않은 경우 Tool search 도구
프로그래매틱 도구 호출 (Programmatic tool calling) tool_result 왕복 단일 스크립트로 실행할 수 있는 도구 호출 체인 프로그래매틱 도구 호출
프롬프트 캐싱 (Prompt caching) 반복되는 도구 정의의 토큰 비용 여러 요청에 걸친 안정적인 도구셋 프롬프트 캐싱과 함께 도구 사용하기
컨텍스트 편집 (Context editing) 히스토리의 오래된 tool_result 블록 초기 결과가 더 이상 관련 없는 긴 대화 컨텍스트 편집

도구 검색 (Tool search)

도구 검색은 Claude가 요청할 때까지 도구 정의를 컨텍스트 창 밖에 유지해요. 50개의 도구 스키마를 미리 보내는 대신, tool_search 도구 하나만 보내고 나머지는 Claude가 필요할 때 발견하게 해요. 이렇게 하면 약간의 지연(도구를 찾는 데 턴이 하나 더 필요)과 함께 기본 컨텍스트 사용량을 크게 줄일 수 있어요.

프로그래매틱 도구 호출 (Programmatic tool calling)

프로그래매틱 도구 호출은 일련의 도구 호출을 Claude가 작성하고 Anthropic의 코드 실행 샌드박스가 실행하는 단일 코드 블록으로 압축해요. tool_use와 tool_result를 다섯 번 왕복하는 대신, Claude는 샌드박스 안에서 다섯 함수를 모두 호출하는 스크립트 하나를 만들어요. 중간 결과는 대화 히스토리에 들어가지 않게 돼요.

프롬프트 캐싱 (Prompt caching)

프롬프트 캐싱은 컨텍스트의 토큰 수를 줄이지 않지만, 이후 요청에서 그에 대한 비용을 줄여줘요. 도구 정의가 안정적이라면 한 번 캐시하고 캐시된 프리픽스를 수천 개의 요청에 걸쳐 재사용해요. 도구셋이 크지만 고정된 경우에 적합한 선택이에요.

컨텍스트 편집 (Context editing)

컨텍스트 편집은 역할을 다한 오래된 tool_result 블록을 대화 히스토리에서 제거해요. 긴 에이전트 루프는 당시에는 유용했지만 지금은 부담이 되는 수백 개의 중간 결과를 만들어낼 수 있어요. 컨텍스트 편집을 사용하면 대화를 재시작하지 않고도 이런 결과를 정리할 수 있어요.

접근 방식 결합하기 (Combining approaches)

이 접근 방식들은 서로 결합할 수 있어요. 장기 실행 에이전트는 도구 검색으로 도구셋을 가볍게 유지하고, 프롬프트 캐싱으로 남은 정의의 비용을 상각하고, 컨텍스트 편집으로 대화가 길어지면서 낡은 결과를 다듬을 수 있어요. 각각 문제의 다른 부분을 해결하므로 함께 사용해도 충돌이 없어요.

대량 트래픽 에이전트를 위한 합리적인 시작점은 다음과 같아요:

  1. 도구 정의에 프롬프트 캐싱을 첫날부터 활성화해요. 캐시 쓰기는 기본 입력 가격보다 25% 더 비싸지만, 캐시에 도달하는 두 번째 요청부터 이득을 봐요.
  2. 도구셋이 대략 20개를 넘거나 기본 컨텍스트 사용량이 눈에 띄게 되면 도구 검색을 추가해요.
  3. 개별 대화가 길어지면서 초기 결과가 무의미해지기 시작하면 컨텍스트 편집을 추가해요.
  4. 단일 배치로 실행할 수 있는 작은 도구 호출 체인이 반복적으로 보이면 프로그래매틱 도구 호출을 고려해봐요.

더 알아보기 (Learn more)