---
read_when:
    - Вы хотите анализировать PDF-файлы с помощью агентов
    - Вам нужны точные параметры и ограничения инструмента для работы с PDF
    - Вы отлаживаете нативный режим PDF и резервное извлечение текста
summary: Анализ одного или нескольких PDF-документов с нативной поддержкой провайдера и резервным извлечением текста
title: Инструмент PDF
x-i18n:
    generated_at: "2026-07-13T18:50:36Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: 54bde94a2b70fd209c70c13a1e75dc81c6cbebca7f6d56776bf37fa62cd78254
    source_path: tools/pdf.md
    workflow: 16
---

`pdf` анализирует один или несколько PDF-документов и возвращает текст. Для моделей Anthropic и Google он использует нативный ввод документов, а для всех остальных провайдеров — резервное извлечение текста и изображений.

## Доступность

Инструмент регистрируется, только если OpenClaw может определить для агента модель с поддержкой PDF. Порядок определения:

1. `agents.defaults.pdfModel` (явно заданные основная и резервные модели)
2. `agents.defaults.imageModel` (явно заданные основная и резервные модели)
3. Определённая модель сеанса или модель агента по умолчанию, если её провайдер поддерживает нативный ввод PDF (Anthropic, Google) либо для неё уже настроена модель компьютерного зрения
4. Автоматически обнаруженные провайдеры с поддержкой изображений или компьютерного зрения и пригодной аутентификацией; приоритет отдаётся провайдерам с нативной поддержкой PDF

Перед использованием для каждой резервной модели проверяется аутентификация, поэтому настроенная `provider/model` учитывается, только если OpenClaw может аутентифицировать агента у этого провайдера. Если пригодную модель определить не удаётся, инструмент `pdf` недоступен.

## Справочник входных параметров

<ParamField path="pdf" type="string">
Один путь к PDF или URL.
</ParamField>

<ParamField path="pdfs" type="string[]">
Несколько путей к PDF или URL, не более 10 в общей сложности.
</ParamField>

<ParamField path="prompt" type="string" default="Проанализируйте этот PDF-документ.">
Запрос для анализа.
</ParamField>

<ParamField path="pages" type="string">
Фильтр страниц, например `1-5` или `1,3,7-9`. Не поддерживается в режиме нативного провайдера.
</ParamField>

<ParamField path="password" type="string">
Пароль для зашифрованных PDF. Применяется ко всем PDF в запросе; используется только в резервном режиме извлечения.
</ParamField>

<ParamField path="model" type="string">
Необязательное переопределение модели в формате `provider/model`.
</ParamField>

<ParamField path="maxBytesMb" type="number">
Ограничение размера каждого PDF в МБ. По умолчанию используется `agents.defaults.pdfMaxBytesMb` или `10`, если значение не задано.
</ParamField>

Примечания:

- `pdf` и `pdfs` объединяются с удалением дубликатов перед загрузкой; требуется указать хотя бы один из них.
- `pages` разбирается как номера страниц с отсчётом от 1; дубликаты удаляются, номера сортируются и ограничиваются значением `agents.defaults.pdfMaxPages` (по умолчанию `20`). Если диапазон не содержит ни одной страницы в допустимых пределах, ошибка возникает до вызова модели.

## Поддерживаемые ссылки на PDF

- Путь к локальному файлу (включая раскрытие `~`)
- URL `file://`
- URL `http://` и `https://`
- Управляемые OpenClaw ссылки на входящие данные, например `media://inbound/<id>`

Другие схемы URI (например, `ftp://`) возвращают `details.error = "unsupported_pdf_reference"`. Удалённые URL `http(s)` отклоняются, если инструмент выполняется в песочнице. Если включена политика доступа только к файлам рабочей области, локальные пути за пределами разрешённых корневых каталогов отклоняются; управляемые ссылки на входящие данные и повторно используемые пути в хранилище входящих медиафайлов OpenClaw по-прежнему разрешены.

## Режимы выполнения

### Режим нативного провайдера

Используется для провайдеров `anthropic` и `google` (единственных провайдеров, которые в настоящее время заявляют нативную поддержку PDF-документов). Необработанные байты каждого PDF передаются напрямую в API провайдера как нативный документ или встроенная PDF-часть.

Ограничения:

- `pages` не поддерживается; если параметр задан, инструмент выдаёт ошибку `pages is not supported with native PDF providers`.
- `password` не поддерживается; если параметр задан, инструмент выдаёт ошибку `password is not supported with native PDF providers`. Для зашифрованных PDF используйте модель без нативной поддержки.

### Резервный режим извлечения

Используется для всех остальных провайдеров.

1. Из выбранных страниц (не более `agents.defaults.pdfMaxPages`, по умолчанию `20`) извлекается текст с помощью встроенного плагина `document-extract`, который использует пакет `clawpdf` (PDFium WebAssembly) для извлечения текста и изображений.
2. Если извлечённый текст короче `200` символов, те же страницы визуализируются как изображения PNG. Общий бюджет визуализации составляет `4,000,000` пикселей и распределяется между всеми страницами, для которых нужны изображения (пропорционально между оставшимися страницами, а не отдельно на каждую страницу), поэтому страницы, уже содержащие достаточно текста, вообще не визуализируются.
3. Извлечённый текст (и все визуализированные изображения) вместе с запросом отправляется выбранной модели.

Подробности:

- Зашифрованные PDF открываются с помощью параметра верхнего уровня `password`.
- Если модель не поддерживает ввод изображений и извлекаемый текст отсутствует, инструмент выдаёт ошибку.
- Если визуализация изображений завершается ошибкой, OpenClaw отбрасывает изображения и продолжает работу с извлечённым текстом.
- Если целевая модель поддерживает только текст, а при извлечении были получены изображения, OpenClaw отбрасывает изображения и отправляет только текст.

## Конфигурация

```json5
{
  agents: {
    defaults: {
      pdfModel: {
        primary: "anthropic/claude-opus-4-6",
        fallbacks: ["openai/gpt-5.4-mini"],
      },
      pdfMaxBytesMb: 10,
      pdfMaxPages: 20,
    },
  },
}
```

| Ключ                             | По умолчанию | Назначение                                                                                   |
| ------------------------------- | ------- | ----------------------------------------------------------------------------------------- |
| `agents.defaults.pdfModel`      | не задано   | Явно заданные основная и резервные PDF-модели; при их отсутствии используется `imageModel`, а затем модель сеанса. |
| `agents.defaults.pdfMaxBytesMb` | `10`    | Ограничение размера каждого PDF в МБ.                                                                   |
| `agents.defaults.pdfMaxPages`   | `20`    | Максимальное количество обрабатываемых страниц в каждом PDF.                                                              |

Полные сведения о полях см. в [справочнике по конфигурации](/ru/gateway/config-agents#agent-defaults).

## Сведения о выходных данных

Инструмент возвращает текст в `content[0].text` и структурированные метаданные в `details`.

Распространённые поля `details`:

- `model`: определённая ссылка на модель (`provider/model`)
- `native`: `true` для режима нативного провайдера, `false` для резервного режима
- `attempts`: неудачные попытки использования резервных моделей до успешного выполнения

Поля путей:

- Один входной PDF: `details.pdf`
- Несколько входных PDF: `details.pdfs[]` с записями `pdf`
- Метаданные преобразования путей в песочнице (если применимо): `rewrittenFrom`

## Обработка ошибок

| Условие                         | Результат                                                         |
| --------------------------------- | -------------------------------------------------------------- |
| Входной PDF не указан                      | Выдаёт ошибку `pdf required: provide a path or URL to a PDF document` |
| Более 10 PDF                 | `details.error = "too_many_pdfs"`                              |
| Неподдерживаемая схема ссылки      | `details.error = "unsupported_pdf_reference"`                  |
| `pages` с нативным провайдером    | Выдаёт ошибку `pages is not supported with native PDF providers`      |
| `password` с нативным провайдером | Выдаёт ошибку `password is not supported with native PDF providers`   |

## Примеры

Один PDF:

```json
{
  "pdf": "/tmp/report.pdf",
  "prompt": "Сведите содержание этого отчёта к 5 пунктам"
}
```

Несколько PDF:

```json
{
  "pdfs": ["/tmp/q1.pdf", "/tmp/q2.pdf"],
  "prompt": "Сравните риски и изменения сроков в обоих документах"
}
```

Резервная модель с фильтрацией страниц:

```json
{
  "pdf": "https://example.com/report.pdf",
  "pages": "1-3,7",
  "model": "openai/gpt-5.4-mini",
  "prompt": "Извлеките только инциденты, затрагивающие клиентов"
}
```

Зашифрованный PDF с резервным извлечением:

```json
{
  "pdf": "/tmp/locked.pdf",
  "password": "example-password",
  "model": "openai/gpt-5.4-mini",
  "prompt": "Кратко изложите содержание этого договора"
}
```

## Связанные материалы

- [Обзор инструментов](/ru/tools) — все доступные инструменты агента
- [Справочник по конфигурации](/ru/gateway/config-agents#agent-defaults) — конфигурация pdfMaxBytesMb и pdfMaxPages
