Продолжаю строить свою Portfolio OS — систему управления проектами, задачами и публикациями с помощью AI-агентов. И недавно поймал довольно показательный случай, который заставил ещё раз задуматься о том, как мы вообще определяем, что агент успешно выполнил задачу.
Один из агентов отправлял статью в Дзен. Попытка завершилась без однозначного подтверждения, поэтому повторную отправку мы заморозили, чтобы случайно не создать дубликат.
Позже я передал системе публичную ссылку на статью:
https://dzen.ru/a/atOveCKVowlfZeLT
Казалось бы, всё хорошо. Статья существует, можно закрывать задачу.
Но опубликованная статья и корректно завершённый процесс публикации — две разные вещи.
В планировщике по-прежнему нет канонического факта публикации, а первоначальная попытка остаётся в неопределённом состоянии. Ручная ссылка помогает подтвердить существование публичного объекта, но не восстанавливает автоматически историю его появления.
При этом есть и другой кейс, где публичный объект и факт публикации были подтверждены штатно.
И вот здесь я понял, что нельзя сводить работу агентной системы к одному статусу Done или Failed.
Для себя теперь выделяю три уровней:
- Agent State — что агент сделал и чем завершилась его работа.
- Provider State — что известно о результате операции на стороне внешнего сервиса.
- Publication Evidence — какие подтверждения существования публичного объекта есть и как они связаны с записью в нашей системе.
Эти состояния совершенно не обязаны совпадать.
Агент может сообщить об успехе, хотя публикация не состоялась. Может потерять подтверждение, хотя статья появилась. А может оказаться, что публичный объект существует, но система не смогла связать его с исходной попыткой.
Отсутствие подтверждения — не доказательство отсутствия результата.
И это уже не просто техническая тонкость. Если разрешить агентам автоматически повторять любую неподтверждённую операцию, рано или поздно получим дубли публикаций, платежей, заявок и других действий с внешними последствиями.
Поэтому для таких ситуаций я хочу явно сохранять состояние UNCERTAIN: не повторять операцию автоматически, сохранять историю попытки, проверять внешнюю реальность и только после этого решать, что делать дальше.
А если результат подтверждён вручную, это тоже нужно фиксировать отдельно, не переписывая историю так, будто всё прошло штатно.
Кажется, именно здесь проходит одна из границ между набором AI-автоматизаций и полноценной операционной системой.
Хорошая система должна не просто выполнять действия, а уметь объяснить, что действительно произошло, что подтверждено и где остаётся неопределённость.
А как вы поступаете, когда автоматизация не получила подтверждения? Повторяете операцию или сначала пытаетесь выяснить, что произошло на самом деле?

Дискуссия