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

# 転写物の衛生管理

> このドキュメントでは、実行前にトランスクリプトに適用される プロバイダー固有の修正について説明します (モデルコンテキストの構築)。これらはメモリ内の調整であり、厳密な条件を満たすために使用されます。プロバイダーの要件。

このドキュメントでは、実行前にトランスクリプトに適用される **プロバイダー固有の修正**について説明します
(モデルコンテキストの構築)。これらは**メモリ内**の調整であり、厳密な条件を満たすために使用されます。
プロバイダーの要件。これらの衛生手順では、保存されている JSONL トランスクリプトが書き換えられることはありません\*\*
ディスク上。ただし、別のセッション ファイル修復パスにより、不正な JSONL ファイルが書き換えられる可能性があります。
セッションがロードされる前に無効な行を削除することによって。修理が発生した場合、元の
ファイルはセッション ファイルと一緒にバックアップされます。

範囲には以下が含まれます:

* ツール呼び出しIDのサニタイズ
* ツール呼び出し入力の検証
* ツール結果のペアリング修復
* ターン検証/順序付け
* 思考署名のクリーンアップ
* 画像ペイロードのサニタイズ
* ユーザー入力の出所タグ付け (セッション間ルーティング プロンプト用)

トランスクリプト ストレージの詳細が必要な場合は、次を参照してください。

* [/reference/session-management-compaction](/reference/session-management-compaction)

***

## これが実行される場所

すべてのトランスクリプトの衛生管理は、埋め込みランナーに一元化されています。

* ポリシーの選択: `src/agents/transcript-policy.ts`
* サニタイズ/修復アプリケーション: `src/agents/pi-embedded-runner/google.ts` の `sanitizeSessionHistory`

このポリシーは、`provider`、`modelApi`、および `modelId` を使用して、何を適用するかを決定します。

トランスクリプトの健全性とは別に、セッション ファイルはロード前に (必要に応じて) 修復されます。

* `repairSessionFileIfNeeded` の `src/agents/session-file-repair.ts`
* `run/attempt.ts` および `compact.ts` から呼び出されます (埋め込みランナー)

\---## グローバル ルール: 画像のサニタイズ

サイズによるプロバイダ側の拒否を防ぐために、画像ペイロードは常にサニタイズされます。
制限 (サイズの大きい Base64 イメージのダウンスケール/再圧縮)。

これは、ビジョン対応モデルのイメージ駆動型トークン プレッシャーの制御にも役立ちます。
最大サイズを低くすると、一般にトークンの使用量が減ります。高次元では詳細が保持されます。

実装:

* `src/agents/pi-embedded-helpers/images.ts` の `sanitizeSessionMessagesImages`
* `src/agents/tool-images.ts` の `sanitizeContentBlocksImages`
* 最大イメージ側は `agents.defaults.imageMaxDimensionPx` を介して構成可能です (デフォルト: `1200`)。

***

## グローバル ルール: 不正な形式のツール呼び出し

`input` と `arguments` の両方が欠落しているアシスタント ツール呼び出しブロックは削除されます
モデルコンテキストが構築される前。これにより、プロバイダーによる部分的な拒否が防止されます。
永続的なツール呼び出し (たとえば、レート制限の失敗後)。

実装:

* `sanitizeToolCallInputs` の `src/agents/session-transcript-repair.ts`
* `src/agents/pi-embedded-runner/google.ts` の `sanitizeSessionHistory` で適用

***

## グローバル ルール: セッション間の入力の出所

エージェントが `sessions_send` 経由で別のセッションにプロンプトを送信するとき (含む)
エージェント間の返信/アナウンス手順)、OpenClaw は、作成されたユーザー ターンを次のように保持します。

* `message.provenance.kind = "inter_session"`

このメタデータはトランスクリプトの追加時に書き込まれ、役割は変わりません
(`role: "user"` はプロバイダーの互換性のために残ります)。トランスクリプトリーダーが使用できるのは、
これは、ルーティングされた内部プロンプトがエンドユーザー作成の指示として扱われることを避けるためです。コンテキストの再構築中に、OpenClaw は短い `[Inter-session message]` も先頭に追加します。
それらのユーザーへのマーカーがメモリ内でオンになるため、モデルはユーザーを区別できるようになります。
外部エンドユーザーへの指示。

***

## プロバイダー マトリックス (現在の動作)

**OpenAI / OpenAI コーデックス**

* 画像のサニタイズのみ。
* OpenAI Response/Codex トランスクリプトの孤立した推論署名 (後続のコンテンツ ブロックのないスタンドアロンの推論アイテム) を削除します。
* ツール呼び出しIDのサニタイズはありません。
* ツール結果のペアリング修復はありません。
* ターンの検証や並べ替えはありません。
* 合成ツールの結果はありません。
* 何も考えずに署名を剥がします。

**Google (Generative AI / Gemini CLI / Antigravity)**

* ツール呼び出し ID のサニタイズ: 厳密な英数字。
* 修復と合成ツールの結果をペアリングするツール結果。
* ターンの検証 (Gemini スタイルのターン交代)。
* Google ターン順序の修正 (履歴がアシスタントから始まる場合、小さなユーザー ブートストラップを先頭に追加します)。
* 反重力クロード: 思考のサインを正規化します。署名されていない思考ブロックを取り除きます。

**Anthropic / Minimax (Anthropic 互換)**

* 修復と合成ツールの結果をペアリングするツール結果。
* ターンの検証 (厳密な交代を満たすために連続するユーザーのターンをマージします)。

**Mistral (モデル ID ベースの検出を含む)**

* ツール呼び出し ID サニタイズ: strict9 (英数字の長さ 9)。

**OpenRouter Gemini**

* 思考署名のクリーンアップ: 非 Base64 `thought_signature` 値を削除します (base64 を維持します)。**その他すべて**

* 画像のサニタイズのみ。

***

## 過去の動作 (2026.1.22 より前)

2026.1.22 リリースより前に、OpenClaw は複数の層のトランスクリプト衛生状態を適用していました。

* **transcript-sanitize 拡張機能** はすべてのコンテキスト ビルドで実行され、次のことが可能でした。
  * 修復ツールの使用/結果のペアリング。
  * ツール呼び出し ID をサニタイズします (`_`/`-` を保持する非厳密モードを含む)。
* ランナーはプロバイダー固有のサニタイズも実行しており、作業が重複していました。
* プロバイダー ポリシーの範囲外で、次のような追加の変異が発生しました。
  * 永続化の前にアシスタント テキストから `<final>` タグを削除します。
  * 空のアシスタントをドロップするとエラーが発生します。
  * ツール呼び出し後のアシスタント コンテンツのトリミング。

この複雑さにより、クロスプロバイダーのリグレッション (特に `openai-responses`) が発生しました。
`call_id|fc_id` ペアリング)。 2026.1.22 のクリーンアップにより、拡張機能が削除され、一元化されました
ランナーのロジックを組み込んで、画像のサニタイズを超えた OpenAI **ノータッチ**を実現しました。
