Перейти к основному содержанию
Плагин Logbook превращает активность на экране в автоматический рабочий журнал. Он периодически делает снимки экрана с сопряжённого Node, преобразует их в наблюдения с временными метками и создаёт карточки хронологии в интерфейсе управления. Он также может создавать заметки для ежедневного стендапа и отвечать на вопросы об отслеживаемом дне. Состояние, принадлежащее OpenClaw, хранится в Gateway в <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, затем проверьте регистрации и откройте панель управления:
Описание Node должно содержать screen.snapshot или logbook.snapshot. Node без графического интерфейса объявляют logbook.snapshot только после активации плагина. Если команда отсутствует, см. Устранение неполадок Node. Вкладка Logbook отображается только при включённом плагине и сеансе Control UI с operator.write. В строке состояния должно отображаться Захват выполняется без ошибки. Карточка хронологии появляется после закрытия окна анализа; также после захвата активности можно выбрать Анализировать сейчас.

Принцип работы

  1. Захват: каждые captureIntervalSeconds (по умолчанию 30 с) Logbook вызывает команду захвата выбранного Node и сохраняет масштабированный кадр JPEG. Последовательные идентичные кадры помечаются как неактивные и исключаются из анализа.
  2. Наблюдение: по истечении окна анализа (по умолчанию 15 минут) плагин выбирает до 16 активных кадров и отправляет их модели компьютерного зрения, которая возвращает наблюдения за активностью с временными метками («VS Code: редактирование store.ts, исправление ошибки типа»). Перерыв в захвате длительностью более двух минут или наступление местной полуночи также закрывает текущее окно.
  3. Синтез: наблюдения вместе с существующими карточками за последние 45 минут преобразуются в обновлённые карточки хронологии (каждая длительностью 10–60 минут) с заголовком, сводкой, категорией, основным приложением и краткими отвлечениями.
  4. Очистка: кадры старше retentionDays (по умолчанию 14) удаляются. Карточки, наблюдения и кэшированные стендапы сохраняются.
Границы дней и время в хронологии определяются по локальному часовому поясу Gateway, а не браузера. Кадры и база данных хронологии SQLite хранятся в <state-dir>/logbook/.

Модели и поток данных

Logbook использует два отдельных маршрута моделей:
ЭтапОтправляемые данныеМаршрут модели
НаблюдениеДо 16 выбранных кадров JPEG и время их захватаvisionModel или совместимая заимствованная запись Codex tools.media
Создание карточекНаблюдения с временными метками и последние карточки хронологииМодель агента по умолчанию через среду выполнения LLM плагина
Создание стендапаКарточки за выбранный и предыдущий дниМодель агента по умолчанию через среду выполнения LLM плагина
Вопросы о днеВопрос, карточки за выбранный день и последние наблюденияМодель агента по умолчанию через среду выполнения LLM плагина
Полная база данных SQLite не отправляется ни одной из моделей. Необработанные снимки экрана поступают только на этап наблюдения; создание карточек, стендапа и ответы на вопросы получают производный текст.

Конфигурация

Все ключи конфигурации Logbook необязательны. Числовые значения округляются до целых и ограничиваются поддерживаемым диапазоном.
КлючПо умолчаниюДиапазон или значенияПоведение
captureEnabledtrueлогическое значениеПостоянный главный переключатель новых снимков; при false хронология остаётся доступной
captureIntervalSeconds305-600Задержка между попытками захвата
analysisIntervalMinutes153-120Целевое окно наблюдения; перерывы и полночь могут закрыть его раньше
nodeIdне заданоидентификатор или отображаемое имя NodeЗакрепляет захват за одним подключённым Node; сопоставление выполняется без учёта регистра
screenIndex00-16Индекс дисплея с отсчётом от нуля
maxWidth1440480-3840Запрашиваемое ограничение размера захвата; на macOS без графического интерфейса применяется к наибольшему измерению
visionModelне заданоprovider/modelЯвный структурированный маршрут; некорректные ссылки приостанавливают анализ, неподдерживаемые поставщики приводят к сбою пакетов
retentionDays141-365Удаляет старые кадры; карточки, наблюдения и стендапы сохраняются
Если nodeId не задан, Logbook предпочитает подключённый Node приложения, предоставляющий screen.snapshot, а затем использует резервный Node без графического интерфейса, предоставляющий logbook.snapshot. Если Node не закреплён, после сбоя он перемещается в очереди за другими подходящими Node. Переключатель паузы на панели управления действует только в рамках сеанса и сбрасывается при перезапуске Gateway; для постоянной остановки используйте captureEnabled: false.

Выбор модели компьютерного зрения

Logbook выбирает модель наблюдения в следующем порядке:
  1. plugins.entries.logbook.config.visionModel
  2. первая запись Codex с поддержкой изображений в tools.media.image.models
  3. первая запись Codex с поддержкой изображений в tools.media.models
Другие поставщики мультимедийных моделей пропускаются, поскольку в настоящее время они не предоставляют контракт структурированного извлечения, необходимый Logbook. Значение 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.snapshot Logbook.
  • Установка tools.media.image.enabled: false также запрещает Logbook использовать модели изображений для анализа медиаданных; в этом случае используется только явно заданный visionModel в конфигурации плагина.

Устранение неполадок

Вкладка Logbook отсутствует

Проверьте все три условия:
  1. openclaw plugins list --enabled содержит logbook.
  2. Gateway был перезапущен после изменения плагина или списка разрешений.
  3. Подключение Control UI имеет operator.write; сеансы только для чтения не получают дескриптор интерактивной вкладки.
Если задан plugins.allow, для рекомендуемой конфигурации он должен содержать как logbook, так и codex.

При захвате возникает ошибка

  • Убедитесь, что узел предоставляет screen.snapshot или logbook.snapshot.
  • Предоставьте разрешение Screen Recording на компьютере Mac, выполняющем захват.
  • Если настроен nodeId, убедитесь, что он совпадает с идентификатором или отображаемым именем узла.
  • Убедитесь, что gateway.nodes.denyCommands не содержит screen.snapshot.
После трёх последовательных сбоев Logbook приостанавливает работу на десять тактов захвата, а затем повторяет попытку. Конфигурация без закреплённого узла может переключиться на другой подходящий узел.

Захват выполняется успешно, но карточки не появляются

  • Статус Модель отсутствует означает, что совместимый маршрут структурированной модели компьютерного зрения не найден. Включите и аутентифицируйте плагин Codex либо задайте допустимый явный visionModel. Пока модель отсутствует, захваченные кадры остаются в ожидании и могут быть проанализированы после исправления конфигурации.
  • Дождитесь analysisIntervalMinutes или выберите Анализировать сейчас после того, как активность будет зафиксирована.
  • Последовательные одинаковые кадры считаются признаком бездействия и не включаются в пакеты анализа. Перед тестированием измените видимое содержимое экрана.
  • Если последний пакет содержит ошибку, устраните проблему с моделью или аутентификацией и выберите Анализировать сейчас. Неудачные пакеты повторно обрабатываются только после этого явного действия, чтобы избежать повторных расходов на модель.

Связанные материалы