Шлюз одобрения: агент никогда не одобряет собственное задание
Когда один агент пишет задание для другого, кто-то должен решить, что оно может выполняться. Сделайте одобрение отдельным действием названного человека с записью в журнал, по умолчанию «нет» и резервируйте весь бюджет до первого запроса. Флаг в файле сервиса одобрением не является.
🎯 Для Руководитель команды, который разрешает одному агенту готовить работу для другого
- Почему самоодобрение обессмысливает задание
- Как prepare, promote и enqueue остаются раздельными
- Зачем резервировать бюджет на всю задачу заранее
🚦 Два агента, один цикл
Частый шаблон: старший агент пишет задание для более дешёвого, и задание ставится в очередь. Если та же система, что пишет задание, может его и одобрить, никто ничего не решил. Ошибка в задании идёт прямо на исполнение, а за ней — счёт.
🧩 Три раздельных шага
В нашей схеме цикл состоит из трёх шагов, каждый — отдельная команда.
- Prepare (подготовка). Старший агент пишет задание: спецификацию для исполнителя и контракт приёмки в одном файле, поле
approvedравно false. - Promote (одобрение). Названный человек одобряет файл. Это отдельное действие, оно пишется в журнал: кто, когда, какой файл. Агент не может сделать это за себя.
- Enqueue (постановка). В очередь можно поставить только одобренный файл.
Глобальный переключатель в определении сервиса, включающий диспетчер, одобрением не является. Наша заметка о решении убирает именно такой, потому что флаг на весь процесс одобряет всё сразу и не записывает, кто решил.
💵 Резервируйте задачу целиком
Второе правило — про деньги. Проверка «остаток больше нуля» позволяет одной дорогой задаче съесть всё. Вместо этого бюджет всей задачи резервируется до первого запроса. Таймаут, остановка или ошибка оставляют списание неопределённым и блокируют новые задачи, пока человек не сверит. Считается вся траектория: циклы инструментов, размышления, проходы критика, повторы и переключения, а не только последний ответ. Неизвестная цена — не ноль.
📊 В цифрах
Каждый токен задачи в нашем транспорте привязан к отпечатку пакета задачи, и с 21 сентября 2026 выдано 1 415 токенов. Транспорт записал 4 резервирований. Оба числа посчитаны по базе 3 ноября 2026, 21:53 UTC.
🛠️ Практика: добавьте шлюз в свою очередь
- Добавьте поле
approvedв формат задания и сделайте false значением по умолчанию. - Напишите команду promote: ей нужны файл, имя человека и причина. Она дописывает строку в журнал и переключает поле.
- Пусть очередь отклоняет любое задание, у которого поле false или хэш отличается от записанного в журнале.
- Уберите из определений сервисов все глобальные переключатели «включить диспетчеризацию».
- Резервируйте бюджет задания при постановке, а не при старте. Отказывайте в постановке, если потолок будет превышен.
- Помечайте таймауты и остановленные запуски как неопределённые и останавливайте полосу, пока никто не сверит.
✅ Проверьте себя
- Измените одобренный файл на один символ. Очередь отклоняет его: хэш изменился.
- Попробуйте одобрить с пустым именем. Не получится.
- Запустите диспетчер без одобренных заданий. Он ничего не делает.
- Возьмите любое задание прошлой недели и найдите, кто его одобрил и когда.
🚧 Когда это не работает
- Одобрение «не глядя». Если один человек одобряет пятьдесят заданий в минуту, никто их не читает. Ограничьте размер пачки.
- Медленные полосы. Одобрение добавляет минуты. Для крошечных задач только чтения подумайте о постоянном правиле вместо решения на каждое задание.
- Одобрение не того. Человек видит сводку, а не всегда вызовы инструментов. Показывайте в запросе хэш файла и бюджет.
- Единственный одобряющий. Когда он отсутствует, полоса стоит. Назначьте заместителя.
- Агенты, правящие журнал. Держите журнал одобрений вне путей, куда агент может писать.
📊 Доказательства
| Что измерено | Токены задач, привязанные к отпечаткам пакетов, и резервирования бюджета в нашей базе транспорта |
| Когда | 3 ноября 2026, 21:53 UTC |
| Артефакт | Таблицы токенов задач и резервирований и заметка о решении для ограниченного исполнителя в нашем закрытом репозитории |
| Ограничение | Счётчики показывают, что шлюз используется, но не сколько раз одобрение было отклонено |
➡️ Дальше
Напишите само задание по материалу Разработка по спецификации на готовых пакетах задач и выберитесь из застрявшей полосы с помощью Восстановления после сбойного, зависшего или неопределённого запуска.
Источники
- Разработка по спецификации на готовых пакетах задач: как писать задание.
- Восстановление после сбойного, зависшего или неопределённого запуска: застрявшие полосы.
- Расходы, бюджеты и лимиты: бюджеты.
- Политика и реестр использования ИИ: кто что может.
🔗 Связи статьи
Открыть полный граф знаний ↗Связи опубликованных статей. Выберите узел, чтобы открыть статью у заголовка.
Связи статей · клавиатура / текст
Та же тема
- Векторная база — это карта, а не источник: чему нас научил поиск
- Когда неизвестно, сколько стоил вызов модели: заморозка, затем сверка
- Как разбить большую задачу для дешёвой модели: урок 24 000 байт
- Навыки, MCP-инструменты и правила: три способа дать агенту возможности
- Восемь ошибок наших агентов в shell и git и правило на каждую
- Несколько агентов, один репозиторий: правила владения из реальных инцидентов
Следующие шаги
Связанные материалы
Векторная база — это карта, а не источник: чему нас научил поиск
Векторная база находит фрагменты, близкие по смыслу к вашему вопросу. Она не знает, какие из них верны или актуальны. Считайте каждое попадание указателем: откройте названный файл, сверьте хэш, а числа берите из артефакта, а не из найденного абзаца.
ИИ-агенты и MCP простыми словамиКогда неизвестно, сколько стоил вызов модели: заморозка, затем сверка
Иногда вызов модели обрывается по таймауту, и вы не знаете, списал ли провайдер деньги. Никогда не записывайте это как ноль. Пометьте как неопределённое, остановите новые платные вызовы и пусть названный человек сверит это с выпиской провайдера. Отказы до генерации — исключение.
ИИ-агенты и MCP простыми словамиКак разбить большую задачу для дешёвой модели: урок 24 000 байт
Дешёвая модель хорошо справляется с одной небольшой чёткой задачей и плохо — с большой кучей. Мы ограничиваем задачу 24 000 байт и отклоняем большие до вызова любой модели. Режьте по единицам — один файл или одна страна на задачу — и проверяйте размер до запуска.
ИИ-агенты и MCP простыми словамиНавыки, MCP-инструменты и правила: три способа дать агенту возможности
Агенты получают способности по-разному. Правило ограничивает, что они делают, навык говорит, как делать работу, а MCP-инструмент позволяет вызывать функцию. У каждого свой риск, поэтому объявляйте все три в реестре и проверяйте тестом, что ничего не существует вне списка.
💬 Комментарии