РАЗБОР РЕАЛЬНОЙ ОШИБКИ · 11
Как мы построили автономный контур публикации AI-статей
Мы попросили AI-агента подготовить серию статей. Тексты появились, но при проверке выяснилось: в статье есть термин NotebookLM, а ссылки на словарь нет. Затем обнаружилась ещё одна проблема — после переписывания материалов не был обновлён llms.txt. Это не мелкие опечатки. Это провал процесса публикации.
Почему агент ошибся
Агент выполнил локальную задачу — написал HTML-файлы, — но не проверил весь контур. Правила существовали в контексте, однако не были превращены в обязательную автоматическую проверку. Поэтому система могла сказать «готово», хотя каталог, карта для LLM и словарь были рассинхронизированы.
Первое решение: редакционные правила
Мы зафиксировали обязательную структуру: живая проблема в начале, конкретный результат, уровень сложности, время чтения, пошаговые действия, ошибки, проверка и ограничения. Отдельно добавили правило: первый специальный термин должен вести в лабораторный словарь.
Так статья перестаёт быть набором общих советов. Читатель понимает, что сломано, повторяет действия и проверяет результат.
Второе решение: единая карта материалов
У каждой статьи есть несколько представлений: HTML-страница для человека, запись в guides.html, URL в sitemap.xml и краткая карточка в llms.txt. Последний файл помогает AI-системам быстро понять структуру журнала и выбрать подходящий материал.
новая статья
├── guide.html
├── guides.html
├── sitemap.xml
├── llms.txt
└── glossary.jsЕсли меняется название или смысл статьи, обновляются все связанные представления. Одной ссылки в Git недостаточно.
Третье решение: автоматический publication gate
Мы добавили скрипт scripts/check-publication.py. Он проходит по всем guide-*.html и проверяет обязательные элементы:
- description и canonical URL;
- уровень, время и ожидаемый результат;
- ссылка на словарь;
- наличие статьи в каталоге;
- наличие URL в sitemap;
- наличие URL в llms.txt.
cd agentlabjournal
python3 scripts/check-publication.py
PUBLICATION_GATE: OKЕсли ссылка пропущена, скрипт возвращает BLOCKED и показывает конкретный файл. Такой результат нельзя замаскировать красивым ответом модели.
Почему это и есть автономность
Автономность — не «агент делает что угодно без контроля». Это система, которая сама выполняет разрешённую работу и сама останавливается, когда обязательное условие не выполнено. Человек принимает решение о цели, а машина проверяет повторяемые правила.
Итог
После одной ошибки мы получили воспроизводимый контур: правило → артефакт → автоматическая проверка → публикация. Такой подход можно перенести на код, R&D-эксперименты, почту и Telegram-агентов.