Neuroskill Bci

Подключается к работающему экземпляру NeuroSkill и передаёт агенту данные о когнитивном и эмоциональном состоянии пользователя в реальном времени: фокус, расслабление, настроение, когнитивная нагрузка, сонливость, ЧСС, ВСР, стадии сна и 40+ производных EXG-показателей. Требуется BCI-гарнитура (Muse 2/S или OpenBCI) и локально запущенное десктопное приложение NeuroSkill.

Метаданные навыка

ИсточникОпциональный (устанавливается по запросу) — hermes skills install official/health/neuroskill-bci
Путьoptional-skills/health/neuroskill-bci
Версия1.0.0
АвторHermes Agent + Nous Research
ЛицензияMIT
Платформыlinux, macos, windows
ТегиBCI, neurofeedback, health, focus, EEG, cognitive-state, biometrics, neuroskill

Справочник: полный SKILL.md

инфо

Ниже — полное определение навыка, которое Hermes Agent загружает при его активации. Именно это агент видит в качестве инструкций, когда навык включён.

NeuroSkill BCI Integration

Подключает Hermes к работающему экземпляру NeuroSkill для считывания метрик мозга и тела с BCI-гарнитуры в реальном времени. Используйте для когнитивно-адаптивных ответов, подбора интервенций и отслеживания умственной продуктивности.

⚠️ Только для исследовательских целей — NeuroSkill является инструментом с открытым исходным кодом для исследований. Это НЕ медицинское устройство, и оно НЕ сертифицировано FDA, CE или иными регуляторными органами. Эти метрики нельзя применять для клинической диагностики или лечения.

Полный справочник метрик — в references/metrics.md, протоколы интервенций — в references/protocols.md, WebSocket/HTTP API — в references/api.md.


Требования

  • Node.js 20+ установлен (node --version)
  • Десктопное приложение NeuroSkill запущено и подключено к BCI-устройству
  • BCI-оборудование: Muse 2, Muse S или OpenBCI (4-канальный EEG + PPG + IMU через BLE)
  • npx neuroskill status возвращает данные без ошибок

Проверка настройки

node --version                    # Must be 20+
npx neuroskill status             # Full system snapshot
npx neuroskill status --json      # Machine-parseable JSON

Если npx neuroskill status возвращает ошибку, сообщите пользователю:

  • Убедитесь, что десктопное приложение NeuroSkill открыто
  • Убедитесь, что BCI-устройство включено и подключено через Bluetooth
  • Проверьте качество сигнала — зелёные индикаторы в NeuroSkill (≥0.7 на электрод)
  • Если command not found — установите Node.js 20+

CLI Reference: npx neuroskill <command>

Все команды поддерживают --json (чистый JSON, пригоден для пайпов) и --full (текстовое резюме + JSON).

КомандаОписание
statusПолный снимок системы: устройство, показатели, полосы, соотношения, сон, история
session [N]Разбор одной сессии с трендами первой/второй половины (0=последняя)
sessionsСписок всех записанных сессий за все дни
searchANN-поиск нейронно схожих исторических моментов
compareA/B-сравнение сессий с дельтами метрик и трендовым анализом
sleep [N]Классификация стадий сна (Wake/N1/N2/N3/REM) с анализом
label "text"Создаёт аннотацию с временной меткой в текущий момент
search-labels "query"Семантический поиск по истории меток через векторные эмбеддинги
interactive "query"Кросс-модальный 4-слойный граф-поиск (text → EXG → labels)
listenСтриминг событий в реальном времени (по умолчанию 5 с, задаётся через --seconds N)
umap3D UMAP-проекция эмбеддингов сессий
calibrateОткрывает окно калибровки и запускает профиль
timerЗапускает таймер фокуса (пресеты: Pomodoro/Deep Work/Short Focus)
notify "title" "body"Отправляет OS-уведомление через приложение NeuroSkill
raw '{json}'Прямая передача сырого JSON на сервер

Глобальные флаги

ФлагОписание
--jsonВывод в чистом JSON (без ANSI, пригоден для пайпов)
--fullТекстовое резюме + цветной JSON
--port <N>Переопределить порт сервера (по умолчанию: автообнаружение, обычно 8375)
--wsПринудительно использовать WebSocket
--httpПринудительно использовать HTTP
--k <N>Количество ближайших соседей (search, search-labels)
--seconds <N>Продолжительность для listen (по умолчанию: 5)
--trendsПоказывать тренды метрик по сессиям (sessions)
--dotВывод в формате Graphviz DOT (interactive)

1. Проверка текущего состояния

Получение живых метрик

npx neuroskill status --json

Всегда используйте --json для надёжного парсинга. Вывод по умолчанию — цветной текст, рассчитанный на человека.

Ключевые поля в ответе

Объект scores содержит все live-метрики (шкала 0–1, если не указано иное):

{
  "scores": {
    "focus": 0.70,           // β / (α + θ) — sustained attention
    "relaxation": 0.40,      // α / (β + θ) — calm wakefulness
    "engagement": 0.60,      // active mental investment
    "meditation": 0.52,      // alpha + stillness + HRV coherence
    "mood": 0.55,            // composite from FAA, TAR, BAR
    "cognitive_load": 0.33,  // frontal θ / temporal α · f(FAA, TBR)
    "drowsiness": 0.10,      // TAR + TBR + falling spectral centroid
    "hr": 68.2,              // heart rate in bpm (from PPG)
    "snr": 14.3,             // signal-to-noise ratio in dB
    "stillness": 0.88,       // 0–1; 1 = perfectly still
    "faa": 0.042,            // Frontal Alpha Asymmetry (+ = approach)
    "tar": 0.56,             // Theta/Alpha Ratio
    "bar": 0.53,             // Beta/Alpha Ratio
    "tbr": 1.06,             // Theta/Beta Ratio (ADHD proxy)
    "apf": 10.1,             // Alpha Peak Frequency in Hz
    "coherence": 0.614,      // inter-hemispheric coherence
    "bands": {
      "rel_delta": 0.28, "rel_theta": 0.18,
      "rel_alpha": 0.32, "rel_beta": 0.17, "rel_gamma": 0.05
    }
  }
}

Ответ также содержит: device (состояние, заряд, прошивка), signal_quality (0–1 на электрод), session (длительность, эпохи), embeddings, labels, резюме по сну sleep и history.

Интерпретация данных

Разбирайте JSON и переводите метрики в естественный язык. Голые числа без объяснений ничего не говорят — каждому нужен контекст:

ПРАВИЛЬНО:

«Фокус сейчас устойчивый — 0.70, это уже территория потокового состояния. Пульс ровный, 68 уд/мин, FAA положительный — мотивация к действию включена. Хорошее время для чего-то сложного.»

НЕПРАВИЛЬНО:

«Focus: 0.70, Relaxation: 0.40, HR: 68»

Пороговые значения для интерпретации (полный гид — в references/metrics.md):

  • Focus > 0.70 → зона потокового состояния, не мешайте
  • Focus < 0.40 → предложите перерыв или протокол
  • Drowsiness > 0.60 → предупреждение об усталости, риск микросна
  • Relaxation < 0.30 → нужна интервенция против стресса
  • Cognitive Load > 0.70 sustained → разгрузка памяти или перерыв
  • TBR > 1.5 → тета-доминирование, снижение исполнительного контроля
  • FAA < 0 → состояние отстранённости/негативного аффекта — рассмотрите FAA-балансировку
  • SNR < 3 dB → ненадёжный сигнал, предложите репозиционировать электроды

2. Анализ сессий

Разбор отдельной сессии

npx neuroskill session --json         # most recent session
npx neuroskill session 1 --json       # previous session
npx neuroskill session 0 --json | jq '{focus: .metrics.focus, trend: .trends.focus}'

Возвращает полные метрики с трендами первой и второй половины ("up", "down", "flat"). Используйте, чтобы описать динамику сессии:

«Фокус начинался с 0.64 и к концу вырос до 0.76 — явный восходящий тренд. Когнитивная нагрузка упала с 0.38 до 0.28: задача становилась всё более автоматической по мере погружения.»

Список всех сессий

npx neuroskill sessions --json
npx neuroskill sessions --trends      # show per-session metric trends

3. Поиск по истории

Поиск нейронно схожих моментов

npx neuroskill search --json                    # auto: last session, k=5
npx neuroskill search --k 10 --json             # 10 nearest neighbors
npx neuroskill search --start <UTC> --end <UTC> --json

Находит в истории моменты, нейронно схожие с текущим состоянием: используется HNSW-алгоритм приближённого поиска ближайших соседей по 128-мерным ZUNA-эмбеддингам. Возвращает статистику расстояний, временное распределение (час суток) и самые частые совпадающие дни.

Применяйте, когда пользователь спрашивает:

  • “When was I last in a state like this?”
  • “Find my best focus sessions”
  • “When do I usually crash in the afternoon?”

Семантический поиск по меткам

npx neuroskill search-labels "deep focus" --k 10 --json
npx neuroskill search-labels "stress" --json | jq '[.results[].EXG_metrics.tbr]'

Ищет по тексту меток через векторные эмбеддинги (Xenova/bge-small-en-v1.5). Возвращает совпадающие метки с EXG-метриками на момент разметки.

Кросс-модальный граф-поиск

npx neuroskill interactive "deep focus" --json
npx neuroskill interactive "deep focus" --dot | dot -Tsvg > graph.svg

4-слойный граф: запрос → текстовые метки → EXG-точки → соседние метки. Параметры настройки: --k-text, --k-EXG, --reach <minutes>.


4. Сравнение сессий

npx neuroskill compare --json                   # auto: last 2 sessions
npx neuroskill compare --a-start <UTC> --a-end <UTC> --b-start <UTC> --b-end <UTC> --json

Возвращает дельты ~50 метрик: абсолютное изменение, процент и направление. Дополнительно — массивы insights.improved[] и insights.declined[], стадии сна для обеих сессий и ID задачи UMAP.

Интерпретируйте сравнения с контекстом — говорите о трендах, а не только о дельтах:

«Вчера было два сильных блока фокуса — в 10 утра и в 14:00. Сегодня один, с 11 утра, и он ещё продолжается. Общий уровень вовлечённости выше, зато больше скачков стресса: индекс стресса вырос на 15%, FAA чаще уходил в минус.»

# Sort metrics by improvement percentage
npx neuroskill compare --json | jq '.insights.deltas | to_entries | sort_by(.value.pct) | reverse'

5. Данные о сне

npx neuroskill sleep --json                     # last 24 hours
npx neuroskill sleep 0 --json                   # most recent sleep session
npx neuroskill sleep --start <UTC> --end <UTC> --json

Возвращает поэпоховую разметку сна (окна по 5 секунд) и анализ:

  • Коды стадий: 0=Wake, 1=N1, 2=N2, 3=N3 (глубокий), 4=REM
  • Анализ: efficiency_pct, onset_latency_min, rem_latency_min, bout counts
  • Целевые показатели: N3 15–25%, REM 20–25%, эффективность >85%, латентность засыпания <20 мин
npx neuroskill sleep --json | jq '.summary | {n3: .n3_epochs, rem: .rem_epochs}'
npx neuroskill sleep --json | jq '.analysis.efficiency_pct'

Используйте, когда пользователь упоминает сон, усталость или восстановление.


6. Разметка моментов

npx neuroskill label "breakthrough"
npx neuroskill label "studying algorithms"
npx neuroskill label "post-meditation"
npx neuroskill label --json "focus block start"   # returns label_id

Автоматически фиксируйте момент, если:

  • Пользователь сообщает о прорыве или инсайте
  • Пользователь переключается на новый тип задачи (например, «перехожу к код-ревью»)
  • Пользователь завершил значимый протокол
  • Пользователь просит зафиксировать текущий момент
  • Произошёл заметный переход состояния (вход в поток / выход из него)

Метки хранятся в базе данных и индексируются для последующего поиска через search-labels и interactive.


7. Стриминг в реальном времени

npx neuroskill listen --seconds 30 --json
npx neuroskill listen --seconds 5 --json | jq '[.[] | select(.event == "scores")]'

Передаёт живые WebSocket-события (EXG, PPG, IMU, scores, labels) в течение заданного времени. Требует WebSocket-соединения (не работает с --http).

Применяйте для непрерывного мониторинга или наблюдения за изменением метрик в ходе протокола.


8. UMAP-визуализация

npx neuroskill umap --json                      # auto: last 2 sessions
npx neuroskill umap --a-start <UTC> --a-end <UTC> --b-start <UTC> --b-end <UTC> --json

GPU-ускоренная 3D UMAP-проекция ZUNA-эмбеддингов. separation_score показывает, насколько нейронно различны две сессии:

  • > 1.5 → сессии нейронно различны (разные состояния мозга)
  • < 0.5 → схожие состояния мозга в обеих сессиях

9. Проактивное отслеживание состояния

Проверка в начале сессии

В начале сессии опционально запустите проверку статуса, если пользователь упоминает, что надел устройство, или интересуется своим состоянием:

npx neuroskill status --json

Дайте краткое резюме:

«Быстрая проверка: фокус набирает силу — 0.62, расслабление хорошее — 0.55, FAA положительный, мотивация включена. Выглядит как хороший старт.»

Когда упоминать когнитивное состояние

Сообщайте о состоянии только если:

  • Пользователь прямо спрашивает («How am I doing?», «Check my focus»)
  • Пользователь жалуется на трудности с концентрацией, стресс или усталость
  • Пересечён критический порог (drowsiness > 0.70, focus < 0.30 sustained)
  • Пользователь собирается выполнить когнитивно нагруженную задачу и запрашивает оценку готовности

Не прерывайте потоковое состояние ради отчёта о метриках. Если focus > 0.75 — берегите сессию: молчание здесь правильная реакция.


10. Предложение протоколов

Когда метрики сигнализируют о необходимости, предложите протокол из references/protocols.md. Всегда спрашивайте разрешения — не прерывайте потоковое состояние:

«Фокус снижается последние 15 минут, TBR перевалил за 1.5 — признаки тета-доминирования и умственной усталости. Показать Theta-Beta Neurofeedback Anchor? Это 90-секундное упражнение: ритмичный счёт и дыхание, чтобы подавить тету и поднять бету.»

Триггеры для интервенций:

  • Focus < 0.40, TBR > 1.5 → Theta-Beta Neurofeedback Anchor или Box Breathing
  • Relaxation < 0.30, stress_index high → Cardiac Coherence или 4-7-8 Breathing
  • Cognitive Load > 0.70 sustained → Cognitive Load Offload (разгрузка памяти)
  • Drowsiness > 0.60 → Ultradian Reset или Wake Reset
  • FAA < 0 (negative) → FAA Rebalancing
  • Flow State (focus > 0.75, engagement > 0.70) → не прерывать
  • High stillness + headache_index → Neck Release Sequence
  • Low RMSSD (< 25ms) → Vagal Toning

11. Дополнительные инструменты

Таймер фокуса

npx neuroskill timer --json

Запускает окно таймера фокуса с пресетами Pomodoro (25/5), Deep Work (50/10) и Short Focus (15/5).

Калибровка

npx neuroskill calibrate
npx neuroskill calibrate --profile "Eyes Open"

Открывает окно калибровки. Полезно при плохом качестве сигнала или когда нужно установить персональный базовый уровень.

OS-уведомления

npx neuroskill notify "Break Time" "Your focus has been declining for 20 minutes"

Прямая передача сырого JSON

npx neuroskill raw '{"command":"status"}' --json

Для любой серверной команды, для которой пока нет отдельной CLI-подкоманды.


Обработка ошибок

ОшибкаВероятная причинаРешение
npx neuroskill status зависаетПриложение NeuroSkill не запущеноОткройте десктопное приложение NeuroSkill
device.state: "disconnected"BCI-устройство не подключеноПроверьте Bluetooth и заряд устройства
Все показатели возвращают 0Плохой контакт электродовПереложите гарнитуру, увлажните электроды
Значения signal_quality < 0.7Ненадёжное крепление электродовОтрегулируйте посадку, очистите контакты
SNR < 3 dBЗашумлённый сигналМинимизируйте движения головы, проверьте окружение
command not found: npxNode.js не установленУстановите Node.js 20+

Примеры взаимодействий

“How am I doing right now?”

npx neuroskill status --json

→ Интерпретируйте показатели естественным языком: фокус, расслабление, настроение, заметные соотношения (FAA, TBR). Предложите действие только если метрики указывают на необходимость.

“I can’t concentrate”

npx neuroskill status --json

→ Проверьте, подтверждают ли это метрики (высокая тета, низкая бета, растущий TBR, высокая сонливость). → Если подтверждается — предложите подходящий протокол из references/protocols.md. → Если метрики в норме — проблема, скорее всего, мотивационная, а не нейрологическая.

“Compare my focus today vs yesterday”

npx neuroskill compare --json

→ Интерпретируйте тренды, а не просто числа. Упомяните, что улучшилось, что упало и возможные причины.

“When was I last in a flow state?”

npx neuroskill search-labels "flow" --json
npx neuroskill search --json

→ Сообщите временные метки, сопутствующие метрики и чем занимался пользователь (из меток).

“How did I sleep?”

npx neuroskill sleep --json

→ Разберите архитектуру сна (N3%, REM%, эффективность), сравните с целевыми показателями, отметьте проблемы (много Wake-эпох, мало REM).

“Mark this moment — I just had a breakthrough”

npx neuroskill label "breakthrough"

→ Подтвердите сохранение метки. По желанию — зафиксируйте текущие метрики для запоминания состояния.


Ссылки

ESC