2026-08-01T07:43:46.768Z

Контер токенов LangChain: оценка аудита и охват использования

Используйте приближение до вызова модели LangChain, использование провайдера после него и манифест ожидаемого вызова, чтобы обнаружить отсутствующие доказательства токенов.

Полезный ответ не выберите один счетчик токенов LangChain. Используйте два разных счетчика для двух разных решений. Запустить count tokens approximately() до звонка модели, когда вам нужна быстрая оценка контекстового давления. Прочитайте AIMessage.usage metadata , сообщенный поставщиком, после вызова, когда вам нужно наблюдать за вводом, выводом, кешем или использованием рассуждений. Затем сравнивайте записи использования с ожидаемым манифестом модели вызова. Без этого последнего проверки по охране, сумма может быть низкой только потому, что один звонок никогда не был подсчитан. Это отличие имеет значение у агента. Оценка истории сообщения может помочь решить, нужно ли уменьшить контекст. Он не может доказать, что провайдер обработал, что он взимал счета, дали повторная попытка выпустила использование, или если застрял модели вызова избежал обратного вызова. Таким образом, оперативный вопрос заключается в следующем: Какой счетчик поддержал это решение, и откуда мы знаем, что каждый ожидаемый звонок дошел до него? Отношение и использование поставщика должны рассматриваться как отдельные доказательства Нынешняя версия Python LangChain описывает count tokens approximately() как простое приближение. По умолчанию он делит символы на четыре, добавляет три токены на сообщение и консервативно закругляет. Функция подсчитывает содержание сообщений и роли. Он также учитывает звонки инструмента AI, идентификаторы звонков инструмента сообщения, факультативные имена, фиксированное разрешение на изображение и схемы инструментов, предоставляемые через аргумент tools . В документации прямо говорится, что для точных подсчетов требуются конкретные токены для модели. Это делает функцию полезной перед призывом: Детали tools=bound tools не косметические. Реализация сериализирует каждую поставленную схему и добавляет ее символы к приближению. Если модель связана с инструментами, но счетчик получает только messages , оценка может исключить большую повторяющуюся поверхность ввода. С другой стороны, передача инструментов не делает результат точным. Она остается оценкой, основанной на общем соотношении и фиксированных квотах. После запроса используйте метаданные на возвращенном AIMessage : LangChain стандартизирует UsageMetadata вокруг input tokens , output tokens и total tokens , с опциональными вводами и выводами карты деталей. Его собственный пример включает в себя создание кеша, чтение кеша, аудио и рассуждение. Важнейшим словом является "выборный". Поле cache read , которое отсутствует, является недоступным доказательством, а не доказательством того, что значение было нулевым. Сохранить это различие в хранилище вместо заполнения отсутствующих деталей 0 . Для нескольких вызовов UsageMetadataCallbackHandler агрегирует AIMessage.usage metadata по моделям: Агрегация удобна, но агрегат отвечает на то, что видел обработчик, а не на то, что должен был назвать рабочий процесс. На каждую попытку модели укажите стабильный call id , attempt id , имя поставщика/модели и временную печать. Повторная попытка это вторая попытка, а не коррекция первой попытки. Создать тест охвата вокруг манифеста модели вызова Начните с ожидаемой работы, а не с каких бы то ни было рядов использования. Для четырехступенчатой пробежки манифест может потребовать plan:1 , retrieve:1 , draft:2 и verify:1 . Суффикс это номер попытки. Затем проверяющий объединяет ожидаемые попытки к трем формам доказательств: приближение до полета, включая сообщения и схемы необходимых инструментов; использование, сообщенное провайдером от возвращенного сообщения или обратного вызова; Прием на уровне задачи, в котором говорится, что этапы принесли ожидаемый эффект. Соединение производит более полезные состояния, чем один общий: Государство Что существует Безопасная интерпретация provider reported использование провайдера с идентификацией звонка наблюдаемое использование для данной попытки approximate only предлетная оценка, отсутствие использования поставщиком контекстная оценка; использование счета недоступно missing call прозрачный ряд, отсутствие наблюдений пробел инструментации или стадия никогда не выполнялись detail unavailable общий объем провайдера, отсутствующие ожидаемые подробности в кеше/разговоре может быть использована общая сумма; анализ компонентов заблокирован duplicate attempt две строки использования для одного ID попытки риск агрегации; установить идентичность перед суммированием Сопроводительное устройство намеренно выглядит правдоподобным, но остается неполным. В нем есть четыре ожидаемых звонка. Два имеют использование провайдера, один имеет только приближение, а один не имеет наблюдения. Два ряда поставщиков составили 1 451 токен. Это число является арифметически правильным и оперативно неполным. Проведение аудита: Результат: Два призыва, которые содержат обе формы доказательств, также демонстрируют, почему оценка должна сохранить свою маркировку. Приближение составило 5,0% ниже общего числа поставщиков для одного звонка и 16,5% ниже для другого. Эта фиксация не утверждает, что эти проценты обобщаются; значения являются фиксированными данными о испытаниях. Это доказывает, что аудит сохраняет оценки вне общего количества наблюдаемых поставщиков и может выявить разногласия, не рассматривая ни один из примеров как универсальный фактор калибровки. Одна тонкая деталь внедрения требует осторожности. Опциональный use usage metadata scaling=True LangChain берет самый последний AI сообщение с использованием, требует последовательного поставщика, и масштабирует приближение вверх. Источник сжимает этот фактор между 1.0 и 1.25 ; он не масштабирует оценку вниз. Это может быть полезной консервативной оценкой истории. Это не алгоритм согласования счета, смешанных поставщиков или отсутствующих звонков. Решите, что каждый счетчик может водить Присоедините границу решения к каждому сохраненному номеру. Используйте приближение к: предупреждать, прежде чем история приблизится к мягкому контексту; сравнивать два варианта запроса или инструментальной схемы перед отправкой; принимать решение о том, следует ли подводить итоги, извлекать или отбросить подменяемый контекст; оценить относительный эффект включения другого сообщения или схемы инструмента. Использовать сообщенное поставщиком использование для: атрибут наблюдаемый вход и выход к завершенной попытке моделирования; отдельные компоненты кеша, аудио или обоснования, когда поставщик возвращает их; согласование общего числа поставщиков/моделей по всем попыткам; рассчитывать стоимость только с помощью датированного источника цены и ясного обращения по недоступным деталям. Используйте ни один счетчик в одиночку, чтобы доказать: что каждый ожидаемый образцовый звонок был использован; что инструментальный звонок достиг своего назначения; наличие ожидаемой добываемости; что повторная попытка была безопасной или полезной; что низкий токен достиг требуемого результата. Эти заявления требуют охвата звонков и доказательств результатов. Комплексная реализация может обеспечить соблюдение четырех правил продвижения: 1. Каждый ожидаемый attempt id имеет точно одно наблюдение. 2. Каждый наблюдаемый звонок маркируется как approximate или provider reported ; этикетки никогда не сливаются тихо. 3. Оценки перед полетом с инструментами доказывают, что набор схемы был передан на счетчик. 4. Отсутствующие данные о поставщике или кеше остаются null /недоступными и блокируют только решения, которые требуют этого. Предел не должен быть универсальным на 100%. Предварительный просмотр, не связанный с производством, может позволить охват только приблизительно. Бюджетное предупреждение или возврат платежа клиентам не должно быть. Зашифровка политики рядом с потребителем: context warning может принимать оценки, в то время как cost reconciliation требует полного использования поставщика и уникальных идентификаторов попыток. Проверьте границу перед оптимизацией Разумный дефолт прост: оценка до, наблюдение после, охват аудита на границе выполнения. Оптимизируйте только после всех трёх работ. Если оценка контекста высокая, проверьте ее входные данные перед отделкой. Были ли включены все инструменты? Необходимы ли результаты инструмента для следующего решения? Долгое сообщение это долговечный расчет или заменяемый рассказ? Удаление неправильного контекста может сделать бег дешевле и менее надежным. Если использование провайдера неожиданно низкое, проверьте отсутствие звонков перед празднованием. К конфиденциальному сообщению были объединены кусочки потокового подтверждения, обратные звонки распространялись на детские запускаемые устройства, повторные попытки получили различные идентификаторы попытки, и ожидаемый этап проверки фактически был запущен. График затрат с отсутствующими протяженностями не является результатом оптимизации. Если сохранение кеша имеет значение, требуйте специальной детальной карты для поставщика и записывайте его доступность. LangChain дает вам общий конверт, но поставщики не обязательно заполняют каждый компонент. Не выводите ошибку на основе отсутствующего ключа. Сравните как с похожим: один и тот же поставщик, модель, поверхность запроса/инструмента, состояние кеша и требование результата. Наконец, присоедините символические доказательства к квитанции задачи. Для агента по пересмотру документов квитанция может содержать пересмотр источника, проверенные необходимые разделы, неудачные утверждения и исходный хэш. Токены на успешный звонок остаются слабым знаменателем, если окончательный артефакт отсутствует. Этот дизайн двухпоездов намеренно более узкий, чем общий набор наблюдения. Он отвечает на конкретное решение: является ли номер токенов LangChain контекстуальной оценкой, наблюдаемым измерением поставщика или неполным изображением, которое не должно приводить к претензиям на затраты или оптимизацию. Sidewisp сейчас находится на этапе закрытого предварительного доступа. Аналитика использования токенов и расчетных затрат планируется, а не отправляется. Направление продукта состоит в том, чтобы связывать сигналы о затратах с полезным прогрессом и проверенными результатами, сохраняя при этом видимые доказательства и неопределенность. Если эта оперативная граница совпадает с тем, как вы управляете агентами, вы можете Присоединяйтесь к частному просмотру. Источники Ссылка на Python LangChain: count tokens approximately Исходный снимок LangChain для приблизительного счетчика Справочник сообщений LangChain: использование токенов на AIMessage Ссылка на LangChain: UsageMetadata Ссылка на LangChain: UsageMetadataCallbackHandler