---
read_when:
    - コンテンツを保存せずに、Gateway が実行した内容を永続的に記録する必要があります
    - メッセージライフサイクルの監査を有効にするかどうかを判断しています
    - 監査記録が何を証明し、何を証明しないのかを説明する必要があります
summary: エージェント実行、ツールアクション、オプトインされたメッセージライフサイクルに関するメタデータのみの監査履歴
title: 監査履歴
x-i18n:
    generated_at: "2026-07-12T14:31:40Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 15
    provider: openai
    source_hash: 1005b214a674f0f888d759837bd627be458cefcf9ed61bda722499333361dc45
    source_path: gateway/audit.md
    workflow: 16
---

# 監査履歴

Gateway は、共有 OpenClaw 状態データベースに、メタデータのみを格納する件数制限付きの監査台帳を保持します。この台帳は、「どのエージェントがいつ実行され、どのように終了したか」、「実行中にどのツールアクションが行われたか」、さらにメッセージ監査が有効な場合は、「受理された受信メッセージがディスパッチに到達したか」や「送信メッセージが最終的な配信状態に到達したか」といった運用上の問いに答えます。

台帳には、識別情報、順序、来歴、アクション、ステータス、および正規化された結果コードが保存されます。プロンプト、メッセージ本文、ツール引数、ツール結果、添付ファイル、ファイル名、URL、コマンド出力、生のエラーテキストは一切保存されません。

## レコード種別

監査が有効な場合（デフォルト）、実行イベントとツールイベントは常に記録されます。メッセージのライフサイクルイベントはオプトインであり、デフォルトでは無効です。

| 種別             | アクション                                               | デフォルト |
| ---------------- | -------------------------------------------------------- | ---------- |
| エージェント実行 | `agent.run.started`, `agent.run.finished`                | オン       |
| ツールアクション | `tool.action.started`, `tool.action.finished`            | オン       |
| メッセージ       | `message.inbound.processed`, `message.outbound.finished` | オフ       |

すべてのレコードには、安定したイベント ID、単調増加する台帳シーケンス、ライフサイクルのタイムスタンプ、アクター、アクション、ステータス、`schemaVersion: 1`、および `redaction: "metadata_only"` が含まれます。フィールドの完全なリファレンスとクエリフィルターについては、[監査レコード](/ja-JP/cli/audit)を参照してください。

## メッセージのライフサイクルイベント

記録対象を選択するには、[`audit.messages`](/ja-JP/gateway/configuration-reference#audit) を設定してから Gateway を再起動します。

- `off`（デフォルト）：メッセージレコードを記録しません。
- `direct`：ダイレクト会話内のメッセージのみを記録します。
- `all`：ダイレクト、グループ、およびチャンネルのメッセージを記録します。

メッセージレコードは、信頼できる次の 2 つの境界で生成されます。

- **受信**行は、重複や最終的な処理結果を含め、受理されたメッセージがコアのディスパッチに到達した時点で書き込まれます。
- **送信**行は、共有の永続配信が、送信済み、抑止、失敗、またはクラッシュにより送信成否が曖昧な場合の明示的な `unknown` のいずれかの最終結果に到達した時点で書き込まれます。キューの復旧およびデッドレターの結果も含まれます。元の論理返信ペイロードごとに最終行が 1 つ生成され、チャンク分割とアダプターのファンアウトは `resultCount` に集約されます。

### 会話種別の分類

`direct` モードはプライバシー境界であるため、送信先の事実によって証明できる場合にのみ、メッセージはダイレクト会話として分類されます。具体的には、送信経路で送信先の会話種別が宣言されている場合、または配信セッションのルートが配信先のチャンネルと相手を正確に指定している場合です。ポリシー状態や送信元の会話など、より弱いシグナルによってメッセージを `group` と分類し（`direct` の収集対象から除外し）得る一方で、`direct` と判定することはできません。ダイレクトであることを証明できないメッセージは `unknown` に分類され、`direct` モードでは記録されません。そのため、チャット種別を宣言しないチャンネルでは、`all` モードよりも `direct` モードで記録される行が少なくなる場合があります。

## プライバシーモデル

メッセージ行には、生のプラットフォーム識別子は一切保存されません。相関付けが可能な場合、アカウント、会話、メッセージ、および送信先の識別子は、インストール環境内に限定された鍵付き仮名
（`hmac-sha256:v1:<keyId>:<digest>`）としてのみエクスポートされます。

- HMAC 鍵は初回使用時に生成され、識別子の種別ごとにドメイン分離され、台帳と同じ状態データベースに保存されます。
- 仮名は 1 つのインストール環境内で安定しているため、プラットフォーム識別子を明かすことなく、同じ会話に関する行を相関付けできます。
- これは**相関付けであり、匿名化ではありません**。状態データベースへの読み取りアクセス権を持つ者は鍵にもアクセスできるため、生の識別子候補を仮名と照合できます。RPC および CLI のエクスポートに鍵が含まれることはありません。
- メッセージ行が保持されている状態で鍵素材が欠落または破損した場合、Gateway はフェイルクローズし、新しい鍵へ暗黙にローテーションして相関関係を分断するのではなく、新しいメッセージレコードを破棄します。

実行レコードとツールレコードは、相関付けのために `sessionKey` と `sessionId` を保持します。正規のセッションキー自体に、プラットフォームのアカウント ID や相手 ID が含まれる場合があります。メッセージレコードでは、意図的にその両方を省略しています。

監査エクスポートは、内容を含まなくても機密性の高い運用メタデータです。時刻、チャンネル、結果、および安定した仮名によって、アクティビティを相関付けできるためです。エクスポートは、他の運用担当者向けレコードと同等のアクセス制御および保持方法で保護してください。

## 対象範囲と証明の限界

台帳はベストエフォートであり、意図的に件数が制限されています。実際に発生した事象の証明ではなく、記録された内容の証拠として扱ってください。

- **行が存在しないことは、何も証明しません。** 受理前に破棄された受信メッセージ、Gateway レコーダーが稼働していない CLI プロセスからの送信、および共有の永続配信を迂回する Plugin ローカルまたは直接送信の経路は記録されません。
- 書き込みは、件数制限付きのバックグラウンドワーカーを介して行われます。ワーカーの障害またはキューの飽和が発生するとレコードは破棄され、運用上の警告が 1 件ログに記録されます。
- クラッシュによって送信成否が曖昧な送信は、架空の結果ではなく `unknown` として記録されます。

この台帳は、デバッグおよび運用レビューを支援します。損失のないコンプライアンスアーカイブではありません。そのようなアーカイブが必要な場合は、[OpenTelemetry](/ja-JP/gateway/opentelemetry) またはチャンネルレベルのツールからデータを供給する外部システムを使用してください。

## ストレージ、保持、および移行

レコードは共有状態データベース（`state/openclaw.sqlite`）に保存され、配信のホットパス外で書き込まれます。クエリが 30 日より古いレコードを返すことはなく、台帳の上限は 100,000 行です。期限切れの行は、起動時、1 時間ごとのメンテナンス時、および後続の書き込み時に削除されます。収集が無効な場合でも、保持メンテナンスは継続して実行されます。

以前の実行／ツール専用台帳を備えた Gateway からアップグレードすると、起動時（または `openclaw doctor --fix` の実行時）にスキーマが自動的に移行されます。既存の行とその台帳シーケンスは保持されます。

## クエリ

- CLI：[`openclaw audit`](/ja-JP/cli/audit)。エージェント、セッション、実行、種別、ステータス、方向、チャンネル、時間範囲、およびカーソルページングのフィルターを使用できます。
- Gateway RPC：`audit.activity.list`（`operator.read` が必要）は、バージョン管理された V1 アクティビティイベントの共用体を返します。リリース済みの `audit.list` RPC は、従来の実行／ツールクライアント向けに変更されていません。[Gateway プロトコル](/ja-JP/gateway/protocol#audit-ledger-rpc)を参照してください。

## 関連項目

- [監査レコード CLI](/ja-JP/cli/audit)
- [設定リファレンス](/ja-JP/gateway/configuration-reference#audit)
- [Gateway プロトコル](/ja-JP/gateway/protocol#audit-ledger-rpc)
- [OpenTelemetry](/ja-JP/gateway/opentelemetry)
