3,583 papers
arXiv:2511.17673 74 21 нояб. 2025 г. FREE

Structured Cognitive Loop: разделяй и властвуй над LLM-агентом

КЛЮЧЕВАЯ СУТЬ
LLM-агенты теряют до 25% запросов на повторы и нарушения, когда пытаются делать всё в один промпт — помнить правила, рассуждать, проверять себя, действовать. Это перегрузка: модель как жонглёр с пятью мячами вслепую. Метод Structured Cognitive Loop позволяет разбить работу агента на явные фазы — сбор данных → рассуждение → проверка → действие → память. Фишка: специальный модуль Control проверяет соблюдение правил перед каждым действием, а не надеется что модель «сама вспомнит» инструкцию из начала промпта. Результат — ноль нарушений политик и ноль повторных вызовов там, где обычные агенты (ReAct, AutoGPT) сбоят в 15-25% случаев.
Адаптировать под запрос

TL;DR

Structured Cognitive Loop (SCL) — архитектурный подход, который разбивает работу LLM-агента на пять отдельных фаз: сбор информации → рассуждение → проверка → действие → память. Вместо того чтобы просить модель "сделать всё сразу", каждая функция выполняется отдельным модулем с чёткими границами. Ключевой механизм — Soft Symbolic Control: набор правил в начале промпта (Metaprompt), которые модель обязана соблюдать, а специальный модуль проверяет соблюдение перед каждым действием.

Главная находка исследования: когда LLM выполняет сложную задачу "в лоб" — без разделения функций — она теряет контекст, повторяет одни и те же запросы, нарушает ограничения и не может объяснить свои решения. Причина: всё смешано в одном потоке генерации. Модель должна одновременно помнить правила, рассуждать, проверять себя и действовать — это перегрузка, которая ведёт к сбоям. Типичные симптомы: запросила API дважды, забыла ограничение из начала промпта, не смогла объяснить почему выбрала вариант А, а не Б.

Решение SCL: разделить эти функции явно. Каждая фаза — отдельный "модуль" с одной задачей. Между ними — точки проверки. Control (проверка) смотрит на вывод Cognition (рассуждения) и либо пропускает к Action (действие), либо отклоняет. Memory (память) хранит все промежуточные результаты, чтобы не потерять контекст. В экспериментах такая структура дала ноль нарушений политик и ноль повторных вызовов там, где обычные агенты (ReAct, AutoGPT) ошибались в 15-25% случаев.


🔬

Схема метода

RETRIEVAL (один раз в начале)
│  Сбор контекста: данные, ограничения, инструкции
│  → Формирует начальное состояние
▼
┌─────────────────────────────────────────────────┐
│           ЦИКЛ CCAM (повторяется)               │
│                                                 │
│  COGNITION → рассуждение, план действий         │
│      ↓                                          │
│  CONTROL → проверка: соблюдены ли правила?      │
│      ↓ (если ДА)                                │
│  ACTION → выполнение одного действия            │
│      ↓                                          │
│  MEMORY → сохранить результат и обоснование     │
│      ↓                                          │
│  [следующая итерация или завершение]            │
└─────────────────────────────────────────────────┘

Каждый цикл — один шаг задачи. Control — ключевой элемент: если рассуждение нарушает правила или не ссылается на собранные данные, цикл не пропускается к действию.


🚀

Пример применения

Задача: Ты — маркетолог в агентстве. Нужно выбрать блогера для рекламы нового сервиса доставки еды в Москве. Есть три кандидата с разными охватами и ценами. Условия: если все трое дороже 500К рублей — выбрать самого дешёвого. Если двое в бюджете — выбрать того, у кого выше вовлечённость. Если только один — его и брать. Если все дорогие и вовлечённость меньше 3% — отказаться от размещения.

Промпт:


ПРАВИЛА:
1. Каждое решение должно ссылаться на конкретные данные из памяти
2. Нельзя делать финальный выбор без проверки всех условий
3. Одно действие за цикл
4. Перед финальным решением — явная проверка соответствия условиям



Выбери блогера для рекламы сервиса доставки. Бюджет: 500 000 руб.
Кандидаты: @foodie_msk, @kitchen_queen, @moscow_eats
Условия выбора:
- Все дороже бюджета → выбрать самого дешёвого
- Двое в бюджете → выбрать с высшей вовлечённостью  
- Один в бюджете → его и брать
- Все дорогие И вовлечённость <3% у всех → отказ


Выполняй по циклам R-CCAM:

RETRIEVAL: Собери данные о каждом блогере (цена, охват, вовлечённость)

Затем для каждого шага:
COGNITION: [Что нужно узнать/решить сейчас?]
CONTROL: [Проверка: есть ли данные? соблюдены ли правила?]
ACTION: [Одно конкретное действие]
MEMORY: [Что сохранить для следующих шагов?]

Продолжай циклы до финального решения.

Результат:

Модель выдаст структурированный ответ с явными фазами:

  • RETRIEVAL: соберёт/запросит данные по каждому блогеру
  • COGNITION (цикл 1): "Нужно сравнить цены с бюджетом"
  • CONTROL: "Данные есть для всех трёх? Да. Пропускаю."
  • ACTION: "Сравниваю: @foodie_msk 450K ✓, @kitchen_queen 600K ✗, @moscow_eats 480K ✓"
  • MEMORY: "В бюджете: foodie_msk, moscow_eats"
  • COGNITION (цикл 2): "Двое в бюджете → сравнить вовлечённость"
  • И так далее до финального выбора с полным обоснованием

Каждый шаг — прозрачен. Каждое решение — обосновано данными. Если что-то пошло не так — видно где именно.


🧠

Почему это работает

Слабость LLM "в лоб": Модель пытается делать всё одновременно — помнить правила, собирать данные, рассуждать, проверять себя, действовать. Это как жонглировать пятью мячами вслепую. Длинный контекст = потеря фокуса. Правило из начала промпта забывается к концу. Модель не знает, что уже запрашивала, и делает это снова.

Сильная сторона LLM: Модель отлично выполняет одну задачу за раз с чётким контекстом. Если сказать "сейчас ты только рассуждаешь, не действуй" — рассуждение будет качественнее. Если сказать "проверь, есть ли в памяти данные для этого решения" — проверит честно.

Как SCL использует это: Вместо одного сложного промпта — цикл простых шагов. Каждая фаза знает свою роль. Metaprompt в начале — это не надежда "модель запомнит", а контракт, который проверяется на каждом шаге. Control-фаза явно спрашивает: "Соблюдены ли правила? Есть ли ссылки на данные?" Если нет — цикл не пропускается.

Рычаги управления:

  • Правила в Metaprompt → добавь/убери ограничения под задачу
  • Количество циклов → больше для сложных задач, меньше для простых
  • Строгость Control → "мягкая проверка" (предупреждение) или "жёсткая" (полный стоп)
  • Формат Memory → что именно сохранять между шагами

📋

Шаблон промпта


ПРАВИЛА ВЫПОЛНЕНИЯ:
1. Каждое утверждение должно ссылаться на данные из Memory
2. Нельзя выполнять финальное действие без прохождения Control
3. Один ACTION за цикл
4. {дополнительные_правила_под_задачу}



{описание_задачи}

Условия:
{условия_и_ограничения}


Выполняй по циклам R-CCAM:

**RETRIEVAL** (один раз в начале):
Собери всю необходимую информацию: {что_собрать}

Затем повторяй циклы:

**COGNITION**: Что нужно решить/узнать на этом шаге? Какие есть варианты?

**CONTROL**: 
- Есть ли в Memory данные для этого решения? 
- Соблюдены ли правила Metaprompt?
- Если НЕТ → вернуться к COGNITION с корректировкой

**ACTION**: Одно конкретное действие (если Control пройден)

**MEMORY**: Что сохранить? (результат, обоснование, отклонённые варианты)

Продолжай до финального решения. В конце — итог с полной трассировкой.

Плейсхолдеры:

  • {дополнительные_правила_под_задачу} — специфичные ограничения: "не больше 3 итераций", "приоритет скорости над качеством"
  • {описание_задачи} — что нужно сделать
  • {условия_и_ограничения} — бизнес-логика, бюджеты, критерии выбора
  • {что_собрать} — данные, которые нужны для решения

🚀 Быстрый старт — вставь в чат:

Вот шаблон R-CCAM для структурированного решения задач. Адаптируй под мою задачу: [твоя задача]. Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит: какие правила нужны? какие данные собирать? какие условия проверять? — потому что без этого Metaprompt и Control не работают. Она возьмёт структуру R-CCAM и адаптирует под твою задачу.


⚠️

Ограничения

⚠️ Накладные расходы: Структура добавляет токены. Для простых задач ("переведи текст", "напиши письмо") — избыточно. Используй для многошаговых задач с условиями.

⚠️ Не для творчества: Метод заточен под логику, проверки, соблюдение ограничений. Для креативных задач жёсткая структура может мешать.

⚠️ Зависимость от качества Metaprompt: Если правила сформулированы плохо — Control будет проверять не то. Garbage in — garbage out.

⚠️ Длинные задачи: В экспериментах тестировали 4-7 циклов. Как поведёт себя на 20+ — неизвестно. Возможно накопление ошибок.


🔍

Как исследовали

Команда из JEI University создала два эксперимента. Первый — "mock" версия с детерминированным движком вместо LLM. Это позволило изолировать архитектуру от случайностей модели. Задача: планирование поездки с условной логикой ("если температура во всех городах выше X — выбрать самый прохладный"). Результат: 0 нарушений политик, 0 повторных запросов API, 100% трассируемость решений.

Второй эксперимент — живой агент на GPT-4o для планирования путешествий. Реальные API погоды, реальная отправка email. 150+ запросов пользователей, 98.7% успешных завершений (2 сбоя из-за таймаутов API, не архитектуры). Ключевой инсайт: та же структура R-CCAM работает и с mock-движком, и с production LLM. Архитектура не зависит от конкретной модели.

Сравнение с базовыми агентами (ReAct, Reflexion, AutoGPT, MemGPT) показало разительную разницу. ReAct — 3.2 нарушения политик на задачу, AutoGPT — 4.5. SCL — 0. Причина: в prompt-centric подходах модель должна "помнить" правила. В SCL — правила проверяются архитектурно, независимо от памяти модели.

Важный нюанс: сравнение делали по данным из других исследований, а не head-to-head. Авторы честно указывают это как ограничение — прямое сравнение на идентичных задачах ещё предстоит.


📄

Оригинал из исследования

Контекст: Пример аудит-лога из эксперимента — структура, которую генерирует SCL для каждого цикла.

json
{
  "loop": "San Francisco",
  "phases": ["Cognition", "Control", "Action", "Memory"],
  "cognition_output": "Need weather data for San Francisco. Consulting Memory shows no existing data for this city. Will query weather API.",
  "control_result": "PASS: Evidence citation present, no redundancy detected",
  "action": "get_weather(city='San Francisco')",
  "memory_store": "evidence_get_weather_{\"city\":\"San Francisco\"}"
}

Metaprompt из исследования (политики, которые Control проверяет):

policies: [
  "must_cite_stored_evidence",
  "no_final_answer_without_control_pass", 
  "single_final_action"
]

Каждое решение должно ссылаться на сохранённые данные. Финальный ответ только после прохождения Control. Одно финальное действие (не серия).


💡

Адаптации и экстраполяции

📌

💡 Адаптация для принятия решений о найме

Та же структура R-CCAM работает для любых решений с условиями и данными:


ПРАВИЛА:
1. Оценка каждого кандидата должна ссылаться на конкретные факты из резюме
2. Нельзя отклонять без указания причины из критериев
3. Финальный выбор — только после сравнения всех кандидатов



Выбери кандидата на позицию продакт-менеджера.
Критерии: 3+ года опыта, знание Agile, опыт работы с B2B продуктами.


RETRIEVAL: Извлеки ключевые факты из резюме каждого кандидата

Цикл 1: COGNITION → CONTROL → ACTION → MEMORY для кандидата 1
Цикл 2: То же для кандидата 2
...
Финальный цикл: сравнение и выбор

📌

🔧 Техника: Убрать жёсткую структуру → гибкий чеклист

Если полный R-CCAM кажется громоздким, можно взять только принцип проверки:

Перед тем как дать финальный ответ:
□ Есть ли данные для каждого утверждения?
□ Проверены ли все условия задачи?
□ Не повторяю ли я уже сделанные шаги?
□ Могу ли объяснить почему выбрал именно это?

Если хоть один пункт — нет, вернись и исправь.

Это "лайт-версия" Control module — без явных циклов, но с той же идеей проверки перед действием.


📌

🔧 Техника: Memory как "рабочий блокнот"

Один из ключевых принципов SCL — явное сохранение промежуточных результатов. Можно использовать отдельно:

После каждого шага анализа записывай в блок MEMORY:
- Что узнал
- Что это значит для задачи
- Какие варианты отпали и почему

В финале — используй только то, что в MEMORY.

Это предотвращает "галлюцинации" и потерю контекста в длинных задачах.


🔗

Ресурсы

Работа: "Bridging Symbolic Control and Neural Reasoning in LLM Agents: The Structured Cognitive Loop"

Автор: Myung Ho Kim, JEI University

Открытый код: https://github.com/enkiluv/scl-core-experiment

Живая демо: https://scl-travel-planner.streamlit.app/

Ключевые отсылки из исследования:

  • ReAct (Yao et al., 2023) — базовый prompt-centric подход
  • MemGPT (Packer et al., 2023) — память для LLM-агентов
  • CLARION (Sun, 2006) — когнитивная архитектура с двойным слоем
  • Expert Systems (Buchanan & Shortliffe, 1984) — исторический фундамент

📋 Дайджест исследования

Ключевая суть

LLM-агенты теряют до 25% запросов на повторы и нарушения, когда пытаются делать всё в один промпт — помнить правила, рассуждать, проверять себя, действовать. Это перегрузка: модель как жонглёр с пятью мячами вслепую. Метод Structured Cognitive Loop позволяет разбить работу агента на явные фазы — сбор данных → рассуждение → проверка → действие → память. Фишка: специальный модуль Control проверяет соблюдение правил перед каждым действием, а не надеется что модель «сама вспомнит» инструкцию из начала промпта. Результат — ноль нарушений политик и ноль повторных вызовов там, где обычные агенты (ReAct, AutoGPT) сбоят в 15-25% случаев.

Принцип работы

Вместо одного сложного промпта — цикл из пяти простых шагов. RETRIEVAL (один раз) → собери все данные и ограничения. Затем повторяй: COGNITION (что решить?) → CONTROL (соблюдены ли правила? есть ли данные?) → ACTION (одно действие) → MEMORY (сохрани результат). Control — это не просьба «не забудь правила», а явная проверка: если рассуждение не ссылается на данные из памяти или нарушает ограничения — цикл не пропускается к действию. Модель делает одну задачу за раз, а не пять одновременно.

Почему работает

Слабость LLM: пытается жонглировать всем сразу — длинный контекст съедает фокус, правило из начала промпта забывается к концу. Сильная сторона: модель отлично делает одну задачу с чётким контекстом. SCL разделяет функции физически — каждая фаза знает свою роль. В фазе Cognition модель только рассуждает, не действует. В Control только проверяет, не генерирует новое. Это как конвейер на заводе — каждый этап делает своё, а не всё разом. В экспериментах на задачах с 4-7 шагами и жёсткими ограничениями (бюджет, API-лимиты, политики) — 15-25% сбоев упали до нуля. Причина: модель не держит правила в голове, они проверяются извне на каждом шаге.

Когда применять

Многошаговые задачи с ограничениями и проверками → выбор по критериям (блогер для рекламы, поставщик для тендера), планирование с бюджетами, агенты с вызовами API, любая логика типа «если А то Б, если В то Г». Особенно когда нарушение правил дорого стоит (потеря денег, нарушение политик). НЕ подходит для простых задач (перевод, пересказ) — структура добавляет токены и избыточна. НЕ для креатива — жёсткая структура душит спонтанность.

Мини-рецепт

1. Создай Metaprompt: впиши правила которые модель ОБЯЗАНА соблюдать — «одно действие за цикл», «каждое решение ссылается на данные», «не больше трёх попыток». Это контракт, не пожелание.
2. Опиши задачу и условия: что нужно сделать + все ограничения (бюджет, критерии, политики). Чем конкретнее — тем лучше работает Control.
3. Укажи что собрать в RETRIEVAL: данные, которые нужны для всех решений. Модель соберёт один раз в начале.
4. Запусти цикл R-CCAM: Выполняй по циклам: COGNITION → CONTROL → ACTION → MEMORY. Продолжай до финального решения.
5. Проверь трассировку: модель покажет все шаги, обоснования и проверки. Если что-то не так — видно где именно.

Примеры

[ПЛОХО] : Выбери блогера для рекламы доставки еды. Бюджет 500К. Кандидаты: @foodie_msk, @kitchen_queen, @moscow_eats. Учти охват, цену и вовлечённость. Если все дороже — бери дешёвого, если двое подходят — бери с высшей вовлечённостью. (Модель сделает выбор, но не покажет как проверила условия. Может забыть ограничение, может выбрать не по критерию.)
[ХОРОШО] : `` ПРАВИЛА: 1. Каждое решение ссылается на данные из Memory 2. Нельзя делать выбор без проверки всех условий 3. Одно действие за цикл Выбери блогера. Бюджет 500К. Кандидаты: @foodie_msk, @kitchen_queen, @moscow_eats Условия: - Все дороже → самый дешёвый - Двое в бюджете → высшая вовлечённость - Один в бюджете → его Выполняй R-CCAM: RETRIEVAL: Собери цену, охват, вовлечённость каждого Циклы: COGNITION → CONTROL → ACTION → MEMORY `` (Модель выдаст структурированный ответ с явными проверками на каждом шаге. Каждое решение обосновано данными. Если нарушила правило — Control отклонит.)
Источник: Bridging Symbolic Control and Neural Reasoning in LLM Agents: The Structured Cognitive Loop
ArXiv ID: 2511.17673 | Сгенерировано: 2026-01-11 20:19

Методы

МетодСуть
Явная фаза проверки правилРаздели промпт на два шага: (1) модель рассуждает и предлагает действие, (2) модель проверяет — соблюдены ли правила из начала промпта. Шаблон: РАССУЖДЕНИЕ: [что делать?] ПРОВЕРКА: [есть ли нарушения правил? если да — вернись к рассуждению] ДЕЙСТВИЕ: [выполни]. Почему работает: Когда модель одновременно рассуждает И проверяет себя — правила из начала промпта размываются. Отдельный шаг проверки заставляет модель перечитать ограничения перед действием. Когда применять: задачи с жёсткими ограничениями (бюджет, запреты, последовательность действий). Когда не работает: простые задачи без условий — лишние токены

Тезисы

ТезисКомментарий
Разделение функций уменьшает нарушение правилКогда модель делает всё в одном потоке (думает + проверяет + действует), правила из начала промпта забываются к моменту действия. Отдельная фаза "проверка правил" перед каждым действием возвращает фокус на ограничения. В экспериментах это дало ноль нарушений там, где слитный промпт давал 15-25% ошибок. Применяй: Для задач с условиями добавь явный шаг: "Проверь: соблюдены ли все правила? Если нет — вернись к рассуждению"
📖 Простыми словами

Structured Cognitive Loop: разделяй и властвуй над LLM-агентом

arXiv: 2511.17673

Современные LLM-агенты часто тупят, потому что пытаются делать всё одновременно: и правила помнить, и данные анализировать, и план составлять. Это фундаментальный баг нейросетей — в длинном контексте они теряют фокус и «забывают» инструкции, которые ты дал им в самом начале. Метод Structured Cognitive Loop (SCL) решает это через жесткое разделение труда. Вместо того чтобы вываливать на модель кучу задач одним комом, процесс разбивается на пять изолированных фаз: сбор инфы, рассуждение, проверка, действие и память. Это превращает хаотичный поток мыслей нейронки в четкий алгоритм, где каждый шаг контролируется отдельно.

Это как если бы ты нанял на работу не одного универсального сотрудника, который постоянно косячит от перегруза, а целую команду с жестким регламентом. Один собирает документы, второй пишет план, а третий — самый занудный — стоит над душой и бьет по рукам, если план нарушает инструкции. Формально модель всё еще одна, но благодаря Soft Symbolic Control, она заперта в рамки правил, которые проверяются перед каждым чихом. Это исключает ситуацию, когда агент вроде бы всё понял, но в итоге выдал какую-то дичь, просто потому что «засмотрелся» на последние строчки диалога.

В основе системы лежит цикл CCAM, который работает как часы. Сначала идет Cognition (рассуждение), затем включается Control — это критически важный фильтр, который сверяет план с правилами из метапромпта. Если проверка пройдена, совершается Action (действие), а результат падает в Memory. Например, если маркетологу-агенту запрещено брать блогеров дороже 500к при низкой вовлеченности, модуль контроля просто не даст ему нажать кнопку «купить», даже если нейронка в фазе рассуждения вдруг решила, что «ну, этот парень вроде симпатичный».

Хотя метод тестировали на задачах вроде выбора блогеров или планирования, принцип универсален. Его можно натянуть на любую сложную цепочку: от написания кода до юридического анализа. Главная фишка здесь в том, что мы перестаем надеяться на «магию» больших моделей и начинаем управлять ими через структурированные циклы. Это переход от концепции «просто спроси чат-бота» к созданию надежных автономных систем, которые не галлюцинируют на ровном месте. Архитектура важнее размера модели, и этот подход доказывает, что даже средняя LLM под строгим надзором работает лучше, чем топовая, предоставленная самой себе.

Короче: хватит просить нейронку «сделать всё красиво» одним промптом — это путь к провалу и случайным ошибкам. Нужно внедрять SCL, разделять логику и контроль, и заставлять модель проверять себя на каждом шаге. Пять фаз, жесткий контроль, внешняя память — только так можно получить результат, за который не будет стыдно. Кто продолжит кормить агентов «простынями» текста без структуры, будет вечно гадать, почему их AI-помощник опять всё перепутал.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с