Tvijo wiki
Каталог

Темы

Шлюз одобрения: агент никогда не одобряет собственное задание

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

🎯 Для Руководитель команды, который разрешает одному агенту готовить работу для другого

📚 Вы узнаете
  • Почему самоодобрение обессмысливает задание
  • Как prepare, promote и enqueue остаются раздельными
  • Зачем резервировать бюджет на всю задачу заранее

🚦 Два агента, один цикл

Частый шаблон: старший агент пишет задание для более дешёвого, и задание ставится в очередь. Если та же система, что пишет задание, может его и одобрить, никто ничего не решил. Ошибка в задании идёт прямо на исполнение, а за ней — счёт.

🧩 Три раздельных шага

В нашей схеме цикл состоит из трёх шагов, каждый — отдельная команда.

  1. Prepare (подготовка). Старший агент пишет задание: спецификацию для исполнителя и контракт приёмки в одном файле, поле approved равно false.
  2. Promote (одобрение). Названный человек одобряет файл. Это отдельное действие, оно пишется в журнал: кто, когда, какой файл. Агент не может сделать это за себя.
  3. Enqueue (постановка). В очередь можно поставить только одобренный файл.

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

💵 Резервируйте задачу целиком

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

📊 В цифрах

Каждый токен задачи в нашем транспорте привязан к отпечатку пакета задачи, и с 21 сентября 2026 выдано 1 415 токенов. Транспорт записал 4 резервирований. Оба числа посчитаны по базе 3 ноября 2026, 21:53 UTC.

🛠️ Практика: добавьте шлюз в свою очередь

  1. Добавьте поле approved в формат задания и сделайте false значением по умолчанию.
  2. Напишите команду promote: ей нужны файл, имя человека и причина. Она дописывает строку в журнал и переключает поле.
  3. Пусть очередь отклоняет любое задание, у которого поле false или хэш отличается от записанного в журнале.
  4. Уберите из определений сервисов все глобальные переключатели «включить диспетчеризацию».
  5. Резервируйте бюджет задания при постановке, а не при старте. Отказывайте в постановке, если потолок будет превышен.
  6. Помечайте таймауты и остановленные запуски как неопределённые и останавливайте полосу, пока никто не сверит.

✅ Проверьте себя

  • Измените одобренный файл на один символ. Очередь отклоняет его: хэш изменился.
  • Попробуйте одобрить с пустым именем. Не получится.
  • Запустите диспетчер без одобренных заданий. Он ничего не делает.
  • Возьмите любое задание прошлой недели и найдите, кто его одобрил и когда.

🚧 Когда это не работает

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

📊 Доказательства

Что измерено Токены задач, привязанные к отпечаткам пакетов, и резервирования бюджета в нашей базе транспорта
Когда 3 ноября 2026, 21:53 UTC
Артефакт Таблицы токенов задач и резервирований и заметка о решении для ограниченного исполнителя в нашем закрытом репозитории
Ограничение Счётчики показывают, что шлюз используется, но не сколько раз одобрение было отклонено

➡️ Дальше

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

Источники

Связи опубликованных статей. Выберите узел, чтобы открыть статью у заголовка.

100%
→ Связанные статьи← Ссылаются сюда⋯ Та же тема
Связи статей · клавиатура / текст

💬 Комментарии

Комментарии публичны и модерируются. Не публикуйте персональные данные.
  • Комментариев пока нет. Будьте первым!

Следующие шаги

ИИ-агенты и MCP простыми словами

Векторная база — это карта, а не источник: чему нас научил поиск

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

ИИ-агенты и MCP простыми словами

Когда неизвестно, сколько стоил вызов модели: заморозка, затем сверка

Иногда вызов модели обрывается по таймауту, и вы не знаете, списал ли провайдер деньги. Никогда не записывайте это как ноль. Пометьте как неопределённое, остановите новые платные вызовы и пусть названный человек сверит это с выпиской провайдера. Отказы до генерации — исключение.

ИИ-агенты и MCP простыми словами

Как разбить большую задачу для дешёвой модели: урок 24 000 байт

Дешёвая модель хорошо справляется с одной небольшой чёткой задачей и плохо — с большой кучей. Мы ограничиваем задачу 24 000 байт и отклоняем большие до вызова любой модели. Режьте по единицам — один файл или одна страна на задачу — и проверяйте размер до запуска.

ИИ-агенты и MCP простыми словами

Навыки, MCP-инструменты и правила: три способа дать агенту возможности

Агенты получают способности по-разному. Правило ограничивает, что они делают, навык говорит, как делать работу, а MCP-инструмент позволяет вызывать функцию. У каждого свой риск, поэтому объявляйте все три в реестре и проверяйте тестом, что ничего не существует вне списка.