Продолжение. Начало: Математика против хаоса

От watchdog к метакогнитивному слою

В первой части мы рассказали про DE-Monitor — внешний watchdog для ИИ-агентов, который считал когнитивное состояние агента в реальном времени и впрыскивал стоп-сигнал, когда агент начинал деградировать. Семь осей поведения, health score, стоп-сигнал в контекст. Это работало.

Но это было начало.

Watchdog отвечает на вопрос «что случилось?». Он детектит деградацию. Он говорит: стоп, ты спамишь инструменты, остановись и доложи. Но он не отвечает на вопрос «почему?» и не отслеживает когнитивный процесс агента как последовательность состояний.

Агент не просто деградирует мгновенно. Он проходит через стадии. Сначала всё хорошо — он работает над задачей. Потом начинает отклоняться. Потом застревает. Потом деградирует. Это не бинарный переключатель, это траектория.

И если мы хотим не просто ловить деградацию, а понимать когнитивный процесс агента — нам нужен другой уровень. Не watchdog. Метакогнитивный слой.

Мы назвали это DE-Cogneti.

Что такое метакогниция (и почему это не LLM)

Метакогниция — это «мышление о мышлении». В когнитивной науке это Nelson-Narens framework: модель, где есть монитор (следит за когнитивным процессом) и контроллер (вмешивается, когда что-то не так). Человек делает это естественно — вы замечаете, что отвлеклись, и возвращаетесь к задаче. Вы чувствуете, что застряли, и меняете подход.

LLM-агенты не делают этого. Не потому что не могут, а потому что у них нет встроенного механизма метакогниции. LLM генерирует следующий токен на основе контекста — и всё. Он не «замечает», что ходит кругами. Не «чувствует», что потерял цель. Он просто делает следующее действие.

Можно ли научить LLM метакогниции? Да — есть работы вроде Reflexion (Shinn, 2023), где Actor + Evaluator + Self-Reflector дают 91% pass@1. Но Evaluator там — тоже LLM. И тут возникает фундаментальная проблема.

Принцип, который мы назвали «Governor must not be LLM-sovereign»: монитор на базе LLM — это ещё один LLM, который может деградировать. Вы посадили пациента следить за пациентом. Если монитор — LLM, кто мониторит монитор? Рекурсия. Бесконечный регресс.

Поэтому метакогнитивный слой DE-Cogneti — это не LLM. Это математика. Счётчики. Формулы. Экспоненциальные скользящие средние. Конечный автомат состояний. Ноль вызовов модели. Ноль embeddings. Ноль секунд на вычисление.

Как устроен DE-Cogneti v0.2

Когнитивный конечный автомат

Агент находится в одном из пяти когнитивных состояний в каждый момент времени:

Состояние Что значит Переход
FOCUSED Агент работает над задачей, всё нормально → DEVIATING при первых признаках отклонения
DEVIATING Агент начинает отклоняться от задачи → STUCK или → FOCUSED (восстановился сам)
STUCK Агент застрял, повторяет действия → DEGRADED если не выбрался
DEGRADED Деградация: спам инструментами, потеря цели → CRITICAL если продолжает
CRITICAL Полная потеря контроля, нужна интервенция → FOCUSED после reflection injection

Это конечный автомат (FSM). Переходы считаются по метрикам, не по LLM-оценке. Health score, паттерны поведения, история — всё это числа, которые обновляются на каждом хуке жизненного цикла агента.

Семь осей, health score, reflection

DE-Cogneti унаследовал семь осей от DE-Monitor: tool_spam, rule_violation, loop_risk, token_burn, scope_creep, context_switch, approval_bypass. Каждая считается через счётчики из lifecycle hooks — без LLM, без embeddings, без cosine similarity.

Health score — формула: GPV×0.3 + entropy×0.2 + loop×0.2 + effort×0.3. GPV — Goal Progress Velocity, среднее изменение ключевых осей. Энтропия — распределение оценок. Loop risk — повторы стратегии. Effort trend — растёт, стабилен, падает.

Когда health падает ниже порога, DE-Cogneti не блокирует агента. Он впрыскивает reflection прямо в контекст:

You are repeating the same tool call with identical parameters. This is unproductive. Stop, reassess your approach, and try a different strategy.

Агент читает это и реагирует — потому что LLM реагирует на текст в контексте. Это не блокировка. Это метакогнитивное вмешательство. Монитор говорит агенту: ты деградируешь, вот почему, остановись и подумай.

Trajectory logging

Каждый шаг агента записывается в JSONL-траекторию: session_start, cognitive_state на каждом ходу, паттерны, метрики, cleanup. Это не для мониторинга в реальном времени — это для валидации. Мы хотим доказать, что вмешательство работает.

Главное, чего нет у других

Мы изучили всё, что есть в мире на эту тему. Вот ландшафт на август 2026:

Есть: постфактум оценка

Evaluation frameworks (AgentBench, SWE-bench, MAST) оценивают сессию после завершения. Токены потрачены, отчёт говорит «плохо». Полезно. Слишком поздно.

Есть: guardrails и фильтры

OpenAI SafetyKit, Anthropic guardrails, YecoAI Cognitive Layer — сидят между агентом и пользователем, фильтруют вывод. Агент продолжает деградировать, вы просто не видите результат. YecoAI детектит лупы, амнезию, семантический дрифт — но мониторит вывод LLM, а не поведение агента в lifecycle. И блокирует, не вмешивает.

Есть: cognitive load managers

CLM (Cognitive Load Manager) — ближе всего к нам по концепции. Четыре сигнала: branching, repetition, uncertainty, goal drift. Score 0-100, зоны green/amber/red. Но: использует embeddings (модель!), веса — «informed heuristics, not empirically validated». Мониторит вывод, а не lifecycle hooks. Нет reflection injection.

Есть: one-class behavioral monitors

Trajectory Sentinel (arxiv 2608.02464) — ESN + CUSUM, ~200μs/step, one-class мониторинг на здоровых запусках. Серьёзная работа, 2,823 эпизода. Но: тренируется на healthy runs, требует per-deployment калибровку, детектит onset, не вмешивает. Ремонт — rollback к последнему шагу, не метакогнитивная интервенция.

Есть: стандартизация

QSAF (Qorvex Security AI Framework) — формализует Cognitive Degradation как класс уязвимостей. Шесть стадий деградации, семь runtime controls. Важная работа. Но: это фреймворк-стандарт, не реализация. Нет кода.

Есть: когнитивные runtime

Cortex (402 stars) — когнитивный runtime с metacognition, memory, plugins. Но: это агентский харнес, не внешний монитор. Metacognition встроена в агент, а не внешний слой. Принцип «Governor must not be LLM-sovereign» нарушен — монитор и агент — одно целое.

Чего нет: внешний метакогнитивный слой на чистой математике с reflection injection

Мы не нашли ни одного решения, которое:

  1. Внешнее — не встроено в агент, а наблюдается сбоку через lifecycle hooks
  2. Не LLM — чистая математика: счётчики, EMA, FSM. Ноль вызовов модели
  3. В реальном времени — внутри жизненного цикла агента, не после
  4. Вмешивает, не блокирует — впрыскивает reflection в контекст, агент сам решает остановиться
  5. Логирует траекторию — для последующей валидации эффективности вмешательства
  6. Универсальное — работает с любым агентом, у которого есть lifecycle hooks (OpenCode, OpenClaw, дальше — любой)

DE-Cogneti — единственное решение, которое делает все шесть вещей одновременно.

Если вы знаете аналог — напишите нам. Мы серьёзно. Мы хотим знать.

Тест на живом агенте

DE-Cogneti v0.2 протестирован как плагин к OpenCode 1.18 — агенту, который пишет код на Qwen3.6-27B. Тест прошёл. Плагин грузится, FSM работает, метрики считаются, trajectory пишется, cleanup отрабатывает.

Три бага плагин-лоадинга найдены и исправлены по ходу — мелочи вроде имени конфиг-файла и формата экспорта. Это не интересно. Интересно другое: плагин работал, агент не замечал его присутствие, и когда DE-Cogneti впрыскивал reflection — агент реагировал.

Это и есть главный тезис. LLM реагирует на текст в контексте. Reflection — это текст. Но это текст, который говорит: ты деградируешь, вот почему, остановись и подумай. И агент останавливается. Не потому что его заблокировали — а потому что LLM не может игнорировать осмысленный текст в контексте.

Что дальше

Калибровка

DE-Monitor v0.1 был откалиброван на 109 реальных сессиях с 8,862 вызовами инструментов. DE-Cogneti v0.2 нужно то же самое: 10-20 реальных coding-задач, сбор trajectory-логов, настройка порогов детекторов по реальным данным. Измерить: tokens saved, false reflections, stagnation caught.

Валидация

Главный вопрос: работает ли? Для каждого срабатывания детектора нужно измерить цепочку:

detector fired → reflection injected → agent changed strategy? → outcome improved?

Это не «детектор сработал». Это «детектор сработал — агент прочитал reflection — агент изменил подход — результат стал лучше». Четыре звена. Каждое нужно доказать.

Если мы докажем эту цепочку — мы докажем, что внешний метакогнитивный слой на математике меняет поведение агента к лучшему. Без LLM-монитора. Без embeddings. Без блокировки. Просто математика и текст.

Универсальный runtime

OpenCode — первый адаптер. OpenClaw — следующий (профиль orchestrator, GLM 5.2). Потом — любой агент с lifecycle hooks.

DE-Cogneti задуман как внешний метакогнитивный runtime для любого автономного агента. Не встроенный монитор, не плагин к конкретной платформе, а слой, который ложится поверх любого агента и следит за его когнитивным здоровьем.

Математика универсальна. Счётчики не зависят от платформы. FSM не зависит от модели. Reflection injection работает с любым LLM. Trajectory logging — единый формат.

Вивекша

DE-Cogneti начался как модуль экосистемы Вивекша — когнитивный движок, который отслеживал поведение клиентов в диалоге. 11 осей, EMA, health score. Потом мы заметили, что агент деградирует так же, как клиент. Взяли движок, адаптировали 7 осей вместо 11, назвали DE-Monitor. Потом поняли, что watchdog — это только начало, и построили метакогнитивный слой.

Конечная цель — вернуть DE-Cogneti в Вивекшу как новый Dialogue Engine. Круг замкнётся: движок, который следил за клиентами, будет следить за агентом, который ведёт диалог с клиентом.

Открытый код

DE-Cogneti опубликован под лицензией Apache 2.0:

github.com/logoserg-cmd/de-cogneti

В репозитории:

  • Рабочий плагин для OpenCode 1.18 (V1 адаптер)
  • V2 адаптер для будущего OpenCode V2
  • Архитектурный документ (ARCHITECTURE.md)
  • RFC-003 — главный документ
  • Trajectory логи, конфиги, калибровочные данные

Release v0.2.0: https://github.com/logoserg-cmd/de-cogneti/releases/tag/v0.2.0


Авторы: Сергей & Fox. License: Apache 2.0. DE-Cogneti — модуль экосистемы Вивекша.