Plugin guides
Plugin журнала событий
Plugin Logbook превращает активность на экране в автоматический рабочий журнал. Он периодически делает снимки экрана с сопряжённого Node, преобразует их в наблюдения с временными метками и формирует карточки временной шкалы в Control UI. Он также может создавать заметки для ежедневного стендапа и отвечать на вопросы об отслеживаемом дне.
Состояние, принадлежащее OpenClaw, остаётся на Gateway в <state-dir>/logbook/, однако
обработка моделями не обязательно выполняется локально. Отобранные снимки экрана отправляются
по настроенному маршруту модели компьютерного зрения, а наблюдения и текст временной шкалы — стандартной
модели агента. Используйте локальные маршруты моделей для обоих этапов, если содержимое экрана и
производный текст об активности должны оставаться на компьютере.
Logbook входит в комплект поставки и по умолчанию отключён. Включение Plugin разрешает
Gateway захватывать экран, поскольку значение captureEnabled по умолчанию равно true.
Перед началом
Вам потребуются:
- Подключённый Node, предоставляющий
screen.snapshotилиlogbook.snapshot. Для Node приложения macOS требуется разрешение Screen Recording. Безголовый хост Node macOS (openclaw node host run) получает предоставляемую Plugin командуlogbook.snapshot, использующую системный инструментscreencapture. - Включённый и аутентифицированный встроенный Plugin Codex. В настоящее время Codex предоставляет
контракт структурированного извлечения данных из изображений, необходимый Logbook. Войдите с помощью
openclaw models auth login --provider openai; другие способы аутентификации см. в разделе Среда выполнения Codex. - Рабочая стандартная модель агента. Logbook использует её после обработки изображений для создания карточек, заметок для стендапа и ответов на вопросы о дне.
Быстрый старт
Включите плагины Codex и Logbook:
openclaw plugins enable codexopenclaw plugins enable logbookНастройте явную модель компьютерного зрения для детерминированного запуска:
{ plugins: { entries: { codex: { enabled: true, }, logbook: { enabled: true, config: { visionModel: "codex/gpt-5.6-sol", }, }, }, },}Если вы используете plugins.allow, включите в него codex и logbook. Перезапустите
Gateway после изменения конфигурации Plugin, затем проверьте регистрации
и откройте панель управления:
openclaw gateway restartopenclaw plugins inspect logbook --runtime --jsonopenclaw nodes status --connectedopenclaw nodes describe --node <idOrNameOrIp>openclaw dashboardОписание Node должно содержать screen.snapshot или logbook.snapshot.
Безголовые Node объявляют logbook.snapshot только после активации Plugin.
Если команда отсутствует, см. Устранение неполадок Node.
Вкладка Logbook отображается только при включённом Plugin и сеансе Control UI с областью
operator.write. В строке состояния должно отображаться Захват выполняется без ошибки.
Карточка временной шкалы появляется после закрытия окна анализа; также после захвата активности
можно выбрать Анализировать сейчас.
Принцип работы
- Захват: каждые
captureIntervalSeconds(по умолчанию 30 с) Logbook вызывает команду захвата выбранного Node и сохраняет масштабированный кадр JPEG. Последовательные одинаковые кадры помечаются как простой и исключаются из анализа. - Наблюдение: после завершения окна анализа (по умолчанию 15 минут) Plugin выбирает до 16 активных кадров и отправляет их модели компьютерного зрения, которая возвращает наблюдения об активности с временными метками («VS Code: редактирование store.ts, исправление ошибки типа»). Разрыв в захвате более двух минут или наступление полуночи по местному времени также закрывает текущее окно.
- Синтез: наблюдения вместе с существующими карточками за последние 45 минут преобразуются в карточки временной шкалы (по 10–60 минут каждая) с заголовком, сводкой, категорией, основным приложением и сведениями о кратковременных отвлечениях.
- Очистка: кадры старше
retentionDays(по умолчанию 14) удаляются. Карточки, наблюдения и кэшированные стендапы сохраняются.
Границы дней и время на временной шкале определяются по локальному часовому поясу Gateway, а не
браузера. Кадры и база данных временной шкалы SQLite хранятся в
<state-dir>/logbook/.
Модели и поток данных
Logbook использует два отдельных маршрута моделей:
| Этап | Отправляемые данные | Маршрут модели |
|---|---|---|
| Наблюдение | До 16 выбранных кадров JPEG и время их захвата | visionModel или совместимая заимствованная запись Codex tools.media |
| Создание карточек | Наблюдения с временными метками и последние карточки временной шкалы | Стандартная модель агента через среду выполнения LLM Plugin |
| Создание стендапа | Карточки за выбранный и предыдущий дни | Стандартная модель агента через среду выполнения LLM Plugin |
| Вопрос о дне | Вопрос, карточки выбранного дня и последние наблюдения | Стандартная модель агента через среду выполнения LLM Plugin |
Полная база данных SQLite не отправляется ни одной из моделей. Необработанные снимки экрана передаются только на этап наблюдения; для синтеза карточек, стендапа и вопросов и ответов используется производный текст.
Конфигурация
{ plugins: { entries: { codex: { enabled: true, }, logbook: { enabled: true, config: { captureEnabled: true, captureIntervalSeconds: 30, analysisIntervalMinutes: 15, nodeId: "my-mac", screenIndex: 0, maxWidth: 1440, visionModel: "codex/gpt-5.6-sol", retentionDays: 14, }, }, }, },}Все ключи конфигурации Logbook необязательны. Числовые значения округляются до целых и ограничиваются поддерживаемым диапазоном.
| Ключ | По умолчанию | Диапазон или значения | Поведение |
|---|---|---|---|
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
Другие медиапровайдеры пропускаются, поскольку в настоящее время они не предоставляют
контракт структурированного извлечения данных, необходимый 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полностью отключает захват экрана: блокируется как захват с Node приложения, так и собственная команда Logbooklogbook.snapshot. - Параметр
tools.media.image.enabled: falseтакже запрещает Logbook заимствовать медиамодели изображений для анализа; в этом случае используется только явно заданныйvisionModelв конфигурации Plugin.
Устранение неполадок
Вкладка Logbook отсутствует
Проверьте все три условия:
- Вывод
openclaw plugins list --enabledсодержитlogbook. - Gateway был перезапущен после изменения Plugin или списка разрешённых Plugin.
- Подключение Control UI имеет область
operator.write; сеансы только для чтения не получают дескриптор интерактивной вкладки.
Если задан параметр plugins.allow, для рекомендуемой конфигурации в него необходимо включить как logbook, так и codex.
При захвате возникает ошибка
openclaw nodes status --connectedopenclaw nodes describe --node <idOrNameOrIp>openclaw logs --follow- Убедитесь, что Node предоставляет
screen.snapshotилиlogbook.snapshot. - Предоставьте разрешение Screen Recording на Mac, где выполняется захват.
- Если настроен
nodeId, убедитесь, что он совпадает с идентификатором или отображаемым именем Node. - Убедитесь, что
gateway.nodes.denyCommandsне содержитscreen.snapshot.
После трёх последовательных сбоев Logbook приостанавливает работу на десять тактов захвата, а затем повторяет попытку. Конфигурация без закрепления может переключиться на другой подходящий Node.
Захват выполняется успешно, но карточки не появляются
- Статус Модель отсутствует означает, что совместимый маршрут структурированного компьютерного зрения не найден. Включите Plugin Codex и выполните аутентификацию либо задайте допустимое явное значение
visionModel. Захваченные кадры остаются в ожидании, пока модель отсутствует, и могут быть проанализированы после исправления конфигурации. - Дождитесь истечения
analysisIntervalMinutesили выберите Анализировать сейчас после захвата активности. - Последовательные одинаковые кадры считаются свидетельством бездействия и не включаются в пакеты анализа. Перед тестированием измените содержимое видимой области экрана.
- Если в последнем пакете отображается ошибка, устраните проблему с моделью или аутентификацией и выберите Анализировать сейчас. Чтобы избежать повторных расходов на модель, обработка неудачных пакетов повторяется только после этого явного действия.