TL;DR
CogGen — техника рекурсивной генерации отчётов, которая ломает линейный сценарий «написал раздел 1, написал раздел 2, не вернулся». Вместо этого: сначала глобальный план, потом черновик всех разделов, потом ревью всего отчёта целиком, потом пересмотр плана — и снова по кругу, пока структура не станет логически связной.
Главная боль — LLM пишет отчёты «от начала к концу», не оглядываясь назад. Попросил написать анализ рынка на 10 разделов — и к разделу 7 модель находит данные, которые ломают логику раздела 2. Но раздел 2 уже написан. В итоге отчёт, где каждый абзац неплохой, но целое не держится: противоречия, повторы, вывод не вытекает из вступления.
Решение — два вложенных цикла. Макро-цикл: создать план → написать все разделы → провести глобальный ревью → пересмотреть план → переписать. Микро-цикл: для каждого раздела внутри — собрать информацию → скорректировать план раздела → написать → проверить. Точка пересмотра — после того как виден весь черновик целиком, не до.
Схема метода
МАКРО-ЦИКЛ (несколько запросов в чат):
ШАГ 1 → Planner: поиск информации + создать outline → outline O(0)
ШАГ 2 → Writer: написать все разделы по outline → черновик C(t)
ШАГ 3 → Reviewer: оценить ВЕСЬ черновик целиком → список проблем Δ(t)
└─ Улучшение есть? → перейти к ШАГ 4
└─ Нет? → принять черновик, перейти к визуалу
ШАГ 4 → Planner: пересмотреть outline с учётом Δ(t) → outline O(t+1)
└─ вернуться к ШАГ 2
МИКРО-ЦИКЛ (внутри ШАГ 2, для каждого раздела):
→ Поиск по теме раздела
→ Скорректировать план раздела (если нужно)
→ Написать раздел
→ Проверить на соответствие глобальному outline
ВИЗУАЛ (Abstract Visual Representation — параллельно с написанием):
→ Writer описывает намерение: [что показать | зачем | какие данные]
→ Render Agent (отдельный шаг) переводит в код/график
Все шаги выполняются в отдельных запросах в чате. Parallelism из статьи — только в автоматизированной системе; вручную — последовательно.
Пример применения
Задача: Написать аналитический отчёт «Рынок подписок на стриминг в России: Kion, Okko, START, Wink» — для питча инвестору. Нужны данные, логика, визуализации.
Промпт (3 отдельных запроса):
Запрос 1 — план:
Ты — аналитик, которому нужно написать инвестиционный отчёт
«Рынок видеостриминга в России 2024–2025».
ЭТАП 1 — ПЛАН
Создай структуру отчёта:
- 6–8 разделов
- для каждого раздела: ключевой вопрос, который он закрывает
- для каждого раздела: 2–3 тезиса, которые нужно доказать
Выведи только план. Не начинай писать текст.
Запрос 2 — черновик:
Вот план отчёта: [вставить план из шага 1]
ЭТАП 2 — ЧЕРНОВИК
Напиши каждый раздел по плану.
В конце каждого раздела добавь маркер: [РАЗДЕЛ ЗАВЕРШЁН: название]
Для каждого графика или таблицы — не пиши код.
Опиши намерение в формате:
[ВИЗУАЛ | тип: bar chart / line / table | показывает: ... |
зачем: какой вывод поддерживает | данные: откуда взять]
Запрос 3 — глобальный ревью и пересмотр:
Вот черновик отчёта: [вставить черновик]
ЭТАП 3 — ГЛОБАЛЬНЫЙ ПЕРЕСМОТР
Проверь отчёт целиком:
1. Логически ли связан отчёт? Вывод вытекает из данных?
2. Есть ли разделы, которые противоречат друг другу?
3. Есть ли информация из поздних разделов, которая требует
пересмотра ранних?
4. Нужно ли переструктурировать? Если да — предложи новый plan.
Выдай: список проблем + новый outline (если нужен).
Если глобальная структура изменилась — напиши финальную версию
отчёта с новым планом.
Результат:
Первые два запроса дадут черновик с маркерами [РАЗДЕЛ ЗАВЕРШЁН] и описаниями визуалов в формате AVR. Третий запрос — либо подтверждение что структура держится, либо конкретный список противоречий (раздел про монетизацию противоречит данным про аудиторию) плюс предложение переструктурировать. При переработке модель видит весь черновик целиком и уже может выстроить связную логику от первого раздела до вывода.
Почему это работает
Слабость LLM — модель генерирует текст последовательно и не может «вернуться назад». Когда пишет раздел 6, она больше не «помнит» намерение раздела 2. В итоге за длинный отчёт контекст «уплывает», а структура рассыпается. Это не баг, это архитектура: модель предсказывает следующий токен, а не перечитывает написанное по-человечески.
Сильная сторона LLM — модель отлично оценивает и критикует готовый текст. Если показать ей весь черновик целиком и спросить «где противоречия?» — она найдёт. Ревью чужого или «своего готового» текста работает намного лучше, чем одновременное создание и контроль качества.
Как метод использует это — CogGen прерывает линейный процесс принудительной «точкой остановки». После полного черновика включается ревью с глобальной перспективой — модель видит отчёт как единое целое. Обнаруженные противоречия идут не в правку отдельных разделов, а в пересмотр плана. Правится архитектура, а не текст — это и даёт логическую связность.
Рычаги управления: - Число итераций макро-цикла → 1-2 для средних отчётов, 3-4 для глубоких многотемных анализов - Критерии ревью → замени стандартные («логическая связность, противоречия») на специфические под задачу («инвестиционная убедительность», «соответствие регуляторной рамке») - Детальность плана раздела → больше тезисов в outline = меньше пространства для «ухода в сторону» при написании - AVR-формат → описывай визуализации на этапе плана, а не после — это помогает модели писать текст с расчётом на визуал
Шаблон промпта
Ты — {роль: аналитик / стратег / эксперт в области {домен}}.
Задача: написать {тип_документа} по теме «{тема}».
═══ ЭТАП 1: ПЛАН ═══
Создай структуру документа:
- {число_разделов} разделов
- Для каждого: ключевой вопрос раздела
- Для каждого: 2–3 тезиса, которые раздел должен доказать
- Укажи: какие данные/факты потребуются для каждого раздела
Только план. Не начинай писать текст.
---
[После получения плана — следующий запрос]
═══ ЭТАП 2: ЧЕРНОВИК ═══
Вот план: {вставить план}
Напиши каждый раздел по плану.
Маркер в конце каждого раздела: [РАЗДЕЛ: {название} — ЗАВЕРШЁН]
Для каждого визуального элемента (графики, таблицы, схемы):
НЕ пиши код. Используй формат намерения:
[ВИЗУАЛ | тип: {bar/line/table/pie} |
показывает: {что} |
вывод который поддерживает: {зачем} |
источник данных: {откуда}]
---
[После получения черновика — следующий запрос]
═══ ЭТАП 3: ГЛОБАЛЬНЫЙ РЕВЬЮ ═══
Вот черновик: {вставить черновик}
Оцени документ целиком по критериям:
1. Логика: вывод вытекает из данных первых разделов?
2. Противоречия: есть ли разделы, которые опровергают друг друга?
3. Пересмотр структуры: требует ли информация из поздних разделов
изменить логику ранних?
4. Критерий {специфический для задачи: убедительность для инвестора /
соответствие ТЗ / фактическая точность}
Выдай:
- Список найденных проблем
- Предложение нового плана (если структура требует пересмотра)
- Да/нет: нужна ли переработка?
Если да — напиши финальную версию с исправленной структурой.
Плейсхолдеры:
- {роль} — аналитик рынка, маркетолог, юрист, стратег
- {тип_документа} — аналитический отчёт, инвестиционное резюме, конкурентный анализ
- {тема} — конкретная тема со сферой и географией
- {число_разделов} — 5–8 для развёрнутого анализа
- {специфический критерий} — подстрой под получателя документа
🚀 Быстрый старт — вставь в чат:
Вот шаблон рекурсивного написания отчёта по методу CogGen.
Адаптируй под мою задачу и задай уточняющие вопросы.
[вставить шаблон выше]
LLM спросит тему, тип документа, роль эксперта и получателя отчёта — потому что без этого нельзя создать осмысленный план и задать правильные критерии ревью. Она возьмёт трёхэтапную структуру и заполнит под твою задачу.
Ограничения
⚠️ Короткие задачи: Для текстов до 2-3 разделов метод избыточен. Трёхэтапный цикл оправдан только для объёмных документов с 5+ разделами и перекрёстными зависимостями.
⚠️ Качество ревью зависит от критериев: Если в ЭТАПЕ 3 не указать конкретные критерии — модель даёт общие замечания вместо структурных. Потрать время на формулировку критериев под задачу.
⚠️ Параллельность недоступна вручную: В оригинальной системе все разделы пишутся одновременно. В ручном режиме — последовательно. Для больших отчётов (10+ разделов) это медленно.
⚠️ Полное воспроизведение требует кода: Оригинальная система — автоматизированный multi-agent pipeline с оркестрацией через API. Шаблон выше — ручная адаптация принципов, а не полный CogGen.
⚠️ Визуальный рендеринг — отдельная задача: AVR-описания нужно отдельно конвертировать в код (в том же чате, в Code Interpreter или через отдельный инструмент).
Ресурсы
Работа: CogGen: A Cognitively Inspired Recursive Framework for Deep Research Report Generation
GitHub: https://github.com/NJUNLP/CogGen
Теоретическая база: - Cognitive Process Theory of Writing (Flower & Hayes, 1981; Hayes, 1996) - Cognitive Load Theory (Sweller, 1994) - Cognitive Theory of Multimedia Learning (Mayer, 2005) - Cognitive Offloading (Risko & Gilbert, 2016)
Авторы: Kuo Tian, Pengfei Sun, Zhen Wu, Junran Ding, Xinyu Dai
Университет: National Key Laboratory for Novel Software Technology, Nanjing University, China; Nanjing Haodun Technology Development Co., Ltd.
