раздел 02
Токены и точность
Агент платит за каждый токен, который попадает в контекст: и за ваш файл, и за свои шаги по его чтению, и за ответы инструментов. Тяжёлый формат бьёт по всем трём статьям сразу. Разберём, откуда берётся переплата и где страдает точность.
Откуда берётся переплата
У агента, которому дали .docx, два пути. Оба дорогие.
Путь первый - конвертировать. Агент вызывает инструмент, читает результат, иногда с первого раза не получается, пробует другой конвертер. Каждый вызов и каждый ответ ложатся в контекст. Для одного файла это терпимо. Для папки из 40 документов - это десятки лишних вызовов до того, как началась сама работа.
Путь второй - читать что есть. Если агент вытащил document.xml из docx или получил сырой вывод из PDF, в контекст попадает разметка: теги, атрибуты стилей, служебные идентификаторы, пустые абзацы. На каждое слово вашего текста может приходиться несколько слов упаковки. Вы платите за упаковку по тому же тарифу.
Один и тот же текст в Markdown занимает заметно меньше токенов, чем «распакованный» docx или сырой вывод из PDF. В разы или больше - зависит от документа.
Точных чисел здесь не будет: они разные для каждого файла. Письмо на полстраницы и отчёт с десятком таблиц ведут себя по-разному. Но измерить на своих документах - дело пяти минут.
Как измерить самому
Возьмите любой ваш docx, сделайте из него md (как - в следующей главе) и попросите агента сравнить:
В папке лежат report.docx и report.md - это один и тот же документ.
Извлеки текст из docx так, как ты бы читал его для работы (со всей
разметкой, которая попадёт в контекст), и посчитай число токенов
в этом тексте и в report.md. Покажи оба числа и разницу в процентах.
Ничего не пересказывай, только цифры и одну строку - каким способом считал.
Агент подберёт токенизатор (обычно tiktoken или счётчик из API модели) и выдаст два числа. Сравните. Потом добавьте третье измерение - сколько токенов ушло на сами шаги извлечения, это тоже видно в отчёте о сессии.
Подробнее про то, что такое токен и как он считается - в курсе Токены 101. Про то, почему лишние токены съедают место для полезного, - в Контекстное окно.
Где страдает точность
Деньги - половина проблемы. Вторая половина - агент на тяжёлом формате чаще ошибается, и это ошибки тихие: он уверен, что прочитал правильно.
На Markdown этих проблем нет по построению. Заголовок - это строка с #, её невозможно спутать с абзацем. Таблица - строки с |, и число строк агент видит буквально. Цитата - подстрока файла, которую он может найти поиском и проверить.
Простой тест. Дайте агенту отчёт в PDF и попросите: «выпиши все строки таблицы из раздела 3, не меняя ни одной цифры». Потом то же самое с md-версией. На PDF ошибка появляется не всегда, но появляется. На md - нет, потому что нечему ломаться.
Что это значит для длинных задач
Агент работает не с одним файлом, а с проектом. Если в проекте 30 документов и все в docx, у агента два варианта: конвертировать каждый при каждом обращении (дорого) или держать в контексте только пару файлов (неполно). Если всё в md - он читает папку целиком, находит нужное через поиск по тексту и тратит контекст только на то, что реально относится к вопросу.
Это меняет масштаб задач, которые можно ему доверить: сводка по всем договорам за квартал, проверка КП на противоречия с регламентом, поиск по всем протоколам встреч, где обсуждали бюджет.
Частые ошибки
- Считать, что раз агент «открыл» docx, значит, прочитал его целиком и правильно. Проверяйте цитаты хотя бы выборочно.
- Скармливать агенту PDF-скан без OCR. Внутри нет текста, только картинка. Он либо промолчит, либо начнёт угадывать.
- Держать в контексте docx и его же md-копию одновременно. Двойная оплата, а агент ещё и может запутаться, какая версия актуальная.
- Экономить на конвертации «один раз для этого файла». Один раз превращается в каждый раз, когда файл понадобится снова.
- Мерить экономию на одном письме и решить, что разницы нет. Разница растёт с объёмом документа и числом обращений.