<state-dir>/logbook/, но
обработка моделями не обязательно выполняется локально. Выбранные снимки экрана отправляются
в настроенный маршрут модели компьютерного зрения; наблюдения и текст хронологии — в модель агента
по умолчанию. Используйте локальные маршруты моделей для обоих этапов, если содержимое экрана и
производный текст об активности должны оставаться на компьютере.
Logbook входит в комплект поставки и по умолчанию отключён. Включение плагина разрешает
Gateway захватывать экран, поскольку captureEnabled по умолчанию имеет значение true.
Перед началом работы
Вам потребуются:- Подключённый Node, предоставляющий
screen.snapshotилиlogbook.snapshot. Для Node приложения macOS требуется разрешение Screen Recording. На узле macOS без графического интерфейса (openclaw node host run) становится доступна предоставляемая плагином командаlogbook.snapshot, использующая системный инструментscreencapture. - Включённый и аутентифицированный встроенный плагин Codex. В настоящее время Codex предоставляет
контракт структурированного извлечения данных из изображений, необходимый Logbook. Выполните вход с помощью
openclaw models auth login --provider openai; другие способы аутентификации описаны в разделе Среда выполнения Codex. - Рабочая модель агента по умолчанию. Logbook использует её после обработки моделью компьютерного зрения для создания карточек, заметок для стендапа и ответов на вопросы о дне.
Быстрый старт
Включите плагины Codex и Logbook:plugins.allow, укажите как codex, так и logbook. После изменения
конфигурации плагина перезапустите Gateway, затем проверьте регистрации
и откройте панель управления:
screen.snapshot или logbook.snapshot.
Node без графического интерфейса объявляют logbook.snapshot только после активации плагина.
Если команда отсутствует, см. Устранение неполадок Node.
Вкладка Logbook отображается только при включённом плагине и сеансе Control UI с operator.write.
В строке состояния должно отображаться Захват выполняется без ошибки.
Карточка хронологии появляется после закрытия окна анализа; также после захвата активности можно выбрать
Анализировать сейчас.
Принцип работы
- Захват: каждые
captureIntervalSeconds(по умолчанию 30 с) Logbook вызывает команду захвата выбранного Node и сохраняет масштабированный кадр JPEG. Последовательные идентичные кадры помечаются как неактивные и исключаются из анализа. - Наблюдение: по истечении окна анализа (по умолчанию 15 минут) плагин выбирает до 16 активных кадров и отправляет их модели компьютерного зрения, которая возвращает наблюдения за активностью с временными метками («VS Code: редактирование store.ts, исправление ошибки типа»). Перерыв в захвате длительностью более двух минут или наступление местной полуночи также закрывает текущее окно.
- Синтез: наблюдения вместе с существующими карточками за последние 45 минут преобразуются в обновлённые карточки хронологии (каждая длительностью 10–60 минут) с заголовком, сводкой, категорией, основным приложением и краткими отвлечениями.
- Очистка: кадры старше
retentionDays(по умолчанию 14) удаляются. Карточки, наблюдения и кэшированные стендапы сохраняются.
<state-dir>/logbook/.
Модели и поток данных
Logbook использует два отдельных маршрута моделей:| Этап | Отправляемые данные | Маршрут модели |
|---|---|---|
| Наблюдение | До 16 выбранных кадров JPEG и время их захвата | visionModel или совместимая заимствованная запись Codex tools.media |
| Создание карточек | Наблюдения с временными метками и последние карточки хронологии | Модель агента по умолчанию через среду выполнения LLM плагина |
| Создание стендапа | Карточки за выбранный и предыдущий дни | Модель агента по умолчанию через среду выполнения LLM плагина |
| Вопросы о дне | Вопрос, карточки за выбранный день и последние наблюдения | Модель агента по умолчанию через среду выполнения LLM плагина |
Конфигурация
| Ключ | По умолчанию | Диапазон или значения | Поведение |
|---|---|---|---|
captureEnabled | true | логическое значение | Постоянный главный переключатель новых снимков; при false хронология остаётся доступной |
captureIntervalSeconds | 30 | 5-600 | Задержка между попытками захвата |
analysisIntervalMinutes | 15 | 3-120 | Целевое окно наблюдения; перерывы и полночь могут закрыть его раньше |
nodeId | не задано | идентификатор или отображаемое имя Node | Закрепляет захват за одним подключённым Node; сопоставление выполняется без учёта регистра |
screenIndex | 0 | 0-16 | Индекс дисплея с отсчётом от нуля |
maxWidth | 1440 | 480-3840 | Запрашиваемое ограничение размера захвата; на macOS без графического интерфейса применяется к наибольшему измерению |
visionModel | не задано | provider/model | Явный структурированный маршрут; некорректные ссылки приостанавливают анализ, неподдерживаемые поставщики приводят к сбою пакетов |
retentionDays | 14 | 1-365 | Удаляет старые кадры; карточки, наблюдения и стендапы сохраняются |
nodeId не задан, Logbook предпочитает подключённый Node приложения, предоставляющий
screen.snapshot, а затем использует резервный Node без графического интерфейса, предоставляющий
logbook.snapshot. Если Node не закреплён, после сбоя он перемещается в очереди за другими
подходящими Node. Переключатель паузы на панели управления действует только в рамках сеанса и сбрасывается при
перезапуске Gateway; для постоянной остановки используйте captureEnabled: false.
Выбор модели компьютерного зрения
Logbook выбирает модель наблюдения в следующем порядке:plugins.entries.logbook.config.visionModel- первая запись Codex с поддержкой изображений в
tools.media.image.models - первая запись Codex с поддержкой изображений в
tools.media.models
tools.media.image.enabled: false отключает заимствованные настройки мультимедийных моделей по умолчанию, но
явно заданный для Logbook visionModel продолжает действовать.
Вкладка панели управления
- Хронология: разворачиваемые карточки для каждого вида активности с цветами категорий, основным приложением, метками отвлечений и ключевым снимком.
- Обзор дня: доля сосредоточенной работы, распределение по категориям, основные приложения.
- Ежедневный стендап: преобразует данные за вчера и сегодня в готовое для вставки обновление.
- Вопросы о дне: ответы на вопросы на естественном языке на основе отслеживаемой хронологии («когда я проверял PR для gateway?»).
- Анализировать сейчас: немедленно закрывает текущее окно захвата вместо ожидания интервала анализа.
Методы Gateway
Logbook регистрирует следующие RPC-методы Gateway:| Метод | Параметры | Область действия | Результат |
|---|---|---|---|
logbook.status | нет | operator.read | Состояние захвата, анализа, модели, Node, дня и часового пояса Gateway |
logbook.days | нет | operator.read | Дни с количеством карточек хронологии и временными границами карточек |
logbook.timeline | { day?: "YYYY-MM-DD" } | operator.read | Производные карточки и статистика дня; по умолчанию — текущий день Gateway |
logbook.frames | { startMs, endMs } | operator.write | Метаданные кадров в запрошенном диапазоне времени в миллисекундах с начала эпохи |
logbook.frame | { frameId } | operator.write | Один необработанный кадр JPEG в формате base64 |
logbook.standup | { day?, refresh? } | operator.write | Кэшированный или повторно созданный текст стендапа за день |
logbook.ask | { day?, question } | operator.write | Ответ за день, основанный на данных хронологии |
logbook.capture.set | { paused } | operator.write | Состояние паузы только для текущего сеанса и обновлённый статус |
logbook.analyze.now | нет | operator.write | Запускает ожидающий анализ или возвращает причину невозможности запуска |
operator.write. Для вкладки Control UI также требуется operator.write, поскольку она
предоставляет эти действия и предварительный просмотр необработанных кадров; клиент только для чтения всё равно может напрямую вызывать
методы производного текста.
Примечания о конфиденциальности
- Снимки могут содержать всё, что отображается на экране, включая секреты. Кадры никогда не покидают компьютер, кроме случаев, когда они передаются в качестве выборочных входных данных настроенной модели наблюдения.
- Наблюдения, недавние карточки и вопросы могут покидать компьютер через модель агента по умолчанию во время синтеза карточек, формирования сводки или ответов на вопросы. Применяйте политику обработки данных провайдера к обоим маршрутам моделей.
- Используйте локальные маршруты как для структурированной модели наблюдения, так и для модели агента по умолчанию, если требуется полностью локальный конвейер.
- Кадры, база данных временной шкалы и временные снимки записываются с правами доступа только для владельца.
- Добавление
screen.snapshotвgateway.nodes.denyCommandsслужит аварийным выключателем захвата экрана: оно блокирует как захват узлом приложения, так и собственную командуlogbook.snapshotLogbook. - Установка
tools.media.image.enabled: falseтакже запрещает Logbook использовать модели изображений для анализа медиаданных; в этом случае используется только явно заданныйvisionModelв конфигурации плагина.
Устранение неполадок
Вкладка Logbook отсутствует
Проверьте все три условия:openclaw plugins list --enabledсодержитlogbook.- Gateway был перезапущен после изменения плагина или списка разрешений.
- Подключение Control UI имеет
operator.write; сеансы только для чтения не получают дескриптор интерактивной вкладки.
plugins.allow, для рекомендуемой конфигурации он должен содержать
как logbook, так и codex.
При захвате возникает ошибка
- Убедитесь, что узел предоставляет
screen.snapshotилиlogbook.snapshot. - Предоставьте разрешение Screen Recording на компьютере Mac, выполняющем захват.
- Если настроен
nodeId, убедитесь, что он совпадает с идентификатором или отображаемым именем узла. - Убедитесь, что
gateway.nodes.denyCommandsне содержитscreen.snapshot.
Захват выполняется успешно, но карточки не появляются
- Статус Модель отсутствует означает, что совместимый маршрут структурированной модели компьютерного зрения
не найден. Включите и аутентифицируйте плагин Codex либо задайте допустимый явный
visionModel. Пока модель отсутствует, захваченные кадры остаются в ожидании и могут быть проанализированы после исправления конфигурации. - Дождитесь
analysisIntervalMinutesили выберите Анализировать сейчас после того, как активность будет зафиксирована. - Последовательные одинаковые кадры считаются признаком бездействия и не включаются в пакеты анализа. Перед тестированием измените видимое содержимое экрана.
- Если последний пакет содержит ошибку, устраните проблему с моделью или аутентификацией и выберите Анализировать сейчас. Неудачные пакеты повторно обрабатываются только после этого явного действия, чтобы избежать повторных расходов на модель.