06. Replay Dump Spec
1. Purpose
決定論的再実行と監査を成立させるための実行ダンプ契約を定義する。AIKernel.NET における決定論的とは、入力の同一性のみならず、実行時のモデル環境および計算リソース条件が完全に固定されている状態を指す。
2. Scope
DumpIdKernelVersionSeedInferenceParameters(Temperature 等)LockedProviderInfo(実行モデルの固定情報)ComputeShape(IComputeShapeAdvisorの判定結果)PromptArtifactHashPipelineDefinitionHashMaterialSnapshotHashSetExecutionOutcomeHashTrustDecisionKeyId
3. Normative Requirements
RDS-001必須フィールドを欠落させてはならない(MUST)。RDS-002参照は Content Hash で解決可能でなければならない(MUST)。RDS-003時刻は UTC ISO-8601 で直列化する(MUST)。RDS-004キー順序は canonical ordering を用いる(MUST)。RDS-005非決定性の凍結(Freezing Non-Determinism):Seed、推論パラメータ(例:Temperature)、およびIComputeShapeAdvisorが選択した計算形状(基数、テンソル型)を完全記録しなければならない(MUST)。RDS-006セマンティック・スナップショット:ContextCollectionのOrchestration/Material/Expressionを ROM 形式でキャプチャし、それぞれの Semantic Hash を記録しなければならない(MUST)。RDS-007信頼チェーンの包含:ISignatureTrustStoreの判定結果(TrustDecision)および署名鍵識別子(KeyId)を記録しなければならない(MUST)。
3.1 Deterministic Replay Lock Contract
RDS-LOCK-001Replay Dump はReplayContext.LockedProviderInfoを必須フィールドとして保持しなければならない(MUST)。RDS-LOCK-002LockedProviderInfoには最低限ProviderId,ModelId,QuantizationProfile,CapacitySnapshotを含めなければならない(MUST)。RDS-LOCK-003Replay 実行時にLockedProviderInfoと実行環境(利用可能な Provider 等)が不整合な場合、システムは Fail-Closed で Abort しなければならない(MUST)。
4. Fail-Closed
RDS-F001ハッシュチェーン不一致時はリプレイ拒否。RDS-F002必須フィールド(特にLockedProviderInfo)欠落時はロード拒否。RDS-F003重大バージョン非互換時は停止。RDS-F004Environment Divergence: リプレイ環境が当時のLockedProviderInfoと致命的に乖離する場合、実行を遮断する。RDS-F005Broken Hash Chain:ExecutionOutcomeHashが入力/過程ハッシュ(Prompt/Pipeline/Material)から導かれる期待値と一致しない場合、改ざんまたは非決定性エラーとして中止する。
5. Acceptance Criteria
- AC1: 同一ダンプから同一再実行結果を再現できる。
- AC2:
LockedProviderInfoにより、動的ルーティングを介さず当時のモデルが強制選択される。 - AC3: 改ざんまたは主要パラメータ欠落ダンプは必ず拒否される。
- AC4: 環境乖離(モデルの消失等)が検知された場合、曖昧なフォールバックを行わず即座に停止する。
6. DTO Definition
再実行時のコンテキストを厳格に定義する不変(Immutable)データ構造。
public sealed record ReplayContext(\n string DumpId,\n LockedProviderInfo LockedProviderInfo,\n string InputHash,\n string MaterialHash,\n string PolicyHash,\n DateTime CreatedAtUtc);
7. Dump Architecture(ROM 形式のダンプ構造)
リプレイダンプは 1 つの ROM エンティティとして記述する。
---\nid: "dump.exec.20260504.001"\ntype: "kernel.replay_dump"\nkernel_version: "0.0.7"\nseed: 42\n---\n# Frozen Execution Environment\n* [locked_provider]: [[provider.openai.gpt4o]]\n* [quantization]: "fp16"\n* [shape_advisor]: [[advisor.npu_v1]]\n\n# Hash Integrity Chain\n* [prompt_hash]: "sha256:7f8e9a..."\n* [material_hashes]: ["sha256:e3b0c4..."]\n* [outcome_hash]: "sha256:9d8c7b..."\n\n# Frozen Buffers\n* [orchestration]: [[ref.rom.prompt_artifact]]\n* [material]: [[ref.rom.material_snapshot]]\n* [expression]: [[ref.rom.result_expression]]
8. Replay Sequence(再実行手順)
IKernelReplayer は以下の手順でダンプを再現する。
- Integrity Check
- Environment Emulation
- State Unfreezing
- Shadow Execution
全ハッシュチェーンを検証し、改ざんがないことを確認する。
LockedProviderInfo を読み込み、Force Provider Mode を適用する。
Frozen Buffers から ROM をロードし、当時の ContextCollection を復元する。
固定された条件(Seed/Model/Param)で再実行し、ExecutionOutcomeHash と照合する。
変更履歴
- v0.0.0 / v0.0.0.0: 初期ドラフト
- v0.0.1 (2026-05-06): ドキュメント規約に基づくバージョン更新
Source:
specs/06.REPLAY_DUMP_SPEC-jp.md