Главная / Статьи / Практические замечания: когда панель управления зеленая, а агент ошибается: отслеживание

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

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

2467 слов

В следующих заметках описывается практический подход к решению проблемы «Когда панель управления показывает зеленый цвет, но агент ошибается: отслеживание многократных сбоев после вызова LLM». Основное внимание уделяется контрактам, проверкам и шаблонам кода, а не мотивирующим формулировкам. При работе с обзором сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичном сбое. Такой список поможет сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия элементам, определите критерии успеха и не допускайте безответственного частичного выполнения задачи.

Вызов LLM не всегда является местом возникновения проблемы

Документ «LLM Call Is Not Always Where the Problem Started» работает наилучшим образом, когда рассматривается как измеримая основа для анализа. Сначала соберите один идеальный пример транскрипции, один случай сбоя и записку о возврате к предыдущему состоянию, прежде чем расширять объем исследования. Записывайте время выполнения операций, а также стоимость токенов или запросов рядом с функциональными результатами. Отслеживание затрат на раннем этапе помогает избежать неожиданных счетов при переходе от демо-версии к общедоступным средам. Установите лимит токенов на один ход и на всю сессию. Инструменты типа агентов активно расширяют объем контекста; жесткие ограничения предотвращают появление неожиданных счетов при использовании демо-версий.

{
  "health_score": 42
}
{
  "health": {
    "score": 42
  }
}

Успешный вызов инструмента может все равно привести к плохому состоянию

Подход «Успешный вызов инструмента может всё равно привести к плохому состоянию» работает наилучшим образом, если рассматривать его как измеримую характеристику. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Установите лимиты на количество токенов за раунд и сессию. Инструменты-агенты активно расширяют контекст; жёсткие ограничения предотвращают появление неожиданных счетов при демонстрации функций.

crm.search_accounts
status: success
duration: 184ms
records: 47

Как это выглядит при реальной отладке работы

Чтобы подход «Как это выглядит при реальной отладке запуска» работал наилучшим образом, его следует рассматривать как измеримую основу. Сохраните один идеальный пример взаимодействия, один случай сбоя и записку о возврате к предыдущему состоянию до расширения объёма работ. Документируйте как успешный, так и восстановительный пути выполнения. Повторные попытки, проверки со стороны человека и обработка неработоспособных сообщений являются частью продукта, а не последующими доработками. Установите лимиты на количество операций за раз и за сессию. Инструменты типа агентов активно расширяют объём контекста; жесткие ограничения предотвращают появление неожиданных счетов. Чтобы подход «Как это выглядит при реальной отладке запуска» работал наилучшим образом, его следует рассматривать как измеримую основу. Сохраните один идеальный пример взаимодействия, один случай сбоя и записку о возврате к предыдущему состоянию до расширения объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия всем элементам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задач.

{
  "company": "Example Corp",
  "website": {
    "url": "https://example.com"
  }
}
{
  "company": "Example Corp",
  "website": "https://example.com"
}

Плановое смещение сложнее, поскольку система всё ещё может казаться разумной

Чтобы сделать плановое смещение более сложным, поскольку система всё ещё может казаться разумной, необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рядом с функциональными результатами следует записывать время выполнения, а также стоимость токенов или запросов. Отображение стоимости на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. При следующем шаге, представляющем собой код или вызов инструмента, следует отдавать предпочтение структурированным выводам с проверкой схемы перед произвольными текстовыми описаниями.

{
  "objective": "Compare suppliers and prepare a recommendation",
  "constraints": [
    "Do not contact suppliers"
  ],
  "completed_steps": [
    "discover_suppliers",
    "collect_public_pricing"
  ],
  "next_action": "request_missing_prices",
  "requested_tool": "send_email"
}

Маршрутизация моделей создаёт ещё один уровень отладки

Для модели маршрутизации, создающей дополнительные границы отладки, необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь граф. Предпочитайте структурированные выходные данные с проверкой схемы вместо свободного текста, когда следующим шагом является выполнение кода или вызов инструмента.

Отслеживайте состояние, а не только события

Для функции «Отслеживание состояния, а не только событий» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо одновременно задокументировать успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не этапом последующей доработки. При следующем шаге, представляющем собой код или вызов инструмента, следует отдавать предпочтение структурированным выводам с проверкой по схеме перед свободным текстовым описанием. Для функции «Отслеживание состояния, а не только событий» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия элементам, определите критерии успеха и не допускайте безответственного частичного выполнения задачи.

Это также влияет на способ оценки агентов

При работе над разделом «Это также влияет на способ оценки агентов» сначала запишите условия работы: необходимые входные данные, сигнал успешного выполнения и что происходит при частичной неудаче. Такой список поможет избежать ошибок при последующих изменениях кода. Рядом с функциональными результатами записывайте время выполнения и стоимость токенов или запросов. Отслеживание затрат с самого начала предотвращает неожиданные расходы при переходе с демо-среды в общедоступные среды. Храните в кэше стабильные инструкции системы и схемы инструментов. Повторная отправка одинаковых данных — частая причина избыточных затрат.

Перестаньте начинать с окончательного запроса

При работе над заданием «Не начинайте с последнего запроса» сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых начальных данных — частая причина избыточных расходов.

Наблюдаемость ИИ-агента должна охватывать весь процесс выполнения

При работе над тем, чтобы возможность наблюдения за действиями ИИ-агента охватывала весь процесс выполнения, сначала опишите контракт: необходимые входные данные, сигнал о успехе и то, что происходит при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Документируйте как успешный сценарий работы, так и сценарий восстановления. Повторные попытки, проверки человеком и обработка сообщений с ошибками являются частью продукта, а не элементами последующей доработки. Храните в кэше стабильные инструкции системы и схемы инструментов. Пересылка одинаковых входных данных является распространенной причиной избыточных затрат. При работе над тем, чтобы возможность наблюдения за действиями ИИ-агента охватывала весь процесс выполнения, сначала опишите контракт: необходимые входные данные, сигнал о успехе и то, что происходит при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успеха и не допускайте безответственного частичного выполнения задач.

Чек-лист операционной деятельности

Для операционного чек-листа необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии.

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

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

Устанавливайте точки контроля после дорогостоящих шагов. Система возобновления работы не должна повторно взимать плату за тот же вызов большой языковой модели, когда оператор пытается выполнить более поздний элемент.

Фиксируйте версии зависимостей и сохраняйте хэш изображения, с использованием которого выполнялась демонстрация. Воспроизводимость важнее коллективных знаний.

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

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

Примечание для 67c3fbb4b1a9: не храните ключи поставщика в репозитории, установите лимит токенов на сессию и храните копии данных рядом с фиксами для оценки, чтобы последующие замены моделей оставались сопоставимыми.

При работе над пунктом укрепления №0 сначала запишите описание процесса: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Храните конфигурацию отдельно от кода приложения. Файлы с настройками окружения, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.

Подробности укрепления №0/910: измерьте время выполнения, класс ошибки и расход токенов для данного пункта, затем решите, следует ли сохранять изменение, опираясь на заранее определенный набор критериев, а не на устные оценки.

Пункт укрепления №1 будет работать наилучшим образом, если рассматривать его как измеримую часть системы. Соберите один эталонный пример работы, один случай сбоя и запись о процедуре возврата к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, проверяемые на примерах элементы кода вместо обширных скриптов. Если какой-то шаг не сработает, причина сбоя должна указывать на конкретную ответственность, а не на запутанную последовательность действий.

Подробности усиления безопасности 1/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.

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

Подробности усиления безопасности 2/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.

При работе над пунктом усиления безопасности №3 сначала запишите условия соглашения: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Документируйте одновременно успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими доработками.

Подробности усиления безопасности 3/910: измерьте время выполнения, класс ошибки и расход токенов для данного пункта, затем решите, следует ли сохранять изменение на основе фиксированного набора критериев, а не на основе единичных примеров.

Пункт усиления безопасности №4 будет работать наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Рассматривайте этот этап как соглашение между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успеха и не допускайте молчаливого частичного завершения работы.

Подробности усиления безопасности 4/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора критериев, а не на основе единичных примеров.

Для записи об усилении безопасности 5 определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения: файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь код.

Подробности усиления безопасности 5/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора критериев, а не на основе единичных примеров.

При работе над пунктом усиления безопасности №6 сначала запишите условия работы: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Лучше использовать небольшие, тестируемые модули вместо обширных скриптов. Если какой-то шаг не сработает, причина неудачи должна указывать на конкретную ответственность, а не на запутанную цепочку операций.

Подробности усиления безопасности 6/910: измерьте время выполнения, класс ошибки и расход токенов для данного пункта, затем решите, следует ли сохранять изменение, опираясь на заранее определенный набор критериев, а не на устные оценки.

Пункт усиления безопасности №7 будет работать наилучшим образом, если рассматривать его как объект с измеримыми показателями. Соберите один эталонный пример работы, один случай сбоя и запись о возможности отката перед расширением объема работ. Записывайте время выполнения, а также стоимость в токенах или запросах рядом с функциональными результатами. Отслеживание затрат на раннем этапе предотвращает неожиданные расходы при переходе с демо-среды в общедоступные среды.

Подробности усиления безопасности 7/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных случаев.

Для записи об усилении безопасности 8 определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Документируйте как успешный путь, так и путь восстановления одновременно. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими улучшениями.

Подробности усиления безопасности 8/910: измерьте время выполнения, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранить изменения на основе фиксированного набора вопросов, а не на основе единичных случаев.

При работе над пунктом усиления безопасности №9 сначала запишите контракт: необходимые входные данные, сигнал успешного выполнения и действия при частичной неудаче. Такой чек-лист поможет сохранять честность при последующих изменениях кода. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успешности и не допускайте молчаливого частичного выполнения задачи.

Подробность усиления безопасности 9/910: измерьте время выполнения, класс ошибки и расход токенов для данного пункта, затем решите, следует ли сохранять изменение на основе фиксированного набора критериев, а не на основе единичных примеров.

Пункт усиления безопасности №10 будет работать наилучшим образом, если рассматривать его как измеримую поверхность. Соберите один эталонный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь кодовый граф.

Подробности усиления безопасности 10/910: измерьте время работы на стенде, класс ошибки и расход токенов для этой записи, затем решите, следует ли сохранять изменения на основе фиксированного набора вопросов, а не на основе единичных примеров.