이 페이지는 도구 정의에 대한 프롬프트 캐싱을 다룹니다: cache_control 중단점을 배치하는 위치, defer_loading이 캐시를 보존하는 방법, 그리고 캐시를 무효화하는 요소입니다. 일반적인 프롬프트 캐싱에 대해서는 프롬프트 캐싱을 참조하세요.
cache_control: {"type": "ephemeral"}을 tools 배열의 마지막 도구에 배치합니다. 이렇게 하면 첫 번째 도구부터 표시된 중단점까지의 전체 도구 정의 접두사가 캐시됩니다:
{
"tools": [
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
}
},
{
"name": "get_time",
"description": "Get the current time in a given time zone",
"input_schema": {
"type": "object",
"properties": {
"timezone": { "type": "string" }
},
"required": ["timezone"]
},
"cache_control": { "type": "ephemeral" }
}
]
}mcp_toolset의 경우, cache_control 중단점은 집합의 마지막 도구에 위치합니다. MCP 도구 집합 내에서 도구 순서를 제어할 수 없으므로, mcp_toolset 항목 자체에 중단점을 배치하면 API가 최종 확장된 도구에 적용합니다.
지연된 도구는 시스템 프롬프트 접두사에 포함되지 않습니다. 모델이 도구 검색을 통해 지연된 도구를 발견하면, 정의는 대화 기록에 tool_reference 블록으로 인라인으로 추가됩니다. 접두사는 변경되지 않으므로 프롬프트 캐싱이 보존됩니다.
이는 도구 검색을 통해 동적으로 도구를 추가해도 캐시가 깨지지 않음을 의미합니다. 항상 로드되는 작은 도구 집합(캐시됨)으로 대화를 시작하고, 모델이 필요에 따라 추가 도구를 발견하도록 하며, 모든 턴에서 동일한 캐시 히트를 유지할 수 있습니다.
defer_loading은 또한 엄격한 모드에 대한 문법 구성과 독립적으로 작동합니다. 문법은 어떤 도구가 지연되는지와 관계없이 전체 도구 집합에서 구축되므로, 도구가 동적으로 로드될 때 프롬프트 캐싱과 문법 캐싱이 모두 보존됩니다.
캐시는 접두사 계층 구조(tools → system → messages)를 따르므로, 한 수준의 변경은 해당 수준과 그 이후의 모든 것을 무효화합니다:
| 변경 | 무효화 |
|---|---|
| 도구 정의 수정 | 전체 캐시(도구, 시스템, 메시지) |
| 웹 검색 또는 인용 토글 | 시스템 및 메시지 캐시 |
tool_choice 변경 | 메시지 캐시 |
disable_parallel_tool_use 변경 | 메시지 캐시 |
| 이미지 존재/부재 토글 | 메시지 캐시 |
| 사고 매개변수 변경 | 메시지 캐시 |
대화 중간에 tool_choice를 변경해야 하는 경우, 변경 지점 전에 캐시 중단점을 배치하는 것을 고려하세요.
| 도구 | 캐싱 고려사항 |
|---|---|
| 웹 검색 | 활성화 또는 비활성화하면 시스템 및 메시지 캐시가 무효화됩니다 |
| 웹 가져오기 | 활성화 또는 비활성화하면 시스템 및 메시지 캐시가 무효화됩니다 |
| 코드 실행 | 컨테이너 상태는 프롬프트 캐시와 독립적입니다 |
| 도구 검색 | 발견된 도구는 tool_reference 블록으로 로드되어 접두사 캐시를 보존합니다 |
| 컴퓨터 사용 | 스크린샷 존재 여부가 메시지 캐시에 영향을 줍니다 |
| 텍스트 편집기 | 표준 클라이언트 도구, 특별한 캐싱 상호작용 없음 |
| Bash | 표준 클라이언트 도구, 특별한 캐싱 상호작용 없음 |
| 메모리 | 표준 클라이언트 도구, 특별한 캐싱 상호작용 없음 |
TTL 및 가격 책정을 포함한 전체 프롬프트 캐싱 모델을 알아봅니다.
캐시를 깨지 않고 필요에 따라 도구를 로드합니다.
사용 가능한 모든 도구 및 해당 매개변수를 찾아봅니다.
Was this page helpful?