Продолжение. Начало: Математика против хаоса
От 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
Мы не нашли ни одного решения, которое:
- Внешнее — не встроено в агент, а наблюдается сбоку через lifecycle hooks
- Не LLM — чистая математика: счётчики, EMA, FSM. Ноль вызовов модели
- В реальном времени — внутри жизненного цикла агента, не после
- Вмешивает, не блокирует — впрыскивает reflection в контекст, агент сам решает остановиться
- Логирует траекторию — для последующей валидации эффективности вмешательства
- Универсальное — работает с любым агентом, у которого есть 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 — модуль экосистемы Вивекша.