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 | Список всех записанных сессий за все дни |
search | ANN-поиск нейронно схожих исторических моментов |
compare | A/B-сравнение сессий с дельтами метрик и трендовым анализом |
sleep [N] | Классификация стадий сна (Wake/N1/N2/N3/REM) с анализом |
label "text" | Создаёт аннотацию с временной меткой в текущий момент |
search-labels "query" | Семантический поиск по истории меток через векторные эмбеддинги |
interactive "query" | Кросс-модальный 4-слойный граф-поиск (text → EXG → labels) |
listen | Стриминг событий в реальном времени (по умолчанию 5 с, задаётся через --seconds N) |
umap | 3D 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: npx | Node.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"
→ Подтвердите сохранение метки. По желанию — зафиксируйте текущие метрики для запоминания состояния.
Ссылки
- NeuroSkill Paper — arXiv:2603.03212 (Kosmyna & Hauptmann, MIT Media Lab)
- NeuroSkill Desktop App (GPLv3)
- NeuroLoop CLI Companion (GPLv3)
- MIT Media Lab Project