раздел 02

Токены и точность

Агент платит за каждый токен, который попадает в контекст: и за ваш файл, и за свои шаги по его чтению, и за ответы инструментов. Тяжёлый формат бьёт по всем трём статьям сразу. Разберём, откуда берётся переплата и где страдает точность.

Откуда берётся переплата

У агента, которому дали .docx, два пути. Оба дорогие.

Путь первый - конвертировать. Агент вызывает инструмент, читает результат, иногда с первого раза не получается, пробует другой конвертер. Каждый вызов и каждый ответ ложатся в контекст. Для одного файла это терпимо. Для папки из 40 документов - это десятки лишних вызовов до того, как началась сама работа.

Путь второй - читать что есть. Если агент вытащил document.xml из docx или получил сырой вывод из PDF, в контекст попадает разметка: теги, атрибуты стилей, служебные идентификаторы, пустые абзацы. На каждое слово вашего текста может приходиться несколько слов упаковки. Вы платите за упаковку по тому же тарифу.

Один и тот же текст в Markdown занимает заметно меньше токенов, чем «распакованный» docx или сырой вывод из PDF. В разы или больше - зависит от документа.

Точных чисел здесь не будет: они разные для каждого файла. Письмо на полстраницы и отчёт с десятком таблиц ведут себя по-разному. Но измерить на своих документах - дело пяти минут.

Как измерить самому

Возьмите любой ваш docx, сделайте из него md (как - в следующей главе) и попросите агента сравнить:

В папке лежат report.docx и report.md - это один и тот же документ.
Извлеки текст из docx так, как ты бы читал его для работы (со всей
разметкой, которая попадёт в контекст), и посчитай число токенов
в этом тексте и в report.md. Покажи оба числа и разницу в процентах.
Ничего не пересказывай, только цифры и одну строку - каким способом считал.

Агент подберёт токенизатор (обычно tiktoken или счётчик из API модели) и выдаст два числа. Сравните. Потом добавьте третье измерение - сколько токенов ушло на сами шаги извлечения, это тоже видно в отчёте о сессии.

Подробнее про то, что такое токен и как он считается - в курсе Токены 101. Про то, почему лишние токены съедают место для полезного, - в Контекстное окно.

Где страдает точность

Деньги - половина проблемы. Вторая половина - агент на тяжёлом формате чаще ошибается, и это ошибки тихие: он уверен, что прочитал правильно.

Потерянные строки таблицы
После кривой конвертации таблица превращается в поток слов. Агент видит десять значений вместо трёх строк по три ячейки и «дорисовывает» структуру сам.
Неверные цитаты
В PDF слово может быть разбито переносом, а абзац - склеен с колонтитулом. Агент цитирует то, что получил: с обрывком и лишним словом посередине.
Пропавшие заголовки
Если стиль заголовка не распознался, раздел «Риски» становится просто абзацем. Агент на вопрос про риски отвечает «в документе такого раздела нет».

На Markdown этих проблем нет по построению. Заголовок - это строка с #, её невозможно спутать с абзацем. Таблица - строки с |, и число строк агент видит буквально. Цитата - подстрока файла, которую он может найти поиском и проверить.

Простой тест. Дайте агенту отчёт в PDF и попросите: «выпиши все строки таблицы из раздела 3, не меняя ни одной цифры». Потом то же самое с md-версией. На PDF ошибка появляется не всегда, но появляется. На md - нет, потому что нечему ломаться.

Что это значит для длинных задач

Агент работает не с одним файлом, а с проектом. Если в проекте 30 документов и все в docx, у агента два варианта: конвертировать каждый при каждом обращении (дорого) или держать в контексте только пару файлов (неполно). Если всё в md - он читает папку целиком, находит нужное через поиск по тексту и тратит контекст только на то, что реально относится к вопросу.

Это меняет масштаб задач, которые можно ему доверить: сводка по всем договорам за квартал, проверка КП на противоречия с регламентом, поиск по всем протоколам встреч, где обсуждали бюджет.

Частые ошибки

  • Считать, что раз агент «открыл» docx, значит, прочитал его целиком и правильно. Проверяйте цитаты хотя бы выборочно.
  • Скармливать агенту PDF-скан без OCR. Внутри нет текста, только картинка. Он либо промолчит, либо начнёт угадывать.
  • Держать в контексте docx и его же md-копию одновременно. Двойная оплата, а агент ещё и может запутаться, какая версия актуальная.
  • Экономить на конвертации «один раз для этого файла». Один раз превращается в каждый раз, когда файл понадобится снова.
  • Мерить экономию на одном письме и решить, что разницы нет. Разница растёт с объёмом документа и числом обращений.