Инструмент веб-загрузки позволяет Claude получать полное содержимое указанных веб-страниц и PDF-документов.
Последняя версия инструмента веб-загрузки (web_fetch_20260318) поддерживает динамическую фильтрацию с Claude Fable 5, Claude Opus 4.8, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 и Claude Sonnet 4.6. Claude может писать и выполнять код для фильтрации загруженного содержимого до того, как оно попадёт в контекстное окно, сохраняя только релевантную информацию и отбрасывая остальное. Это снижает потребление токенов при сохранении качества ответов. web_fetch_20260318 также добавляет управление включением ответа для агентных рабочих процессов. Предыдущие версии (web_fetch_20260309 для динамической фильтрации и обхода кэша, web_fetch_20260209 только для динамической фильтрации, web_fetch_20250910 для базовой загрузки) остаются доступными.
Веб-загрузка (с динамической фильтрацией и без неё) доступна в Claude API, Claude Platform на AWS и Microsoft Foundry. В Microsoft Foundry веб-загрузка требует развёртывания с размещением на Anthropic. В настоящее время она недоступна в Amazon Bedrock и Google Cloud.
Для Claude Mythos Preview веб-загрузка доступна в Claude API и Microsoft Foundry. В настоящее время она недоступна для Mythos Preview в Amazon Bedrock и Google Cloud.
Используйте форму обратной связи, чтобы оставить отзыв о качестве ответов модели, самом API или качестве документации.
О соответствии требованиям Zero Data Retention и обходном решении с allowed_callers см. в разделе Серверные инструменты.
Включение инструмента веб-загрузки в средах, где Claude обрабатывает недоверенные входные данные вместе с конфиденциальными данными, создаёт риски утечки данных. Используйте этот инструмент только в доверенных средах или при работе с неконфиденциальными данными.
Чтобы минимизировать риски утечки, Claude не разрешается динамически конструировать URL-адреса. Claude может загружать только те URL-адреса, которые были явно предоставлены пользователем или получены из предыдущих результатов веб-поиска или веб-загрузки. Тем не менее остаётся остаточный риск, который следует тщательно учитывать при использовании этого инструмента.
Если утечка данных вызывает беспокойство, рассмотрите следующие варианты:
max_uses для ограничения количества запросовallowed_domains для ограничения известными безопасными доменамиО поддержке моделей см. в Справочнике инструментов.
Веб-загрузка — это серверный инструмент: API загружает содержимое во время запроса и вставляет результаты в разговор. Вам не нужно ничего запускать или возвращать tool_result. Исключение составляет случай, когда Claude вызывает веб-загрузку и один из ваших клиентских инструментов в одной группе параллельных вызовов инструментов: API возвращает ответ с stop_reason: "tool_use" до выполнения этой загрузки, а затем выполняет загрузку, когда вы отправляете обратно клиентские блоки tool_result. См. Смешивание серверных и клиентских инструментов в одном ходе.
Когда вы добавляете инструмент веб-загрузки в свой запрос к API:
Инструмент веб-загрузки в настоящее время не поддерживает веб-сайты, динамически отрисовываемые с помощью JavaScript.
Claude выполняет загрузку, когда запрос указывает на конкретную страницу или документ:
Claude не выполняет загрузку для общих или открытых вопросов, которые не ссылаются на конкретную страницу. «Кратко изложи эту статью: <url>» запускает загрузку. На вопрос «Каковы лучшие практики проектирования REST API?» даётся прямой ответ.
Загрузка полных веб-страниц и PDF-файлов может быстро расходовать токены, особенно когда из больших документов нужна только определённая информация. С web_fetch_20260209 или более поздней версией Claude может писать и выполнять код для фильтрации загруженного содержимого перед его загрузкой в контекст.
Эта динамическая фильтрация особенно полезна для:
Динамическая фильтрация выполняется с помощью инструмента выполнения кода, который API автоматически включает для запроса. Вам не нужно добавлять инструмент выполнения кода в массив tools.
Чтобы включить динамическую фильтрацию, используйте web_fetch_20260209 или любую более позднюю версию. В следующих примерах используется web_fetch_20260209:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Fetch the content at https://example.com/research-paper and extract the key findings.",
}
],
tools=[{"type": "web_fetch_20260209", "name": "web_fetch"}],
)
print(response)Укажите инструмент веб-загрузки в своём запросе к API:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Please analyze the content at https://example.com/article",
}
],
tools=[{"type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5}],
)
print(response)Инструмент веб-загрузки поддерживает следующие параметры:
{
"type": "web_fetch_20250910",
"name": "web_fetch",
// Optional: Limit the number of fetches per request
"max_uses": 10,
// Optional: Only fetch from these domains
"allowed_domains": ["example.com", "docs.example.com"],
// Optional: Never fetch from these domains (cannot be combined with allowed_domains)
"blocked_domains": ["private.example.com"],
// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},
// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}Более поздние версии инструмента добавляют ещё два необязательных параметра: use_cache требует web_fetch_20260309 или более поздней версии (см. Обход кэша), а response_inclusion требует web_fetch_20260318 или более поздней версии (см. Включение ответа).
Параметр max_uses ограничивает количество выполняемых веб-загрузок. Неудачные загрузки учитываются в лимите. Если Claude пытается выполнить больше загрузок, чем разрешено, web_fetch_tool_result содержит ошибку с кодом ошибки max_uses_exceeded. В настоящее время лимит по умолчанию отсутствует.
О фильтрации доменов с помощью allowed_domains и blocked_domains см. в разделе Серверные инструменты.
Параметр max_content_tokens ограничивает объём содержимого, включаемого в контекст. Если загруженное содержимое превышает этот лимит, инструмент усекает его. Это помогает контролировать использование токенов при загрузке больших документов. Лимит применяется к текстовому содержимому, но не к двоичному содержимому, такому как PDF-файлы.
Лимит параметра max_content_tokens является приблизительным. Фактическое количество использованных входных токенов может незначительно отличаться.
Требуется web_fetch_20260309 или более поздняя версия (включая web_fetch_20260318).
Параметр use_cache определяет, может ли возвращаться кэшированное содержимое. Установите "use_cache": false, чтобы обойти кэш и загрузить свежее содержимое. Значение по умолчанию — true. Отключайте кэширование только тогда, когда пользователь явно запрашивает свежее содержимое или при загрузке быстро меняющихся источников, поскольку обход кэша увеличивает задержку.
{
"tools": [
{
"type": "web_fetch_20260309",
"name": "web_fetch",
"use_cache": false
}
]
}Требуется web_fetch_20260318 или более поздняя версия.
Параметр response_inclusion определяет, как блоки результатов загрузки отображаются в ответе API, когда результат был использован завершённым вызовом выполнения кода в том же ходе. Установите "response_inclusion": "excluded", чтобы полностью исключить эти вложенные пары блоков server_tool_use и результатов из ответа, снижая затраты на выходные токены для агентных рабочих процессов, которым не нужно возвращать клиенту необработанное содержимое страницы. Значение по умолчанию — "full". Результаты прямых вызовов или вызовов выполнения кода, которые были приостановлены до завершения, всегда возвращаются полностью, чтобы их можно было отправить обратно на следующем ходе.
{
"tools": [
{
"type": "web_fetch_20260318",
"name": "web_fetch",
"response_inclusion": "excluded"
}
]
}В отличие от веб-поиска, где цитаты всегда включены, для веб-загрузки цитаты являются необязательными и по умолчанию отключены. Установите "citations": {"enabled": true}, чтобы позволить Claude цитировать конкретные фрагменты из загруженных документов.
При отображении выходных данных API непосредственно конечным пользователям необходимо включать цитаты на исходный источник. Если вы вносите изменения в выходные данные API, в том числе путём повторной обработки и/или объединения их с вашими собственными материалами перед отображением конечным пользователям, отображайте цитаты надлежащим образом на основе консультации с вашей юридической командой.
Вот пример структуры ответа:
{
"role": "assistant",
"content": [
// 1. Claude's decision to fetch
{
"type": "text",
"text": "I'll fetch the content from the article to analyze it."
},
// 2. The fetch request
{
"type": "server_tool_use",
"id": "srvtoolu_01234567890abcdef",
"name": "web_fetch",
"input": {
"url": "https://example.com/article"
}
},
// 3. Fetch results
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_01234567890abcdef",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/article",
"content": {
"type": "document",
"source": {
"type": "text",
"media_type": "text/plain",
"data": "Full text content of the article..."
},
"title": "Article Title",
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:00Z"
}
},
// 4. Claude's analysis with citations (if enabled)
{
"text": "Based on the article, ",
"type": "text"
},
{
"text": "the main argument presented is that artificial intelligence will transform healthcare",
"type": "text",
"citations": [
{
"type": "char_location",
"document_index": 0,
"document_title": "Article Title",
"start_char_index": 1234,
"end_char_index": 1456,
"cited_text": "Artificial intelligence is poised to revolutionize healthcare delivery..."
}
]
}
],
"id": "msg_a930390d3a",
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"server_tool_use": {
"web_fetch_requests": 1
}
},
"stop_reason": "end_turn"
}Результаты загрузки включают:
url: URL-адрес, который был загруженcontent: Блок документа, содержащий загруженное содержимоеretrieved_at: Временная метка, когда содержимое было полученоИнструмент веб-загрузки кэширует результаты для повышения производительности и сокращения избыточных запросов. Возвращаемое содержимое может не всегда отражать последнюю версию, доступную по URL-адресу. Поведение кэша управляется автоматически и может меняться со временем для оптимизации под различные типы содержимого и шаблоны использования. Чтобы загрузить свежее содержимое, установите "use_cache": false (см. Обход кэша).
Для PDF-документов содержимое возвращается в виде данных, закодированных в base64:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_02",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/paper.pdf",
"content": {
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
},
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:02Z"
}
}Когда инструмент веб-загрузки сталкивается с ошибкой, Claude API возвращает ответ 200 (успех) с ошибкой, представленной в теле ответа. Claude видит результат с ошибкой и продолжает ход. Например:
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_result_error",
"error_code": "url_not_accessible"
}
}Возможные коды ошибок:
invalid_tool_input: Недопустимые входные данные инструмента, например некорректный URL-адрес или схема, отличная от HTTP(S)url_too_long: URL-адрес превышает максимальную длину (250 символов)url_not_allowed: URL-адрес заблокирован правилами фильтрации доменов (включая настройки вашей организации) или ограничениями на стороне Anthropic, такими как частные адреса и robots.txturl_not_in_prior_context: URL-адрес не появлялся ранее в разговоре (см. Проверка URL-адресов)url_not_accessible: Не удалось загрузить содержимое (ошибка HTTP)too_many_requests: Превышено ограничение скоростиunsupported_content_type: Тип содержимого не поддерживается (только текст, HTML и PDF)max_uses_exceeded: Превышено максимальное количество использований инструмента веб-загрузкиunavailable: Произошла внутренняя ошибкаПо соображениям безопасности инструмент веб-загрузки может загружать только те URL-адреса, которые ранее появлялись в контексте разговора. Это включает:
Инструмент не может загружать произвольные URL-адреса, которые генерирует Claude, или URL-адреса из контейнерных серверных инструментов (выполнение кода, Bash и т. д.).
Когда включены оба инструмента — веб-поиск и веб-загрузка, — и пользователь называет конкретную страницу или документ без указания URL-адреса (например, «прочитай README из репозитория anthropics/anthropic-sdk-python»), Claude использует веб-поиск, чтобы найти его, а затем загружает результат. В следующем примере в одном запросе запрашиваются поиск и анализ:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Find recent articles about quantum computing and analyze the most relevant one in detail",
}
],
tools=[
{"type": "web_search_20250305", "name": "web_search", "max_uses": 3},
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5,
"citations": {"enabled": True},
},
],
)
print(response)В этом рабочем процессе Claude:
О кэшировании определений инструментов между ходами см. в разделе Использование инструментов с кэшированием подсказок.
При включённой потоковой передаче события загрузки являются частью потока с паузой во время получения содержимого:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_abc123", "type": "message"}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}
// Claude's decision to fetch
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_fetch"}}
// Fetch URL streamed
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"url\":\"https://example.com/article\"}"}}
// Pause while fetch executes
// Fetch results streamed
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_fetch_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "web_fetch_result", "url": "https://example.com/article", "content": {"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "Article content..."}}}}}
// Claude's response continues...Вы можете включить инструмент веб-загрузки в Messages Batches API. Вызовы инструмента веб-загрузки через Messages Batches API тарифицируются так же, как и в обычных запросах Messages API.
Использование web fetch не влечёт никаких дополнительных расходов сверх стандартной стоимости токенов:
{
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"server_tool_use": {
"web_fetch_requests": 1
}
}
}Инструмент web fetch доступен в Claude API без дополнительной платы. Вы оплачиваете только стандартную стоимость токенов за полученный контент, который становится частью контекста вашего разговора.
Чтобы защититься от непреднамеренного получения большого объёма контента, который потребил бы чрезмерное количество токенов, используйте параметр max_content_tokens для установки подходящих лимитов в зависимости от вашего сценария использования и бюджетных соображений.
Пример использования токенов для типичного контента:
Запускайте код на Python и bash в изолированном контейнере для анализа данных, генерации файлов и итеративной работы над решениями.
Работайте с инструментами, выполняемыми Anthropic: блоки server_tool_use, продолжение pause_turn и фильтрация доменов.
Каталог инструментов, предоставляемых Anthropic, и справочник по необязательным свойствам определения инструментов.
Was this page helpful?