> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# エアギャップ化された Devin のディスク上のファイル形式

> macOS、Linux、Windows におけるエアギャップ化された Devin Desktop と CLI の固定のファイル配置場所に加え、SIEM への取り込みに使用する監査ログの JSONL スキーマと使用例を説明します。

> [!NOTE]
>
> このドキュメントは Devin の連邦政府向け導入環境を対象としています。[Devin ドキュメントに戻る](/ja/get-started/devin-intro)

エアギャップ化された CLI と Desktop は、すべての状態を少数のファイルに保存します。これらのファイルの形式は文書化されており、今後も変更されません。このページでは、各ファイルの配置場所と、ユーザー自身が作成するファイルを一覧で示します。また、監査ログを SIEM に転送できるよう、その正確なスキーマも記載しています。

***

## ファイルの場所

### 自分で作成するファイル

以下は、マシン全体に適用される入力ファイルです。各ファイルにはデフォルトのパスがあり、環境変数で上書きできます。この変数は、エージェントを起動する環境で設定しておく必要があります (Desktop での設定方法については [APIキーの環境変数](/ja/federal/air-gapped/models-file#api-key-environment-variables) を参照してください) 。

| ファイル | デフォルトのパス | 上書き設定 | 形式 | 説明ページ |
| - | - | - | - | - |
| ライセンス | `/etc/devin/license.devin-onprem-license` | `DEVIN_LICENSE_FILE` | 署名付きトークン (1 行) | [ライセンス](/ja/federal/air-gapped/license) |
| モデルファイル | `/etc/devin/models.json` | `DEVIN_MODELS_FILE` | JSON、`"version": 0` | [モデルファイル](/ja/federal/air-gapped/models-file) |
| 認証ファイル (任意、SSO を有効にする) | `/etc/devin/auth.json` | `DEVIN_AUTH_FILE` | JSON、`"version": 0` | [SSO](/ja/federal/air-gapped/sso) |
| CA バンドル (任意) | なし | `DEVIN_CA_BUNDLE` | PEM | [ネットワークと証明書](/ja/federal/air-gapped/network-and-certificates) |
| マシン全体のポリシー (任意) | Linux `/etc/devin/system.json`、macOS `/Library/Application Support/Devin/system.json` | なし | JSON | [CLI のシステム設定](/ja/cli/enterprise/system-config) |

デフォルトのパスは macOS と Linux で共通です。Windows では、ライセンス、モデルファイル、認証ファイルはデフォルトで `C:\ProgramData\Devin\` (`license.devin-onprem-license`、`models.json`、`auth.json`) に、マシン全体のポリシーファイルは `C:\ProgramData\Devin\system.json` に配置されます。上書き用の環境変数は他の OS と同じです。ファイルを配置する前に、[フォルダへのアクセスを制限](/ja/federal/air-gapped/install#windows-lock-down-the-configuration-folder)してください。CLI はこれらのファイルを読み取るだけで、書き込むことはありません。そのため、構成管理ツールで管理し、read-only に設定しておくことができます。

### CLI が書き込むユーザーごとの状態

CLI は macOS と Linux の**両方**で XDG ベースディレクトリの構成に従います (自身の状態の保存に `~/Library` は使用しません) 。`XDG_CONFIG_HOME` と `XDG_DATA_HOME` が設定されている場合は、その値が使用されます。

| パス | 内容 |
| - | - |
| `~/.config/devin/config.json` | 標準の Devin CLI と共有されるユーザー設定 (権限、`proxy` など) 。認証情報は含まれません。[CLI 設定ファイルリファレンス](/ja/cli/reference/configuration/config-file)を参照してください。 |
| `~/.config/devin/mcp_config.json` | ローカルで設定された MCP サーバー。 |
| `~/.local/share/devin/sso_tokens.toml` | `devin auth login` によって書き込まれる SSO トークンキャッシュ。所有者のみがアクセスできる権限 (`0600`) が設定されます。`devin auth logout` によって削除されます。 |
| `~/.local/share/devin/cli-federal/sessions.db` | セッション履歴 (SQLite) 。会話の内容が含まれるため、機密情報として扱ってください。 |
| `~/.local/share/devin/cli-federal/audit/` | 監査ログディレクトリ。`audit.jsonl` に加え、ローテーション済みの `audit-<timestamp>.jsonl` ファイルと `.audit.lock` アドバイザリロックが格納されます。スキーマは後述します。 |

`cli-federal` は、エアギャップ化されたbuildで使用される製品サブディレクトリです。同じマシンに標準の Devin CLI (`cli` を使用) がインストールされていても、状態は分離して保持されます。

Windows では、CLI は `XDG_*` 変数を読み取りません。同じファイルは `%APPDATA%\devin\` 配下に、キャッシュは `%LOCALAPPDATA%\devin\` 配下に保存されます。

| パス (Windows) | 内容 |
| - | - |
| `%APPDATA%\devin\config.json` | ユーザー設定 (上記と同じ) 。 |
| `%APPDATA%\devin\mcp_config.json` | ローカルで設定された MCP サーバー。 |
| `%APPDATA%\devin\sso_tokens.toml` | SSO トークンキャッシュ。 |
| `%APPDATA%\devin\cli-federal\sessions.db` | セッション履歴 (SQLite) 。 |
| `%APPDATA%\devin\cli-federal\audit\` | 監査ログディレクトリ。 |

### Desktop 固有の状態

Desktop アプリケーションは、同じマシン上にある他の Devin Desktop や Windsurf のインストールから分離されています。

| パス | 内容 |
| - | - |
| `~/.devin-airgap-config/` | Desktop がバンドル版エージェントに渡す、分離された `XDG_CONFIG_HOME` です。この中の `devin/config.json` は実際の `~/.config/devin/config.json` へのシンボリックリンクになっているため、CLI とバンドル版エージェントは同じユーザー設定を共有します。`~/.config/devin/` 内のそれ以外のファイル (特に `mcp_config.json`) は、Desktop 内のエージェントからは参照できません。 |
| `~/.devin-airgap/` | Desktop の拡張機能ディレクトリです。 |
| `~/.codeium/windsurf-airgap/` | language-server の状態です。 |
| Linux `~/.config/Devin - Airgap/`、macOS `~/Library/Application Support/Devin - Airgap/` | Desktop のユーザーデータ：`User/settings.json` (`devin.acp.agentEnv` を含む) 、ウィンドウの状態。 |

シンボリックリンクは、Desktop の起動時に `~/.devin-airgap-config/devin/config.json` が存在しない場合にのみ作成されます。そこにすでに通常のファイルがある場合、Desktop はそのファイルに手を加えず、バンドル版エージェントは共有ファイルではなくそのファイルを利用します。このとき、**Devin ACP** 出力チャンネルに `WARNING: … is a regular file, not a symlink` という行が記録されます。リンクを復元するには、そのファイルを削除して Desktop を再起動してください。

Windows ではシンボリックリンクは使用されません。Desktop のバンドル版エージェントと CLI は `%APPDATA%\devin\config.json` を直接共有し、Desktop はユーザーの `%APPDATA%\devin\mcp_config.json` を読み込みません。Desktop のユーザーデータは `%APPDATA%\Devin - Airgap\` に保存されます。

まっさらな状態から再インストールする場合、安全に削除できるのは `~/.devin-airgap-config/` と `~/.devin-airgap/` のみです。`~/.config/devin/` と `~/.local/share/devin/` はスタンドアロンの CLI でも使用されるため、削除しないでください。

## 監査ログ

エアギャップ化された CLI は、追記専用の構造化された監査ログをローカルに書き込みます。この監査ログは常時有効で (オン／オフを切り替えるトグルはありません) 、他の Devin build には存在しません。ログはワークステーション上に書き込まれるため、あなた自身でレビューしたり、SIEM に取り込んだりできます。

### 保存場所とローテーション

| プロパティ | 値 |
| - | - |
| アクティブなファイル | `~/.local/share/devin/cli-federal/audit/audit.jsonl` (Windows: `%APPDATA%\devin\cli-federal\audit\audit.jsonl`) |
| 形式 | JSON Lines：1 行につき 1 つの自己完結型 JSON オブジェクト、UTF-8 |
| 権限 | ディレクトリとファイルは所有者のみがアクセスできる権限 (`0600`) で作成されます |
| ローテーション | `audit.jsonl` が 10 MiB に達すると、`audit-<UTC timestamp>.jsonl` (例えば `audit-20260127T234500123Z.jsonl`) に名前が変更され、新しいファイルへの書き込みが始まります |
| 保持 | ローテーション済みファイルは最大 10 個まで保持され、古いものから順に削除されます |
| 同時実行 | ローテーションは `.audit.lock` アドバイザリロックで保護されているため、複数の CLI プロセスが同時に実行されても二重にローテーションされることはありません |

無期限に保持する必要がある場合は、ローテーション済みファイルが削除される前に SIEM へ転送してください。CLI は追記のみを行い、既存の行を書き換えることはないため、標準的なファイル追跡型のコレクターで十分に対応できます。詳しくは [監査ログを SIEM に転送する](#forward-the-audit-log-to-your-siem) を参照してください。

### 秘匿化の保証

イベントに含まれるのはパスとメタデータのみです。プロンプト、モデルのレスポンス、コード、ファイルの内容、シークレット値、API キー、シェルコマンドライン全体がログに含まれることはありません。シェルツールの場合、記録されるのはプログラム名 (最初のトークン) のみです。

### エンベロープ (スキーマバージョン 1)

すべての行にこのエンベロープが含まれます。イベント固有のフィールドは、エンベロープと同じ階層にフラットに配置されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `schema_version` | number | 現在は `1`。破壊的変更があった場合にのみ引き上げられます。 |
| `ts` | string | ミリ秒を含む RFC 3339 形式の UTC タイムスタンプ。 |
| `pid` | number | イベントを出力した CLI プロセスのプロセス ID。 |
| `event` | string | イベントタイプ。残りのフィールドはこの値によって決まります。 |

パーサーは、未知のフィールドや未知の `event` 値を無視するように設定してください。新しいフィールドやイベントタイプは、`schema_version` を引き上げずに追加されることがあります。

### イベントの種類

#### `session_start`

エージェントセッションの開始時 (新規セッションまたは再開されたルートセッション) に発行されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `session_id` | string | CLI のセッションID。同じセッションの他のすべてのイベントとの結合に利用します。 |
| `source` | string | セッションの開始方法 (例えば `startup`) 。 |
| `cli_version` | string | リリース済みの CLI バージョン。`devin --version` で表示される値です。 |
| `actor` | object | アイデンティティのアトリビューション。[`actor` オブジェクト](#actor-object)を参照してください。 |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:00.123Z","pid":4242,"event":"session_start","session_id":"a1b2","source":"startup","cli_version":"1.2.3","actor":{"os_user":"jsmith","git_user_name":"J. Smith","git_user_email":"jsmith@example.com","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
```

#### `session_end`

セッションが終了したとき、またはエージェントがシャットダウンしたときに発行されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `session_id` | string | CLI のセッションID。 |
| `reason` | string | `prompt_input_exit`、`clear`、`resume`、`logout`、`other` のいずれか。 |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:59:59.000Z","pid":4242,"event":"session_end","session_id":"a1b2","reason":"prompt_input_exit"}
```

正常終了時には、すべての `session_start` に対して、同じ `session_id` を持つ `session_end` が必ず 1 つだけ対応します。CLI はエージェントを子プロセスで実行し、終了処理時にその子プロセスを終了させます。そのため、セッションが終了すると、親プロセスが子セッションの `session_end` (reason は `other`) を記録します。`SIGKILL` や電源断によって強制終了されたセッションは、最後のイベントを書き込めません。対応する `session_end` がない `session_start` は、異常終了として扱ってください。

#### `tool_call`

エージェントがツールを実行するたびに出力されます。

| Field | Type | Description |
| - | - | - |
| `session_id` | string | CLI のセッションID。 |
| `tool_name` | string | ツール名 (例えば `read`、`write`、`exec`) 。 |
| `tool_id` | string | このツール実行の一意の ID。 |
| `success` | boolean | ツールが成功を報告したかどうか。 |
| `program` | string, optional | シェルツールの場合のみ：プログラム名だけを記録します (引数は含みません) 。 |
| `paths` | string\[], optional | ツールの対象スコープとなったファイルシステムのパス。空の場合は省略されます。 |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:07.001Z","pid":4242,"event":"tool_call","session_id":"a1b2","tool_name":"exec","tool_id":"t_01","success":true,"program":"cargo"}
```

#### `file_read` と `file_write`

`tool_call` に加えて、ツールの決定された権限スコープに含まれるパスごとに 1 回ずつ発行されます。これらのイベントが表すのは、実際に検証された I/O ではなく、ツールに*スコープとして許可された*アクセスです。たとえば、複数のパスに対する読み取りスコープで承認されたツールは、実際にはその一部にしかアクセスしなかった場合でも、パスごとに `file_read` を発行します。また、これらのイベントはツール呼び出しの成否にかかわらず発行されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `session_id` | string | CLI のセッションID。 |
| `path` | string | ファイルシステムのパス。 |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:09.410Z","pid":4242,"event":"file_write","session_id":"a1b2","path":"/home/jsmith/repo/src/main.rs"}
```

#### `model_call`

モデルファイルで定義されたモデルのエンドポイントに推論リクエストを送信するたびに記録されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `session_id` | string | CLI のセッション ID。 |
| `model` | string | モデルファイルに記載されたモデル名。 |
| `endpoint` | string, optional | 設定済みエンドポイントのベース URL。 |
| `input_tokens` | number, optional | 入力トークンの合計数 (キャッシュ読み取りを含む) 。 |
| `output_tokens` | number, optional | 出力トークン数。 |
| `cache_read_tokens` | number, optional | キャッシュ読み取りトークン数 (エンドポイントが報告する場合) 。 |
| `cache_creation_tokens` | number, optional | キャッシュ書き込みトークン数 (報告される場合) 。 |

エンドポイントが使用量を報告しない場合、トークン関連のフィールドは省略されます。

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:45:12.900Z","pid":4242,"event":"model_call","session_id":"a1b2","model":"llama-3-70b","endpoint":"https://models.internal:8000/v1","input_tokens":5120,"output_tokens":384}
```

#### `auth`

| Field | Type | 説明 |
| - | - | - |
| `action` | string | 以下のアクションのいずれか。 |
| `actor` | object | アイデンティティのアトリビューション。[`actor` オブジェクト](#actor-object)を参照してください。 |
| `error_code` | string, optional | `sso_login_denied` および `sso_revalidation_failed` の場合に、ユーザーに表示された `IDPnnn` コード。成功したアクションでは省略されます。 |

| `action` | 説明 |
| - | - |
| `identity_resolved` | セッション開始時および各 `devin auth` コマンドの実行後に記録されるアイデンティティのアトリビューション (`status` の後は検証したログインを示し、`logout` の後は何も示しません) 。 |
| `license_validated` | 起動時にライセンスファイルの検証に成功しました。 |
| `license_installed` | Desktop の設定ページからライセンスファイルが書き込まれました。パスやファイルの内容は含まれません。 |
| `sso_login` | SSO (シングルサインオン) ログインが完了しました (`devin auth login` または Desktop でのサインイン) 。 |
| `sso_login_denied` | IdP の応答後に SSO ログインが拒否されました。必須のグループに所属していない (`IDP004`) か、返された ID トークンの検証に失敗した、またはトークンが返されなかった (`IDP005`) ことが原因です。トークンの検証に成功した場合、`actor` には IdP が保証したアイデンティティが含まれます。キャッシュは行われません。 |
| `sso_refresh` | IdP で SSO トークンが更新されました。 |
| `sso_logout` | SSO ログアウト (`devin auth logout` または Desktop でのサインアウト) 。 |
| `sso_revalidation_failed` | 実行中のエージェントの SSO ログインが失効したため、エージェントをシャットダウンしています。[実行中のセッションでの再検証](/ja/federal/air-gapped/sso#revalidation-in-running-sessions)を参照してください。 |

```json theme={null}
{"schema_version":1,"ts":"2026-01-27T23:44:58.000Z","pid":4241,"event":"auth","action":"sso_login","actor":{"os_user":"jsmith","git_user_name":"J. Smith","git_user_email":"jsmith@example.com","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
{"schema_version":1,"ts":"2026-01-28T08:10:02.512Z","pid":5150,"event":"auth","action":"sso_login_denied","error_code":"IDP004","actor":{"os_user":"rjones","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"a90d…","sso_user":"rjones","sso_groups":["/contractors"]}}
{"schema_version":1,"ts":"2026-01-28T09:00:00.000Z","pid":4242,"event":"auth","action":"sso_revalidation_failed","error_code":"IDP003","actor":{"os_user":"jsmith","sso_issuer":"https://sso.example.com/realms/corp","sso_subject":"6f1c…","sso_user":"jsmith","sso_groups":["/devin-users"]}}
```

### `actor` オブジェクト

アイデンティティのアトリビューションは、OS ユーザー、ローカルの Git の識別情報、および (SSO (シングルサインオン) が設定済みの場合) 検証済みの ID トークンから得られるアイデンティティで構成されます。取得できないフィールドは省略されます。

| フィールド | 型 | 説明 |
| - | - | - |
| `os_user` | string, optional | `$USER`。 |
| `git_user_name` | string, optional | `git config user.name`。 |
| `git_user_email` | string, optional | `git config user.email`。 |
| `sso_issuer` | string, optional | トークンの検証に使用された IdP の発行者 URL。 |
| `sso_subject` | string, optional | ID トークンの `sub` クレーム。 |
| `sso_user` | string, optional | `devin auth status` が出力するアイデンティティ (`preferred_username`、`email`、または `sub`) 。 |
| `sso_groups` | string\[], optional | トークンのグループクレーム (デフォルトは `groups`、設定されている場合は `groups_claim`) 。 |

SSO フィールドは、次のイベントに含まれます。検証済みトークンが手元にあるすべての `auth` イベント (`sso_login`、`sso_refresh`、`sso_logout`、`sso_login_denied`) 、`sso_revalidation_failed` (プロセスが検証したログイン、または何も検証していない場合はトークンキャッシュに残っているログインについて) 、および `session_start` と `identity_resolved` (実行中のプロセスが起動時に検証したログインについて) です。`tool_call`、`file_read`、`file_write`、`model_call` には `actor` が含まれないため、`session_id` を介して対応する `session_start` に紐付けてください。

> [!NOTE]
>
> `sso_groups` には、各ユーザーの IDP グループメンバーシップがローカルマシン上に記録されます。監査ディレクトリとファイルには所有者のみがアクセスできます。グループ名が機密情報にあたる環境では、データ取り扱いのレビュー対象に含めてください。

### 監査ログを SIEM に転送する

Devin は監査レコードをどこにも送信しません。複数のワークステーションの使用量を集約するには、SIEM で既に利用しているログ収集エージェント(たとえば Splunk universal forwarder や Elastic Agent)の収集対象として、各ワークステーションの監査ディレクトリを指定します。Devin 側での設定は不要です。

エージェントのファイル入力を次のように設定します。

| 設定 | 値 |
| - | - |
| 収集するファイル | 監査ディレクトリ内の `audit*.jsonl`。アクティブなファイルとローテーション済みのファイルの両方が対象になります。`.audit.lock` は収集しないでください。 |
| ワークステーション上の全ユーザーを対象とするパス | Linux: `/home/*/.local/share/devin/cli-federal/audit/audit*.jsonl`。macOS: `/Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl`。これらのパスは `/home` および `/Users` 配下のホームディレクトリのみを対象とします。ホームディレクトリが別の場所にある場合や、ユーザーが `XDG_DATA_HOME` を設定している場合は、パスを調整してください。 |
| レコード形式 | 1 行につき 1 つの JSON オブジェクト。複数行の処理は不要です。 |
| タイムスタンプ | `ts` フィールド: RFC 3339、UTC、ミリ秒精度。 |
| 開始位置 | ファイルの先頭。これにより、エージェントのインストール前に書き込まれたレコードも収集されます。 |
| ローテーション | ローテーション時には、アクティブなファイルの名前が変更され、新しい `audit.jsonl` が作成されます。名前が変更されたファイルを重複して読み込まないよう、エージェントはファイルを名前ではなく ID で追跡する必要があります。お使いのエージェントが名前変更されたファイルをどのように扱うかを確認してください。 |
| 未定義のフィールド | 破棄せずに保持してください。新しいフィールドやイベントタイプは、`schema_version` を変更せずに追加されることがあります。 |

> [!WARNING]
>
> 監査ディレクトリとファイルは所有者のユーザーのみが読み取り可能で、Devin はログを開くたびにこれらの権限をリセットします。収集エージェントは root または当該ユーザーとして実行してください。別のアカウントにアクセスを許可するためにファイルの権限を変更しないでください。変更は維持されません。

各ユーザーのワークステーションには、アクティブなファイルに加えて、10 MiB のローテーション済みファイルが最大 10 個、合計で約 110 MiB 保持されます。これを超えた古いレコードは削除されるため、収集から次の収集までの間にこれを超える量を生成するワークステーションでは、最も古いレコードが失われます。

収集が正しく機能していることを確認するには、ワークステーションで Devin セッションを開始して終了し、同じ `session_id` を持つ `session_start` レコードと `session_end` レコードを SIEM で検索します。

#### 例: Splunk universal forwarder

次の 2 つのファイルを、各フォワーダー上のアプリにデプロイします (例えば `$SPLUNK_HOME/etc/apps/devin_audit/local/`) 。`monitor` スタンザは、ワークステーションのオペレーティングシステムに対応するもののみを利用し、`devin` は利用するインデックス名に置き換えてください。

```ini inputs.conf theme={null}
[monitor:///home/*/.local/share/devin/cli-federal/audit/audit*.jsonl]
sourcetype = devin:airgap:audit
index = devin
disabled = 0

[monitor:///Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl]
sourcetype = devin:airgap:audit
index = devin
disabled = 0
```

```ini props.conf theme={null}
[devin:airgap:audit]
INDEXED_EXTRACTIONS = json
KV_MODE = none
SHOULD_LINEMERGE = false
TIMESTAMP_FIELDS = ts
TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%3NZ
TZ = UTC
```

`INDEXED_EXTRACTIONS` はファイルを読み取る側で適用されるため、`props.conf` はインデクサーだけでなくフォワーダーにも配置する必要があります。`crcSalt` は設定しないでください。未設定であれば、フォワーダーはローテーション済みのファイルを内容で識別するため、名前が変わっても同じファイルを再度読み込むことはありません。ワイルドカードパスに含まれるすべてのディレクトリは、フォワーダーを実行するアカウントから読み取れる必要があります。非 root のサービスアカウントとしてインストールしたフォワーダーは、所有者のみがアクセスできる監査ディレクトリを読み取れません。

各フィールドは JSON の名前のままインデックス済みフィールドとして取り込まれるため、`actor.sso_user`、`model`、`input_tokens` を直接検索できます。

```text theme={null}
index=devin sourcetype="devin:airgap:audit" event=model_call | stats sum(input_tokens) sum(output_tokens) by model
```

#### 例: Elastic (Filebeat または Elastic Agent)

以下の `filestream` 入力を `filebeat.yml` に追加します。パスは、ワークステーションの OS に対応するものだけを残してください。

```yaml filebeat.yml theme={null}
filebeat.inputs:
  - type: filestream
    id: devin-airgap-audit
    paths:
      - /home/*/.local/share/devin/cli-federal/audit/audit*.jsonl
      - /Users/*/.local/share/devin/cli-federal/audit/audit*.jsonl
    prospector.scanner.fingerprint.length: 64
    parsers:
      - ndjson:
          target: devin
          add_error_key: true
    processors:
      - timestamp:
          field: devin.ts
          layouts:
            - "2006-01-02T15:04:05.999Z"
```

`ndjson` パーサーは、すべてのレコードを `devin.` プレフィックスの下に配置します (`devin.event`、`devin.session_id`、`devin.actor.sso_user`) 。`target: ""` は設定しないでください。レコードの `event` フィールドは文字列であるため、Elastic Common Schema の `event` オブジェクトと競合し、Elasticsearch がドキュメントを拒否します。`timestamp` プロセッサーは `ts` を `@timestamp` にコピーします。Elastic はこのプロセッサーをベータ版としているため、必要であればこれを削除し、代わりにインジェストパイプラインで `devin.ts` から `@timestamp` を設定してもかまいません。`id` は、`filestream` 入力の間で一意である必要があります。Filebeat のデフォルトのファイルアイデンティティはファイル先頭のフィンガープリントです。ローテーションでファイル名が変更されても同じファイルとして追跡されるため、ローテーション関連の設定は不要です。フィンガープリント長は、デフォルトの 1024 バイトから 64 バイトに引き下げています。Filebeat 9.0〜9.4 はファイルがその長さに達するまで無視するため、レコード数の少ないワークステーションがスキップされてしまうからです。監査ファイルの先頭 64 バイトには最初のレコードの `ts` と `pid` が含まれるため、フィンガープリントが重複することはありません。後から長さを変更すると、Filebeat はすべてのファイルを最初から読み込み直します。

Elastic Agent を利用する場合は、エージェントポリシーに Custom Logs (Filestream) 統合を追加して同じパスを入力し、上記の `parsers` ブロックと `processors` ブロックを統合のカスタム設定フィールドに記述します。

> [!NOTE]
>
> Cognition は、これらの使用例を Splunk や Elastic のデプロイ環境で検証していません。ワークステーションにデプロイする前に、ご自身の環境で検証し、インストール済みのバージョンに対応するベンダーのドキュメントを確認してください。

インデックス化や検索に役立つフィールド:

| 確認したい内容 | フィールド |
| - | - |
| 誰がいつ Devin を利用したか | `event` = `session_start` のレコードの `actor.sso_user` (または `actor.os_user`) と `ts` |
| デプロイ済みのバージョン | `session_start` の `cli_version` |
| モデル別のトークン使用量 | `event` = `model_call` のレコードの `model`、`input_tokens`、`output_tokens` |
| 失敗したツール呼び出し | `event` = `tool_call` かつ `success` = `false` |
| 拒否されたサインイン | `event` = `auth` かつ `action` = `sso_login_denied` のレコードと `error_code` |

ユーザーを特定できるのは `session_start` と `auth` のレコードのみです。`tool_call`、`file_read`、`file_write`、`model_call` のレコードをユーザーと紐付けるには、同じ `session_id` を持つ `session_start` レコードと結合してください。

## 診断情報レポート

`devin diagnostics` は、機密情報を除去したプレーンテキストのレポートを出力します。Cognition サポートに送信する前に、内容をレビューできます。レポートに含まれるのは、バージョン、設定の構成状況 (各ファイルが存在し、正しく解析できるかどうか) 、モデル名、各 API キー変数が設定されているかどうか、および監査ログの統計情報のみです。プロンプト、コード、ファイルの内容、シークレット値、エンドポイント URL、環境変数の値は一切含まれません。

```sh theme={null}
devin diagnostics
```

```text theme={null}
Diagnostics written to devin-diagnostics-20260127T234500Z.txt
The report is plain text and stays on this machine; review it before sharing.
```

ファイル名を指定するには `--output <path>` を利用します。レポートは所有者のみが読み書きできる権限 (`0600`) で書き出されます。サポートリクエストに含める内容については、[トラブルシューティング](/ja/federal/air-gapped/troubleshooting)を参照してください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.