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

Нейроскилл 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Список всех записанных сессий за все дни
searchANN-поиск по сходству для нейронно похожих исторических моментов
compareA/B сравнение сессий с дельтами показателей и анализом трендов
sleep [N]Классификация стадий сна (Бодрствование/N1/N2/N3/REM) с анализом
label "текст"Создание аннотации с временной меткой в текущий момент
search-labels "запрос"Семантический векторный поиск по прошлым меткам
interactive "запрос"Кросс-модальный 4-слойный графовый поиск (текст → ЭКГ → метки)
listenПотоковая передача событий в реальном времени (по умолчанию 5 с, установите --seconds N)
umap3D 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 &lt;минуты&gt; для настройки.


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: npxNode.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 "прорыв"

→ Подтвердите сохранение метки. Опционально отметьте текущие показатели, чтобы запомнить состояние.


Ссылки​