Технологии извлечения и анализа данных

Валидация вывода чата

Валидация вывода чата — это первый и самый непосредленный уровень валидации в Pastukhov Code. Каждый вызов инструмента, который делает ИИ, полностью проверяем — содержимое файлов, diffs, операции записи и выводы команд bash появляются как структурированные, кликабельные элементы в чате. В отличие от необработанного CLI Claude Code, где вы видите текстовый поток, Pastukhov Code отображает каждую операцию как выделенный компонент UI, который можно развернуть, просмотреть и проверить.

Chat output validation

Инспектирование вызовов инструментов

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

Чтение файлов

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

Редактирование файлов и diffs

Сообщения о редактировании файлов отображают объединённый diff, сравнивающий исходное и изменённое содержимое. Diff отображается бок о бок с удалёнными строками (красные, префикс -) и добавленными строками (зелёные, префикс +). Каждое редактирование включает заголовки hunks с номерами строк. Разверните diff, чтобы проверить точно, что изменила модель — выявьте нежелательные изменения, ненужные добавления или неправильные исправления до того, как они накопятся.

Компактный режим

В компактном режиме отображения вызовы инструментов и их результаты объединены в единые сворачиваемые элементы. Каждый показывает иконку состояния (вращается во время обработки, зелёная галочка при успехе, красный восклицательный знак при ошибке). Кликните на любое компактное сообщение, чтобы развернуть его и увидеть полный diff или вывод. Этот режим полезен для быстрого просмотра множества операций.

Сообщения об ошибках

Когда вызов инструмента не удается, ошибка выделяется красной границей и деструктивным стилем. В полном режиме отображения содержимое ошибки развернуто, чтобы вы могли сразу увидеть, что пошло не так. В компактном режиме ошибки следуют тому же поведению сворачивания, что и другие сообщения — кликните, чтобы развернуть полный вывод ошибки. Если вы видите повторяющиеся ошибки вызова инструмента, не игнорируйте их — это не нормально. Всегда исследуйте, что идёт не так, и попросите модель обновить CLAUDE.md (для проблем, специфичных для проекта) или текущий навык (для общих паттернов). Обычно требуется всего 5–10 таких итераций для достижения 99% точности даже на сложных задачах. Никогда не принимайте ошибки как должное.


Статистика по сообщениям

Каждое сообщение несёт детальные метаданные использования. Наведите курсор на любое сообщение, чтобы увидеть его статистику, или посмотрите на заголовок страницы для общих итогов.

  • Время обработки — Сколько времени модель потратила на генерацию этого конкретного вывода (форматировано как секунды, например “1.2s”)
  • Входные токены — Токены промпта, отправленные модели для этого turns
  • Выходные токены — Токены завершения, которые сгенерировала модель
  • Токены кэша чтения — Токены, поданные из кэша промпта (дешевле и быстрее)
  • Стоимость — Рассчитанная стоимость на основе ценовой модели окружения (входные, выходные и ставки токенов кэша). Чтобы увидеть точные суммы в долларах, настройте правильное ценообразование модели в ваших настройках окружения — цифры стоимости бессмысленны без него.

В компактном режиме инструментальные сообщения и их сообщения-результаты объединены — поэтому отображаемая статистика показывает итог для вызова инструмента и его ответа вместе.

Имейте в виду: провайдеры часто сообщают совокупную статистику для нескольких сообщений подряд, в основном когда прибывают сообщения ассистента. Эта статистика приходит с задержкой 1–2 секунды, потому что она извлекается из лога — поэтому вы увидите окончательную правильную статистику только когда чат завершится, или когда пройдёт более 10 секунд с момента прибытия сообщения.


Статистика в живом заголовке

Плавающий бейдж под заголовком отображает совокупную статистику в реальном времени, пока модель работает. В режиме без наведения он показывает три метрики:

  • Количество сообщений — Всего сообщений в текущем чате (например “5 msg”)
  • Общая стоимость — Совокупная стоимость для всей сессии чата (например “$0.15”)
  • Токены/секунду — Скорость обработки, рассчитанная из выходных токенов и времени обработки

Когда в чате есть активные субагенты, каждая метрика переключается на объединённый формат основной/агентный (например “5/12 msg • $0.15/$0.30 • 45/60 tps”), где первое значение — это основной чат, а второе — совокупность всех чатов субагентов. Наведение раскрывает полный разбор: без субагентов он добавляет итоги токенов кэша чтения, входных и выходных; с субагентами он показывает две отдельные строки — одну для основного чата и одну для объединённой статистики субагентов — каждая с количеством сообщений, стоимостью, tps, кэшем, входными и выходными токенами. Таймер, показывающий совокупное время обработки (мм:сс), отображается отдельно в строке заголовка.

Когда модель создаёт чаты субагентов, появляется бейдж слева от таймера, показывающий количество субагентов. Кликните на него, чтобы открыть выпадающий список со всеми чатами субагентов и их статистикой (количество сообщений, стоимость, токены/сек, коэффициент кэша). Кликните на любого субагента, чтобы переключиться на его вид, и кликните на бейдж со стрелкой назад, чтобы вернуться к основному чату.


Управление сообщениями

Продолжить с сообщения

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

Копировать сообщение

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

Остановить обработку

Кнопка остановки появляется в заголовке, пока модель активно обрабатывает. Кликните на неё, чтобы немедленно отменить текущий запрос. Модель получает сигнал отмены и перестаёт генерировать. В чат добавляется сообщение об ошибке с отметкой, что обработка была остановлена вручную. Используйте это, когда видите, что модель идет в неправильном направлении — нет необходимости ждать, пока она закончит плохой ответ. Вполне нормально остановить и исправить модель, когда замечаете, что она совершает ошибки или борется с поиском того, что ей нужно. На самом деле, если видите, что модель неоднократно терпит неудачу в чём-то, попросите её добавить соответствующую информацию в CLAUDE.md или текущий навык — даже одна строка с правильным направлением может сэкономить часы в будущих сессиях, не говоря уже о затратах.

Примечание: остановка основного чата автоматически останавливает все его чаты субагентов. Нет способа управлять отдельными чатами субагентов — они полностью управляются фоновыми агентами.


Очередь сообщений

Когда вы отправляете несколько сообщений быстро, они попадают в очередь сообщений, видимую над областью ввода. Каждое очередное сообщение отображается как редактируемая карточка с зелёным градиентом (активное) или оранжевым градиентом (приостановленное). Вы можете:

  • Редактировать — Кликните на очередное сообщение, чтобы изменить его текст перед отправкой
  • Приостановить — Приостановьте очередное сообщение, чтобы предотвратить его отправку, пока не будете готовы
  • Удалить — Полностью удалите очередное сообщение

Цель очереди — позволить вам отправлять идеи вперёд текущего ответа — вам не нужно ждать, пока модель закончит, прежде чем печатать ваше следующее исправление или запрос. Поставьте в очередь несколько сообщений в быстрой последовательности, и они будут автоматически запущены по очереди, позволяя вам работать в режиме “fire-and-forget”. Очередь также действует как буфер: очередные сообщения всегда обрабатываются до того, как запускаются любые промпты AutoFix, предотвращая вход AutoFix в чат, пока ваши ручные сообщения всё ещё ожидают.


Эффективные паттерны валидации

  • Исправьте основную причину, а не симптом — Когда модель совершает ошибку или не может найти то, что ей нужно, не просто предоставляйте свой отзыв. Попросите модель обновить CLAUDE.md (знания, специфичные для проекта) или текущий навык (общие паттерны). Даже одна строка правильного руководства предотвращает ту же ошибку во всех будущих сессиях.
  • Итерируйте до безошибочности — Повторяющиеся ошибки вызова инструментов означают, что модели не хватает контекста. Требуется примерно 5–10 итераций добавления отсутствующей информации в CLAUDE.md или навыки для достижения 99% точности, даже на сложных задачах. Автор этого продукта запускает модели часами без присмотра — но только после того, как вложил несколько десятков итераций в построение правильных файлов CLAUDE.md и навыков. Хорошая идея перезапустить весь чат с нуля несколько раз для достижения безупречного выполнения путём исправления CLAUDE.md и навыков по пути — особенно при входе в новые виды задач, где модели слабы из коробки.
  • Инспектируйте вывод в общих чертах — Разворачивайте diffs и периодически проверяйте результаты, а не одержимо. Цель — быстро идентифицировать паттерны ошибок и исправить их в источнике путем обновления CLAUDE.md или навыков — а не вручную проверять каждую строку, которую производит модель.
  • Следите за раздутым контекстом — По мере роста чата, каждый turn становится медленнее и дороже, потому что модель должна обработать всю историю. Начало свежего чата часто быстрее и дешевле, чем продолжение переросшего — даже восстановление контекста с нуля быстро с пустым окном ввода.
  • Мониторинг необычно высоких затрат чата — Внезапный скачок стоимости за turn обычно означает низкий коэффициент попадания в кэш — модель повторно обрабатывает большую часть своего ввода с нуля вместо использования кэшированных токенов. Это часто признак того, что что-то не так на стороне клиента или провайдера. Работа в этом режиме в течение длительных периодов может вызвать превентивные действия со стороны провайдера. Остановитесь и исследуйте, копаясь в аналитике и сравнивая затраты с предыдущими периодами. Сообщите свои выводы провайдеру — проблема может быть на их стороне, или они могут посоветовать, что исправить на вашей стороне.
  • Предпочитайте свежие чаты продолжению с сообщения — Если модель пошла по неправильному пути, начните новый чат, а не продолжайте с более раннего сообщения. Свежие чаты начинаются с чистого, сфокусированного контекста и дешевле за turn, чем перетаскивание багажа переросшего разговора. Набор “plz fix” в том же чате снова и снова — расточительство: чаще всего, начало с нового приводит к немедленному решению, в то время как пребывание в том же чате часто приводит к циклам модели.
  • Останавливайте плохие ответы рано — Если статистика заголовка показывает, что модель обрабатывается долгое время с высоким выходом токенов, проверьте, что она делает. Остановите её, если она генерирует ненужный контент или уходит с пути. Модели могут попасть в циклы саморефлексии — вы можете не быть в состоянии помочь ей выбраться, даже если укажете на проблему. Начало заново обычно самый эффективный практический ответ.

Для более широкого анализа производительности см. Аналитика и наблюдаемость. Для мониторинга того, сколько контекста использует модель, см. Использование контекста. Для полной справки по функциям чата см. Функции чата.


Учитесь на болезненных чатах

После решения особенно неприятной ошибки или проблемы, которая заняла сотни сообщений, всегда просите модель извлечь урок из опыта — обновите CLAUDE.md, создайте или улучшите навык и захватите любой отсутствующий контекст, который вызвал борьбу. Если вы это сделаете, вы обеспечите, что не застрянете в той же боли снова. Если вы пропустите это, вы почти наверняка столкнётесь с той же проблемой в ближайшее время — модель совершит те же ошибки, и вы снова сожжёте через те же сообщения. Несколько минут, потраченных на захват урока, экономят часы в будущих сессиях.


Звуковой отклик

Pastukhov Code воспроизводит особый звук для каждого типа события, чтобы вы могли запускать длинные задачи без просмотра экрана:

  • Сообщение — Воспроизводится для каждого прибывающего сообщения, подтверждая, что модель всё ещё работает.
  • Завершено — Воспроизводится, когда чат заканчивает обработку.
  • Уведомление — Воспроизводится, когда чат ждёт вашего решения или одобрения (например, промпт AskUserQuestion).
  • Ошибка — Воспроизводится, когда чат сталкивается с неудачей.

Каждый тип звука имеет свой собственный контроль громкости в Настройки → Звуки, и вы можете отключить всё с иконкой динамика в заголовке. Вы можете заменить любой встроенный звук, поместив файл MP3 с тем же именем в папку .pastukhov/sounds/ в вашем проекте — например, message.mp3, complete.mp3, error.mp3 и т.д. Сервер сначала обслуживает пользовательские файлы, возвращаясь к встроенным по умолчанию, когда переопределение не существует. Со временем вы развиваете интуитивное чувство рабочего процесса от частоты и последовательности звуков — устойчивый ритм пингов сообщений означает, что всё работает плавно, в то время как внезапная тишина, уведомление или звук ошибки сигнализируют вам посмотреть на экран. Автор использует Bluetooth-наушники, чтобы оставаться отсоединённым от компьютера во время ожидания задач — с хорошим Bluetooth-адаптером вы можете ходить по дому, не будучи привязанным к рабочей комнате. Для детальной конфигурации звука и полного каталога звуков см. Валидация звуковым откликом.