Skip to main content
Logbook Plugin は、画面上のアクティビティを自動的な作業日誌に変換します。 ペアリングされた Node から画面のスナップショットを定期的に取得し、タイムスタンプ付きの 観察結果として要約して、Control UI にタイムラインカードを 作成します。また、日次スタンドアップノートを生成したり、記録した日についての 質問に回答したりすることもできます。 OpenClaw が所有する状態は Gateway 上の <state-dir>/logbook/ に保持されますが、 モデル処理が必ずしもローカルで行われるとは限りません。サンプリングされたスクリーンショットは 設定済みのビジョンルートに送信され、観察結果とタイムラインテキストはデフォルトの エージェントモデルに送信されます。画面の内容と、それから生成されたアクティビティテキストを マシン上に保持する必要がある場合は、両方の段階でローカルモデルルートを使用してください。 Logbook はバンドルされていますが、デフォルトでは無効です。Plugin を有効にすると、 captureEnabled のデフォルトが true であるため、Gateway で 画面キャプチャが有効になります。

はじめる前に

以下が必要です。
  • screen.snapshot または logbook.snapshot を公開する、接続済みの Node。 macOS アプリの Node には画面収録の権限が必要です。ヘッドレス macOS Node ホスト (openclaw node host run) では、システムの screencapture ツールを使用する、 Plugin 提供の logbook.snapshot コマンドを利用できます。
  • バンドルされた Codex Plugin が有効化および認証されていること。現在 Codex は、 Logbook に必要な構造化画像抽出コントラクトを提供します。 openclaw models auth login --provider openai でサインインしてください。その他の認証方法については、 Codex ハーネス を参照してください。
  • 動作するデフォルトのエージェントモデル。Logbook はビジョン処理後に、カード、 スタンドアップノート、日単位の Q&A を合成するためにこのモデルを使用します。

クイックスタート

Codex と Logbook の Plugin を有効にします。
確定的に起動できるよう、ビジョンモデルを明示的に設定します。
plugins.allow を使用する場合は、codexlogbook の 両方を含めてください。Plugin の設定を変更した後に Gateway を再起動し、 登録内容を確認してダッシュボードを開きます。
Node の説明には screen.snapshot または logbook.snapshot が含まれている 必要があります。ヘッドレス Node は Plugin がアクティブになった後にのみ logbook.snapshot を通知します。コマンドがない場合は、 Node のトラブルシューティング を参照してください。 Logbook タブは、Plugin が有効であり、かつ operator.write の Control UI セッションである場合にのみ表示されます。ステータス行にはエラーなしで キャプチャ中と表示されるはずです。分析ウィンドウが終了するとタイムラインカードが 表示されます。または、アクティビティのキャプチャ後に 今すぐ分析 を選択できます。

仕組み

  1. キャプチャ: captureIntervalSeconds ごと(デフォルトは 30 秒)に、Logbook は 選択した Node のキャプチャコマンドを呼び出し、縮小した JPEG フレームを保存します。 連続して同一のフレームはアイドルとしてマークされ、分析から除外されます。
  2. 観察: 分析ウィンドウ(デフォルトは 15 分)が経過すると、 Plugin は最大 16 個のアクティブなフレームをサンプリングしてビジョンモデルに送信し、 モデルはタイムスタンプ付きのアクティビティ観察結果(「VS Code: store.ts を編集し、 型エラーを修正」)を返します。2 分を超えるキャプチャの中断、またはローカルの午前 0 時でも、 現在のウィンドウが終了します。
  3. 合成: 観察結果と既存カードの直近 45 分を、タイトル、要約、 カテゴリ、メインアプリ、短時間の気の散りを含むタイムラインカード (各 10~60 分)に再構成します。
  4. 削除: retentionDays 日(デフォルトは 14 日)より古いフレームを削除します。 カード、観察結果、キャッシュされたスタンドアップは保持されます。
日の境界とタイムラインの時刻には、ブラウザのタイムゾーンではなく Gateway の ローカルタイムゾーンが使用されます。フレームと SQLite タイムラインデータベースは <state-dir>/logbook/ に保存されます。

モデルとデータの流れ

Logbook は、2 つの異なるモデルルートを使用します。 SQLite データベース全体が、どちらかのモデルに送信されることはありません。未加工の スクリーンショットは観察段階にのみ送信されます。カードの合成、スタンドアップ、Q&A には、 生成されたテキストが渡されます。

設定

Logbook のすべての設定キーは省略可能です。数値は整数に丸められ、 サポートされる範囲内に制限されます。 nodeId がない場合、Logbook はまず screen.snapshot を公開する 接続済みのアプリ Node を優先し、その後 logbook.snapshot を公開するヘッドレス Node に フォールバックします。固定されていない構成では、障害が発生した Node は他の適格な Node の 後ろにローテーションされます。ダッシュボードの一時停止切り替えはセッション内でのみ有効で、 Gateway の再起動時にリセットされます。永続的に停止するには captureEnabled: false を使用してください。

ビジョンモデルの選択

Logbook は、次の順序で観察モデルを解決します。
  1. plugins.entries.logbook.config.visionModel
  2. tools.media.models 配下にある、画像対応の最初の Codex エントリ
その他のメディアプロバイダーは、現在 Logbook に必要な構造化抽出コントラクトを 公開していないためスキップされます。tools.media.image.enabled: false を設定すると、借用された メディアのデフォルトは無効になりますが、明示的な Logbook の visionModel は引き続き適用されます。

ダッシュボードタブ

  • タイムライン: カテゴリの色、メインアプリ、気の散りを示すチップ、 スナップショットのキーフレームを備えた、アクティビティごとの展開可能なカード。
  • 一日の概要: 集中時間の比率、カテゴリの内訳、よく使用したアプリ。
  • 日次スタンドアップ: 昨日と今日の情報を、すぐに貼り付けられる更新内容に変換します。
  • その日について質問: 記録されたタイムラインに基づいて自然言語の質問に回答します (「Gateway の PR をレビューしたのはいつですか?」)。
  • 今すぐ分析: 分析間隔を待たず、現在のキャプチャウィンドウをただちに終了します。

Gateway メソッド

Logbook は次の Gateway RPC メソッドを登録します。 読み取りメソッドは、運用状態または生成されたテキストを返します。未加工のスクリーンショットの ピクセル、モデルの費用が発生するアクション、ランタイムの変更には operator.write が必要です。Control UI タブでは、これらのアクションと未加工フレームの プレビューを公開するため、operator.write も必要です。読み取り専用クライアントでも、 生成テキストのメソッドを直接呼び出すことはできます。

プライバシーに関する注意事項

  • スナップショットには、シークレットを含め、画面上のあらゆるものが含まれる可能性があります。フレームがマシンの外部に送信されるのは、設定された観測モデルへのサンプリング入力として使用される場合に限られます。
  • 観測、最近のカード、質問は、カードの合成、スタンドアップの生成、Q&A の際に、デフォルトのエージェントモデルを通じてマシンの外部に送信される場合があります。両方のモデルルートにプロバイダーのデータ処理ポリシーを適用してください。
  • 完全にローカルなパイプラインが必要な場合は、構造化観測モデルとデフォルトのエージェントモデルの両方にローカルルートを使用してください。
  • フレーム、タイムラインデータベース、一時キャプチャは、所有者のみがアクセスできるファイル権限で書き込まれます。
  • screen.snapshotgateway.nodes.commands.deny に追加すると、画面キャプチャのキルスイッチとして機能し、アプリ Node のキャプチャと Logbook 自体の logbook.snapshot コマンドの両方をブロックします。
  • tools.media.image.enabled: false を設定すると、Logbook が分析にメディア画像モデルを借用することも停止します。この場合、Plugin 設定で明示的に指定された visionModel のみが使用されます。

トラブルシューティング

Logbook タブが表示されない

次の 3 つのゲートをすべて確認してください。
  1. openclaw plugins list --enabledlogbook が含まれている。
  2. Plugin または許可リストを変更した後に Gateway が再起動されている。
  3. Control UI 接続に operator.write がある。読み取り専用セッションにはインタラクティブなタブ記述子は送信されません。
plugins.allow が設定されている場合、推奨設定では logbookcodex の両方を含める必要があります。

キャプチャでエラーが報告される

  • Node が screen.snapshot または logbook.snapshot を公開していることを確認してください。
  • キャプチャを行う Mac で Screen Recording 権限を付与してください。
  • nodeId が設定されている場合、Node ID または表示名と一致することを確認してください。
  • gateway.nodes.commands.denyscreen.snapshot が含まれていないことを確認してください。
3 回連続で失敗すると、Logbook は 10 回のキャプチャティックの間バックオフしてから再試行します。固定されていない設定では、別の適格な Node に切り替わる場合があります。

キャプチャは成功するがカードが表示されない

  • モデルがありませんというステータスは、互換性のある構造化ビジョンルートが見つからなかったことを意味します。Codex Plugin を有効化して認証するか、有効な visionModel を明示的に設定してください。モデルがない間、キャプチャされたフレームは保留状態のままになり、設定を修正した後に分析できます。
  • analysisIntervalMinutes を待つか、アクティビティがキャプチャされた後に 今すぐ分析 を選択してください。
  • 連続する同一フレームはアイドル状態の証拠と見なされ、分析バッチには入りません。テストする前に、表示されている画面を変更してください。
  • 最新のバッチにエラーが表示されている場合は、モデルまたは認証の問題を修正して 今すぐ分析 を選択してください。モデルの使用料金が繰り返し発生するのを避けるため、失敗したバッチはこの明示的な操作を行った場合にのみ再試行されます。

関連項目