Plugin guides
Plugin журналу подій
Plugin Logbook перетворює активність на екрані на автоматичний робочий журнал. Він періодично створює знімки екрана зі спареного вузла, узагальнює їх у спостереження з часовими позначками та формує картки часової шкали в інтерфейсі керування. Він також може створювати нотатки для щоденного стендапу й відповідати на запитання про відстежуваний день.
Стан, яким керує OpenClaw, зберігається в Gateway у <state-dir>/logbook/, але
обробка моделями не обов’язково відбувається локально. Вибрані знімки екрана надсилаються
налаштованим маршрутом моделі зору; спостереження та текст часової шкали надсилаються стандартній
моделі агента. Використовуйте локальні маршрути моделей для обох етапів, якщо вміст екрана та
похідний текст про активність мають залишатися на машині.
Logbook постачається в комплекті та за замовчуванням вимкнений. Увімкнення Plugin
дозволяє Gateway захоплювати екран, оскільки captureEnabled за замовчуванням має значення true.
Перед початком
Вам потрібні:
- Підключений вузол, який надає
screen.snapshotабоlogbook.snapshot. Вузлу застосунку macOS потрібен дозвіл Screen Recording. Безголовий хост вузла macOS (openclaw node host run) отримує надану Plugin командуlogbook.snapshot, що використовує системний інструментscreencapture. - Увімкнений та автентифікований вбудований Plugin Codex. Наразі Codex надає
контракт структурованого вилучення даних із зображень, потрібний Logbook. Увійдіть за допомогою
openclaw models auth login --provider openai; інші способи автентифікації дивіться в обв’язці Codex. - Працездатна стандартна модель агента. Logbook використовує її для синтезу карток, нотаток стендапу та запитань і відповідей щодо дня після проходу моделі зору.
Швидкий старт
Увімкніть Plugin 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. Після
зміни конфігурації Plugin перезапустіть Gateway, а потім перевірте реєстрації
та відкрийте панель керування:
openclaw gateway restartopenclaw plugins inspect logbook --runtime --jsonopenclaw nodes status --connectedopenclaw nodes describe --node <idOrNameOrIp>openclaw dashboardОпис вузла має містити screen.snapshot або logbook.snapshot.
Безголові вузли оголошують logbook.snapshot лише після активації Plugin.
Якщо команда відсутня, дивіться усунення несправностей вузлів.
Вкладка Logbook з’являється лише для увімкненого Plugin і сеансу інтерфейсу керування з
operator.write. У рядку стану має відображатися Захоплення без помилки.
Картка часової шкали з’являється після закриття вікна аналізу, або після захоплення
активності можна вибрати Аналізувати зараз.
Як це працює
- Захоплення: кожні
captureIntervalSeconds(за замовчуванням 30 с) Logbook викликає команду захоплення вибраного вузла та зберігає масштабований кадр 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 |
не задано | ідентифікатор або відображуване ім’я вузла | Закріплює захоплення за одним підключеним вузлом; зіставлення не залежить від регістру |
screenIndex |
0 |
0–16 |
Індекс дисплея, починаючи з нуля |
maxWidth |
1440 |
480–3840 |
Запитане обмеження розміру захоплення; у безголовій macOS застосовується до найбільшого виміру |
visionModel |
не задано | provider/model |
Явний структурований маршрут; некоректні посилання призупиняють аналіз, непідтримувані постачальники спричиняють помилку пакетів |
retentionDays |
14 |
1–365 |
Видаляє старі кадри; картки, спостереження та стендапи зберігаються |
Без nodeId Logbook віддає перевагу підключеному вузлу застосунку, що надає
screen.snapshot, а потім переходить до безголового вузла, що надає
logbook.snapshot. У конфігурації без закріплення вузол, на якому сталася помилка, переміщується за інші
придатні вузли. Перемикач призупинення на панелі керування діє лише протягом сеансу та скидається після
перезапуску Gateway; для постійної зупинки використовуйте captureEnabled: false.
Вибір моделі зору
Logbook визначає модель спостереження в такому порядку:
plugins.entries.logbook.config.visionModel- перший запис Codex із підтримкою зображень у
tools.media.image.models - перший запис Codex із підтримкою зображень у
tools.media.models
Інші постачальники медіа пропускаються, оскільки наразі вони не надають
контракт структурованого вилучення, потрібний Logbook. Установлення
tools.media.image.enabled: false вимикає запозичені стандартні моделі медіа, але
явна модель visionModel Logbook продовжує застосовуватися.
Вкладка панелі керування
- Часова шкала: розгортані картки для кожної активності з кольорами категорій, основним застосунком, мітками відволікань і ключовим кадром знімка.
- День одним поглядом: частка зосередженої роботи, розподіл за категоріями, найуживаніші застосунки.
- Щоденний стендап: перетворює вчорашні та сьогоднішні дані на готове для вставлення оновлення.
- Запитання про день: запитання природною мовою, відповіді на які формуються з відстежуваної часової шкали («коли я переглядав PR для Gateway?»).
- Аналізувати зараз: негайно закриває поточне вікно захоплення замість очікування інтервалу аналізу.
Методи Gateway
Logbook реєструє такі RPC-методи Gateway:
| Метод | Параметри | Область дії | Результат |
|---|---|---|---|
logbook.status |
немає | operator.read |
Стан захоплення, аналізу, моделі, вузла, дня Gateway і часового поясу 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. Вкладка інтерфейсу керування також потребує operator.write, оскільки
надає ці дії та попередній перегляд необроблених кадрів; клієнт лише для читання все одно може
безпосередньо викликати методи похідного тексту.
Примітки щодо конфіденційності
- Знімки можуть містити будь-що з екрана, включно із секретами. Кадри ніколи не залишають машину, окрім випадків надсилання вибраних кадрів як вхідних даних налаштованій моделі спостереження.
- Спостереження, нещодавні картки та запитання можуть залишати машину через стандартну модель агента під час синтезу карток, створення стендапу або запитань і відповідей. Застосовуйте політику обробки даних постачальника до обох маршрутів моделей.
- Використовуйте локальні маршрути і для структурованої моделі спостереження, і для стандартної моделі агента, якщо вам потрібен повністю локальний конвеєр.
- Кадри, база даних часової шкали та тимчасові захоплення записуються з правами доступу лише для власника.
- Додавання
screen.snapshotдоgateway.nodes.denyCommandsє аварійним вимикачем захоплення екрана: воно блокує як захоплення вузлом застосунку, так і власну команду Logbooklogbook.snapshot. - Установлення
tools.media.image.enabled: falseтакож не дозволяє Logbook запозичувати моделі медіазображень для аналізу; тоді використовується лише явнаvisionModelу конфігурації Plugin.
Усунення несправностей
Вкладка Logbook відсутня
Перевірте всі три умови:
openclaw plugins list --enabledміститьlogbook.- Gateway було перезапущено після зміни Plugin або списку дозволів.
- З’єднання інтерфейсу керування має
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 може перейти на інший придатний Node.
Знімання виконується успішно, але картки не з’являються
- Стан Модель відсутня означає, що не знайдено сумісного маршруту структурованого комп’ютерного зору.
Увімкніть і автентифікуйте Plugin Codex або задайте дійсну явну
visionModel. Зняті кадри залишатимуться в стані очікування, доки модель відсутня, і їх можна буде проаналізувати після виправлення конфігурації. - Зачекайте протягом
analysisIntervalMinutesабо виберіть Аналізувати зараз після знімання активності. - Послідовні однакові кадри свідчать про бездіяльність і не потрапляють до пакетів аналізу. Перед тестуванням змініть видимий вміст екрана.
- Якщо останній пакет містить помилку, виправте проблему з моделлю або автентифікацією та виберіть Аналізувати зараз. Повторна обробка невдалих пакетів виконується лише після цієї явної дії, щоб уникнути повторних витрат на модель.