<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 を使用する場合は、codex と logbook の
両方を含めてください。Plugin の設定を変更した後に Gateway を再起動し、
登録内容を確認してダッシュボードを開きます。
screen.snapshot または logbook.snapshot が含まれている
必要があります。ヘッドレス Node は Plugin がアクティブになった後にのみ
logbook.snapshot を通知します。コマンドがない場合は、
Node のトラブルシューティング を参照してください。
Logbook タブは、Plugin が有効であり、かつ operator.write の
Control UI セッションである場合にのみ表示されます。ステータス行にはエラーなしで
キャプチャ中と表示されるはずです。分析ウィンドウが終了するとタイムラインカードが
表示されます。または、アクティビティのキャプチャ後に 今すぐ分析 を選択できます。
仕組み
- キャプチャ:
captureIntervalSecondsごと(デフォルトは 30 秒)に、Logbook は 選択した Node のキャプチャコマンドを呼び出し、縮小した JPEG フレームを保存します。 連続して同一のフレームはアイドルとしてマークされ、分析から除外されます。 - 観察: 分析ウィンドウ(デフォルトは 15 分)が経過すると、 Plugin は最大 16 個のアクティブなフレームをサンプリングしてビジョンモデルに送信し、 モデルはタイムスタンプ付きのアクティビティ観察結果(「VS Code: store.ts を編集し、 型エラーを修正」)を返します。2 分を超えるキャプチャの中断、またはローカルの午前 0 時でも、 現在のウィンドウが終了します。
- 合成: 観察結果と既存カードの直近 45 分を、タイトル、要約、 カテゴリ、メインアプリ、短時間の気の散りを含むタイムラインカード (各 10~60 分)に再構成します。
- 削除:
retentionDays日(デフォルトは 14 日)より古いフレームを削除します。 カード、観察結果、キャッシュされたスタンドアップは保持されます。
<state-dir>/logbook/ に保存されます。
モデルとデータの流れ
Logbook は、2 つの異なるモデルルートを使用します。
SQLite データベース全体が、どちらかのモデルに送信されることはありません。未加工の
スクリーンショットは観察段階にのみ送信されます。カードの合成、スタンドアップ、Q&A には、
生成されたテキストが渡されます。
設定
nodeId がない場合、Logbook はまず screen.snapshot を公開する
接続済みのアプリ Node を優先し、その後 logbook.snapshot を公開するヘッドレス Node に
フォールバックします。固定されていない構成では、障害が発生した Node は他の適格な Node の
後ろにローテーションされます。ダッシュボードの一時停止切り替えはセッション内でのみ有効で、
Gateway の再起動時にリセットされます。永続的に停止するには captureEnabled: false を使用してください。
ビジョンモデルの選択
Logbook は、次の順序で観察モデルを解決します。plugins.entries.logbook.config.visionModeltools.media.models配下にある、画像対応の最初の Codex エントリ
tools.media.image.enabled: false を設定すると、借用された
メディアのデフォルトは無効になりますが、明示的な Logbook の
visionModel は引き続き適用されます。
ダッシュボードタブ
- タイムライン: カテゴリの色、メインアプリ、気の散りを示すチップ、 スナップショットのキーフレームを備えた、アクティビティごとの展開可能なカード。
- 一日の概要: 集中時間の比率、カテゴリの内訳、よく使用したアプリ。
- 日次スタンドアップ: 昨日と今日の情報を、すぐに貼り付けられる更新内容に変換します。
- その日について質問: 記録されたタイムラインに基づいて自然言語の質問に回答します (「Gateway の PR をレビューしたのはいつですか?」)。
- 今すぐ分析: 分析間隔を待たず、現在のキャプチャウィンドウをただちに終了します。
Gateway メソッド
Logbook は次の Gateway RPC メソッドを登録します。
読み取りメソッドは、運用状態または生成されたテキストを返します。未加工のスクリーンショットの
ピクセル、モデルの費用が発生するアクション、ランタイムの変更には
operator.write が必要です。Control UI タブでは、これらのアクションと未加工フレームの
プレビューを公開するため、operator.write も必要です。読み取り専用クライアントでも、
生成テキストのメソッドを直接呼び出すことはできます。
プライバシーに関する注意事項
- スナップショットには、シークレットを含め、画面上のあらゆるものが含まれる可能性があります。フレームがマシンの外部に送信されるのは、設定された観測モデルへのサンプリング入力として使用される場合に限られます。
- 観測、最近のカード、質問は、カードの合成、スタンドアップの生成、Q&A の際に、デフォルトのエージェントモデルを通じてマシンの外部に送信される場合があります。両方のモデルルートにプロバイダーのデータ処理ポリシーを適用してください。
- 完全にローカルなパイプラインが必要な場合は、構造化観測モデルとデフォルトのエージェントモデルの両方にローカルルートを使用してください。
- フレーム、タイムラインデータベース、一時キャプチャは、所有者のみがアクセスできるファイル権限で書き込まれます。
screen.snapshotをgateway.nodes.commands.denyに追加すると、画面キャプチャのキルスイッチとして機能し、アプリ Node のキャプチャと Logbook 自体のlogbook.snapshotコマンドの両方をブロックします。tools.media.image.enabled: falseを設定すると、Logbook が分析にメディア画像モデルを借用することも停止します。この場合、Plugin 設定で明示的に指定されたvisionModelのみが使用されます。
トラブルシューティング
Logbook タブが表示されない
次の 3 つのゲートをすべて確認してください。openclaw plugins list --enabledにlogbookが含まれている。- Plugin または許可リストを変更した後に Gateway が再起動されている。
- Control UI 接続に
operator.writeがある。読み取り専用セッションにはインタラクティブなタブ記述子は送信されません。
plugins.allow が設定されている場合、推奨設定では logbook と codex の両方を含める必要があります。
キャプチャでエラーが報告される
- Node が
screen.snapshotまたはlogbook.snapshotを公開していることを確認してください。 - キャプチャを行う Mac で Screen Recording 権限を付与してください。
nodeIdが設定されている場合、Node ID または表示名と一致することを確認してください。gateway.nodes.commands.denyにscreen.snapshotが含まれていないことを確認してください。
キャプチャは成功するがカードが表示されない
- モデルがありませんというステータスは、互換性のある構造化ビジョンルートが見つからなかったことを意味します。Codex Plugin を有効化して認証するか、有効な
visionModelを明示的に設定してください。モデルがない間、キャプチャされたフレームは保留状態のままになり、設定を修正した後に分析できます。 analysisIntervalMinutesを待つか、アクティビティがキャプチャされた後に 今すぐ分析 を選択してください。- 連続する同一フレームはアイドル状態の証拠と見なされ、分析バッチには入りません。テストする前に、表示されている画面を変更してください。
- 最新のバッチにエラーが表示されている場合は、モデルまたは認証の問題を修正して 今すぐ分析 を選択してください。モデルの使用料金が繰り返し発生するのを避けるため、失敗したバッチはこの明示的な操作を行った場合にのみ再試行されます。