2026-08-01T18:15:42.983Z

Наблюдаемость агента для голодания в очереди: эпоха следования

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

Наблюдаемость агента не должна называть очередь нездоровой просто потому, что она длинная. Он должен спросить, как долго ждала самая старая задача runnable , доступен ли какой либо работник, есть ли свободный слот и до сих пор ли доходят проверенные результаты. Эти факты отличают законную зависимость от недостаточной способности, мертвого работника, отравленной работы или диспетчера, который перестал назначать работу. По умолчанию практически следует записывать eligibleAt для каждой задачи и предупреждать, когда now eligibleAt превышает начальную цель данного класса задач. Не запускайте часы, пока заявленная зависимость или задержка повторной попытки все еще действует. Глубина очереди остается полезным контекстом, но старение является сигналом решения. Глубина очереди это контекст, а не диагноз Счет сжимается в отличие от штатов. Десять задач могут ждать одобрения человека, быть готовы к началу, уже арендованы работникам, задерживаться из за задержки или неоднократно не выполняться. Если рассматривать всех десять как один задержанный, то оживленная очередь выглядит сломанной и может скрыть одну старую задачу за небольшим подсчетом. Само обслуживание очереди раскрывает ограничение. Amazon SQS публикует как ApproximateNumberOfMessagesVisible , так и ApproximateAgeOfOldestMessage , и маркирует многие приблизительные значения из за своей распределенной архитектуры. Google Pub/Sub более явно в своем руководство по мониторингу: абсолютное количество непризнанных сообщений не обязательно имеет смысла, в то время как небольшая постоянная задержка с постоянно растущим возрастом старейших сообщений может указывать на застрявшие сообщения. Для работы агента возраст необработанных сообщений все еще слишком груб. Задача, заданная в очередь в 09:00 но заблокированная на одобрение до 10:00 часов, не должна тратить час своего стартового бюджета, прежде чем она будет допустима. Определение: Оставьте eligibleAt отсутствующим, пока открыта ограниченная зависимость. Отдельно записывайте вид зависимости, владельца и срок. Если нет ни доказательств допустимости, ни действительной зависимости, верните uncertain ; не преобразуйте отсутствующие данные в здоровое нулевое. Создать книгу учета допустимости Минимальная запись может оставаться без контента: Поле Операционный вопрос taskId На какую безопасную непрозрачную идентификацию задачи влияет? eligibleAt Когда работник может законно начать его? dependency Кто или что владеет ожиданием и до какого времени? deliveryAttempts Задача исчерпала свою ограниченную политику повторных попыток? workerHeartbeatAt Доступен ли хотя бы один совместимый работник? slots и active Качество занято или доступно? lastVerifiedProgressAt Завершенные результаты все еще продвигаются? Это намеренно меньше, чем следы. OpenAI Agents SDK отслеживающая документация описывает поколения, вызовы функций, ограды, передачи и индивидуальные события. Эти записи помогают объяснить выполнение, но они не говорят, когда очередная задача стала допустимой или был ли достигнут намеченный результат. Присоединяйте подробные следы к регистру с помощью идентификатора безопасного выполнения; не заставляйте деятельность следа замещать прогресс очереди. Используйте распоряжение решения, которое сохраняет причину: 1. Отсутствуют доказательства о допустимости и зависимости uncertain . 2. Никакие выполняемые задачи плюс действительный договор аренды зависимости waiting . 3. Возраст, установленный в пределах стартовой цели, healthy . 4. Самая старая задача, выходящая за рамки своего бюджета, это poisoned head . 5. Старая работа, плюс устаревшие рабочие сердцебиения это worker unreachable . 6. Старая работа, все слоты заняты, и свежий проверенный прогресс capacity bound . 7. Старая работа, плюс новый работник и свободный слот dispatcher stuck . Порядок имеет значение. Если задача уже исчерпала свой бюджет попытки, добавление рабочих не является первым ремонтом. Если к работникам не подходит, то возлагать на них ответственность преждевременное дело. Если все слоты заняты, и результаты все еще прибывают, система медленно по отношению к своей цели, но не бездвижна. Повторяйте семь штатов очереди Сопровождающийся артефакт замораживает время наблюдения на 2026 07 26T04:50:00Z , устанавливает 120 секундный окно свежести рабочего и 300 секундный стартовый объект, а затем оценивает семь синтетических очередей. Произведенный ход: dispatcher gap является решающим случаем. Его самая старая работа ждала 900 секунд, сердцебиение рабочего всего 20 секунд, и оба слота бесплатны. Больше мощности не поможет; необходимо проверить доказательства назначения или маршрутизации. Напротив, all slots busy имеет 840 секундный эпох запуска, нет свободного слота, и проверенный результат 80 секунд назад. Он ограничен в соответствии с целями данной фиксации. bounded dependency был зафиксирован ранее, чем в любом из этих случаев, но это waiting : одобрение имеет названного владельца и будущий срок, поэтому не существует рабочего часа, который должен быть нарушен. silent worker сохраняет старую готовую работу отдельно от неисправности доступности. poisoned oldest предотвращает исчезновение пятой неудачной доставки в очереди, которая выглядит нормально. missing eligibility остается неопределенным. Эксперимент демонстрирует правило принятия решений, а не распространенность. Один синтетический случай на государство не может устанавливать пороги производства, и он не моделирует приоритетную инверсию, разделенные очереди, колебание часов или ограничения относительно взаимодействия с задачей. Совместный возраст с движением способностей и результатов Сроковой возраст становится действенным только при наличии возможностей и прогресса. Старая задача с каждым совместимым слотом предполагает решение о масштабировании или формировании рабочей нагрузки. Тот же возраст с открытыми точками в отправке, маршрутизации, сближения с заданием или потерянный арендный договор. Избегайте трех соблазнительных коротких путей: Не средняя голодание. Низкое среднее задержка старта может сосуществовать с одной задачей, которая никогда не выполняется. Отслеживайте самый старый возраст и процент по классу задач. Не смешивайте блокированную и запускаемую работу. Сохраняйте видный возраст зависимости, но исключите его из исходной цели до тех пор, пока зависимость не исчезает или срок аренды не истек. Не следует делать выводы о прогрессе с помощью лизинговых контрактов или призывов к инструментам. Кapacity действительно движется только тогда, когда изменяется конкретный артефакт задачи, проверка приема или расписка назначения. Выберите начальную цель из обещания работы. Интерактивная задача кодирования, плановый отчет и ночное согласование не должны делиться на 300 секунд, потому что фиксация так и делает. Измерить нормальное время для старта, установить пересматриваемую цель с помощью буфера и версировать ее. Разделение на совместимый рабочий фонд или класс задач, так что одна не связанная очередь не может скрыть голод. Когда истекает срок зависимости, не продлевайте его молча. Вычислите право на получение пособия по доказательствам, которые у вас есть, и сообщите об этом названному владельцу. Если сердцебиение работника устарело, проверьте связь, прежде чем перепробовать работу, которая может быть еще работает в другом месте. Когда отравленная задача достигает своего бюджета доставки, карантин или запрос об обзоре вместо того, чтобы позволить ей монополизировать начальника очереди. Держите диагноз отдельно от вмешательства Убежимый возраст говорит о том, что оперативное обещание опоздало; соединенные факты указывают на причину. Они не разрешают автоматический ремонт. Вердикт dispatcher stuck может подготовить проверку ограниченного рассылки. capacity bound может открыть пересмотр мощности. worker unreachable может запросить проверку доступности. Ни одно из этих штатов не позволяет перезагрузить хост, дублировать побочный эффект, менять учетные данные или тратить больше, чем можно попытаться. После принятия любых утвержденных мер требуются новые доказательства: задача получила арендный договор, изменен прогресс отпечатков пальцев или ожидаемый результат был проверен независимо. Команда, которая вернула нуль, это активность, а не восстановление. Есть важные границы. Срок действия поставщика услуг может быть приблизительным. Склон часов может создать невозможные отрицательные эпохи, поэтому сравнивайте время коллектора и время производителя перед использованием результата. Приоритетные очереди могут законно позволить работе с низким приоритетом стартовать; раскрыть политику, а не назвать ее здоровой случайно. Задача также может удерживать свободно выглядящий слот через незамеченный лизинговый контракт, поэтому отсутствие лизинговых данных должно снизить доверие. Решенное правило ограничено: запустить часы, когда работа действительно выполняется, предупредить о старейшей выполняемой задаче против задачи специфической цели, а затем использовать свежесть работника, свободные слоты, перепробовать бюджет и проверенное движение результатов для классификации причины. Sidewisp сейчас находится на этапе закрытого предварительного доступа. Его публичный сайт и библиотека статей живы, но коллекция производственного агента здравоохранения, адаптеры запускного времени и восстановление, как правило, не доставляются. Sidewisp предназначен для работы наряду с существующими сроками запуска, а не для их замены или выполнения функции автономного фиксатора. Если доказательства прозрачности позволят вам легче судить о операциях агентов, вы можете присоединиться к раннему доступу, рассматривая продукт как предварительный просмотр, а не развернутый мониторинг.