Нейроскилл BCI
Подключитесь к работающему экземпляру NeuroSkill и используйте когнитивное и эмоциональное состояние пользователя в реальном времени (фокус, расслабление, настроение, когнитивная нагрузка, сонливость, частота сердечных сокращений, ВСР, стадии сна и более 40 производных показателей ЭКГ) в ответах. Требуется носимый BCI-девайс (Muse 2/S или OpenBCI) и локально запущенное десктопное приложение NeuroSkill.
Метаданные навыка
| Источник | Опционально — установка через vibeos skills install official/health/neuroskill-bci |
| Путь | optional-skills/health/neuroskill-bci |
| Версия | 1.0.0 |
| Автор | VibeOS + Nous Research |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | BCI, нейрофидбек, здоровье, фокус, ЭЭГ, когнитивное-состояние, биометрия, нейроскилл |
Справочник: полный SKILL.md
Ниже приведено полное определение навыка, которое VibeOS загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
Интеграция NeuroSkill BCI
Подключите VibeOS к работающему экземпляру NeuroSkill для чтения показателей мозга и тела в реальном времени с BCI-девайса. Используйте это для когнитивно-осознанных ответов, предложения вмешательств и отслеживания умственной производительности с течением времени.
⚠️ Только для исследований — NeuroSkill — это инструмент с открытым исходным кодом для исследований. Он НЕ является медицинским устройством и НЕ был одобрен FDA, CE или любым другим регулирующим органом. Никогда не используйте эти показатели для клинической диагностики или лечения.
См. references/metrics.md для полного справочника по показателям, references/protocols.md для протоколов вмешательств и references/api.md для WebSocket/HTTP API.
Предварительные требования
- Node.js 20+ установлен (
node --version) - Десктопное приложение NeuroSkill запущено с подключенным BCI-устройством
- BCI-оборудование: Muse 2, Muse S или OpenBCI (4-канальная ЭЭГ + ФПГ + ИДУ через BLE)
npx neuroskill statusвозвращает данные без ошибок
Проверка настройки
node --version # Должно быть 20+
npx neuroskill status # Полный снимок системы
npx neuroskill status --json # Машиночитаемый JSON
Если npx neuroskill status возвращает ошибку, сообщите пользователю:
- Убедитесь, что десктопное приложение NeuroSkill открыто
- Убедитесь, что BCI-устройство включено и подключено через Bluetooth
- Проверьте качество сигнала — зеленые индикаторы в NeuroSkill (≥0.7 на электрод)
- Если
command not found, установите Node.js 20+
Справочник CLI: npx neuroskill <команда>
Все команды поддерживают --json (сырой JSON, безопасный для конвейера) и --full (человекочитаемая сводка + JSON).
| Команда | Описание |
|---|---|
status | Полный снимок системы: устройство, оценки, диапазоны, соотношения, сон, история |
session [N] | Разбор одной сессии с трендами первой/второй половины (0 = самая последняя) |
sessions | Список всех записанных сессий за все дни |
search | ANN-поиск по сходству для нейронно похожих исторических моментов |
compare | A/B сравнение сессий с дельтами показателей и анализом трендов |
sleep [N] | Классификация стадий сна (Бодрствование/N1/N2/N3/REM) с анализом |
label "текст" | Создание аннотации с временной меткой в текущий момент |
search-labels "запрос" | Семантический векторный поиск по прошлым меткам |
interactive "запрос" | Кросс-модальный 4-слойный графовый поиск (текст → ЭКГ → метки) |
listen | Потоковая передача событий в реальном времени (по умолчанию 5 с, установите --seconds N) |
umap | 3D UMAP-проекция эмбеддингов сессии |
calibrate | Открыть окно калибровки и запустить профиль |
timer | Запустить таймер фокуса (предустановки Pomodoro/Deep Work/Short Focus) |
notify "заголовок" "тело" | Отправить уведомление ОС через приложение 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 содержит все живые показатели (шкала 0–1, если не указано иное):
{
"scores": {
"focus": 0.70, // β / (α + θ) — устойчивое внимание
"relaxation": 0.40, // α / (β + θ) — спокойное бодрствование
"engagement": 0.60, // активная умственная вовлеченность
"meditation": 0.52, // альфа + неподвижность + когерентность ВСР
"mood": 0.55, // композит из FAA, TAR, BAR
"cognitive_load": 0.33, // фронтальная θ / височная α · f(FAA, TBR)
"drowsiness": 0.10, // TAR + TBR + падающий спектральный центроид
"hr": 68.2, // частота сердечных сокращений в уд/мин (из ФПГ)
"snr": 14.3, // отношение сигнал/шум в дБ
"stillness": 0.88, // 0–1; 1 = полная неподвижность
"faa": 0.042, // Фронтальная альфа-асимметрия (+ = подход)
"tar": 0.56, // Соотношение Тета/Альфа
"bar": 0.53, // Соотношение Бета/Альфа
"tbr": 1.06, // Соотношение Тета/Бета (прокси СДВГ)
"apf": 10.1, // Пиковая частота альфа в Гц
"coherence": 0.614, // Межполушарная когерентность
"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 положителен, что предполагает хорошую мотивацию приближения. Отличное время для решения сложной задачи.»
НЕПРАВИЛЬНО:
«Фокус: 0,70, Расслабление: 0,40, ЧСС: 68»
Ключевые пороги интерпретации (см. references/metrics.md для полного руководства):
- Фокус > 0,70 → территория состояния потока, защитите его
- Фокус < 0,40 → предложите перерыв или протокол
- Сонливость > 0,60 → предупреждение об усталости, риск микросна
- Расслабление < 0,30 → необходимо вмешательство при стрессе
- Когнитивная нагрузка > 0,70 устойчиво → выгрузка мыслей или перерыв
- TBR > 1,5 → тета-доминирование, сниженный исполнительный контроль
- FAA < 0 → отстранение/негативный аффект — рассмотрите ребалансировку FAA
- SNR < 3 дБ → ненадежный сигнал, предложите перепозиционировать электроды
2. Анализ сессии
Разбор одной сессии
npx neuroskill session --json # самая последняя сессия
npx neuroskill session 1 --json # предыдущая сессия
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 # показать тренды показателей по сессиям
3. Исторический поиск
Поиск по нейронному сходству
npx neuroskill search --json # авто: последняя сессия, k=5
npx neuroskill search --k 10 --json # 10 ближайших соседей
npx neuroskill search --start <UTC> --end <UTC> --json
Находит моменты в истории, которые нейронно похожи, используя HNSW-поиск приблизительных ближайших соседей по 128-мерным эмбеддингам ZUNA. Возвращает статистику расстояний, временное распределение (час дня) и лучшие совпадающие дни.
Используйте это, когда пользователь спрашивает:
- «Когда я в последний раз был в таком состоянии?»
- «Найди мои лучшие сессии фокуса»
- «Когда я обычно сдаюсь во второй половине дня?»
Семантический поиск по меткам
npx neuroskill search-labels "глубокий фокус" --k 10 --json
npx neuroskill search-labels "стресс" --json | jq '[.results[].EXG_metrics.tbr]'
Ищет текст меток, используя векторные эмбеддинги (Xenova/bge-small-en-v1.5). Возвращает совпадающие метки с их связанными показателями ЭКГ на момент маркировки.
Кросс-модальный графовый поиск
npx neuroskill interactive "глубокий фокус" --json
npx neuroskill interactive "глубокий фокус" --dot | dot -Tsvg > graph.svg
4-слойный граф: запрос → текстовые метки → точки ЭКГ → близлежащие метки. Используйте --k-text,
--k-EXG, --reach <минуты> для настройки.
4. Сравнение сессий
npx neuroskill compare --json # авто: последние 2 сессии
npx neuroskill compare --a-start <UTC> --a-end <UTC> --b-start <UTC> --b-end <UTC> --json
Возвращает дельты показателей с абсолютным изменением, процентным изменением и направлением для
~50 показателей. Также включает массивы insights.improved[] и insights.declined[],
классификацию стадий сна для обеих сессий и ID задания UMAP.
Интерпретируйте сравнения с контекстом — упоминайте тренды, а не только дельты:
«Вчера у вас было два сильных блока фокуса (10:00 и 14:00). Сегодня у вас был один, начавшийся около 11:00, который все еще продолжается. Ваша общая вовлеченность сегодня выше, но было больше всплесков стресса — ваш индекс стресса вырос на 15%, а FAA чаще уходил в минус.»
# Сортировка показателей по проценту улучшения
npx neuroskill compare --json | jq '.insights.deltas | to_entries | sort_by(.value.pct) | reverse'
5. Данные о сне
npx neuroskill sleep --json # последние 24 часа
npx neuroskill sleep 0 --json # самая последняя сессия сна
npx neuroskill sleep --start <UTC> --end <UTC> --json
Возвращает постадийную классификацию сна (окна по 5 секунд) с анализом:
- Коды стадий: 0=Бодрствование, 1=N1, 2=N2, 3=N3 (глубокий), 4=REM
- Анализ: efficiency_pct, onset_latency_min, rem_latency_min, количество эпизодов
- Здоровые цели: 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 "прорыв"
npx neuroskill label "изучение алгоритмов"
npx neuroskill label "после медитации"
npx neuroskill label --json "начало блока фокуса" # возвращает label_id
Автоматически маркируйте моменты, когда:
- Пользователь сообщает о прорыве или инсайте
- Пользователь начинает новый тип задачи (например, «переключаюсь на ревью кода»)
- Пользователь завершает значимый протокол
- Пользователь просит вас отметить текущий момент
- Происходит заметный переход состояния (вход/выход из потока)
Метки хранятся в базе данных и индексируются для последующего извлечения с помощью команд search-labels
и interactive.
7. Потоковая передача в реальном времени
npx neuroskill listen --seconds 30 --json
npx neuroskill listen --seconds 5 --json | jq '[.[] | select(.event == "scores")]'
Передает живые события WebSocket (ЭКГ, ФПГ, ИДУ, оценки, метки) в течение указанной
длительности. Требуется WebSocket-соединение (недоступно с --http).
Используйте это для сценариев непрерывного мониторинга или для наблюдения за изменениями показателей в реальном времени во время протокола.
8. Визуализация UMAP
npx neuroskill umap --json # авто: последние 2 сессии
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 положителен — мотивация приближения задействована. Похоже на хорошее начало.»
Когда проактивно упоминать состояние
Упоминайте когнитивное состояние только когда:
- Пользователь явно спрашивает («Как у меня дела?», «Проверь мой фокус»)
- Пользователь сообщает о трудностях с концентрацией, стрессе или усталости
- Превышен критический порог (сонливость > 0,70, фокус < 0,30 устойчиво)
- Пользователь собирается сделать что-то когнитивно требовательное и спрашивает о готовности
НЕ прерывайте состояние потока, чтобы сообщить показатели. Если фокус > 0,75, защитите сессию — молчание является правильным ответом.
10. Предложение протоколов
Когда показатели указывают на необходимость, предложите протокол из references/protocols.md.
Всегда спрашивайте перед началом — никогда не прерывайте состояние потока:
«Ваш фокус снижается последние 15 минут, а TBR поднимается выше 1,5 — признаки тета-доминирования и умственной усталости. Хотите, я проведу вас через Тета-Бета нейрофидбек-якорь? Это 90-секундное упражнение, которое использует ритмичный счет и дыхание для подавления тета и подъема бета.»
Ключевые триггеры:
- Фокус < 0,40, TBR > 1,5 → Тета-Бета нейрофидбек-якорь или Квадратное дыхание
- Расслабление < 0,30, stress_index высокий → Кардиальная когерентность или Дыхание 4-7-8
- Когнитивная нагрузка > 0,70 устойчиво → Выгрузка когнитивной нагрузки (дамп мыслей)
- Сонливость > 0,60 → Ультрадианный сброс или Сброс бодрствования
- FAA < 0 (отрицательный) → Ребалансировка FAA
- Состояние потока (фокус > 0,75, вовлеченность > 0,70) → НЕ прерывать
- Высокая неподвижность + headache_index → Последовательность расслабления шеи
- Низкий RMSSD (< 25 мс) → Тонизация блуждающего нерва
11. Дополнительные инструменты
Таймер фокуса
npx neuroskill timer --json
Запускает окно таймера фокуса с предустановками Pomodoro (25/5), Deep Work (50/10) или Short Focus (15/5).
Калибровка
npx neuroskill calibrate
npx neuroskill calibrate --profile "Открытые глаза"
Открывает окно калибровки. Полезно, когда качество сигнала плохое или пользователь хочет установить персонализированный базовый уровень.
Уведомления ОС
npx neuroskill notify "Время перерыва" "Ваш фокус снижается уже 20 минут"
Сырой 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 дБ | Шумный сигнал | Минимизируйте движения головы, проверьте окружение |
command not found: npx | Node.js не установлен | Установите Node.js 20+ |
Примеры взаимодействий
«Как у меня дела прямо сейчас?»
npx neuroskill status --json
→ Естественно интерпретируйте оценки, упоминая фокус, расслабление, настроение и любые заметные соотношения (FAA, TBR). Предложите действие, только если показатели указывают на необходимость.
«Я не могу сосредоточиться»
npx neuroskill status --json
→ Проверьте, подтверждают ли это показатели (высокая тета, низкая бета, растущий TBR, высокая сонливость).
→ Если подтверждено, предложите соответствующий протокол из references/protocols.md.
→ Если показатели в порядке, проблема может быть мотивационной, а не неврологической.
«Сравни мой фокус сегодня и вчера»
npx neuroskill compare --json
→ Интерпретируйте тренды, а не только числа. Упомяните, что улучшилось, что ухудшилось и возможные причины.
«Когда я в последний раз был в состоянии потока?»
npx neuroskill search-labels "поток" --json
npx neuroskill search --json
→ Сообщите временные метки, связанные показатели и чем занимался пользователь (из меток).
«Как я спал?»
npx neuroskill sleep --json
→ Сообщите архитектуру сна (N3%, REM%, эффективность), сравните со здоровыми целями и отметьте любые проблемы (много эпох бодрствования, низкий REM).
«Отметь этот момент — у меня только что был прорыв»
npx neuroskill label "прорыв"
→ Подтвердите сохранение метки. Опционально отметьте текущие показатели, чтобы запомнить состояние.
Ссылки
- Статья NeuroSkill — arXiv:2603.03212 (Kosmyna & Hauptmann, MIT Media Lab)
- Десктопное приложение NeuroSkill (GPLv3)
- CLI-компаньон NeuroLoop (GPLv3)
- Проект MIT Media Lab