AIKernel.NET
version: 0.0.2 / status: Refactor / edition: Draft / published: 2026-05-16 / updated: 2026-05-16

06. Replay Dump Spec

1. Purpose

決定論的再実行と監査を成立させるための実行ダンプ契約を定義する。AIKernel.NET における決定論的とは、入力の同一性のみならず、実行時のモデル環境および計算リソース条件が完全に固定されている状態を指す。

2. Scope

  • DumpId
  • KernelVersion
  • Seed
  • InferenceParameters(Temperature 等)
  • LockedProviderInfo(実行モデルの固定情報)
  • ComputeShapeIComputeShapeAdvisor の判定結果)
  • PromptArtifactHash
  • PipelineDefinitionHash
  • MaterialSnapshotHashSet
  • ExecutionOutcomeHash
  • TrustDecision
  • KeyId

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 セマンティック・スナップショット: ContextCollectionOrchestration / Material / Expression を ROM 形式でキャプチャし、それぞれの Semantic Hash を記録しなければならない(MUST)。
  • RDS-007 信頼チェーンの包含: ISignatureTrustStore の判定結果(TrustDecision)および署名鍵識別子(KeyId)を記録しなければならない(MUST)。

3.1 Deterministic Replay Lock Contract

  • RDS-LOCK-001 Replay Dump は ReplayContext.LockedProviderInfo を必須フィールドとして保持しなければならない(MUST)。
  • RDS-LOCK-002 LockedProviderInfo には最低限 ProviderId, ModelId, QuantizationProfile, CapacitySnapshot を含めなければならない(MUST)。
  • RDS-LOCK-003 Replay 実行時に LockedProviderInfo と実行環境(利用可能な Provider 等)が不整合な場合、システムは Fail-Closed で Abort しなければならない(MUST)。

4. Fail-Closed

  • RDS-F001 ハッシュチェーン不一致時はリプレイ拒否。
  • RDS-F002 必須フィールド(特に LockedProviderInfo)欠落時はロード拒否。
  • RDS-F003 重大バージョン非互換時は停止。
  • RDS-F004 Environment Divergence: リプレイ環境が当時の LockedProviderInfo と致命的に乖離する場合、実行を遮断する。
  • RDS-F005 Broken 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 は以下の手順でダンプを再現する。

  1. Integrity Check
  2. 全ハッシュチェーンを検証し、改ざんがないことを確認する。

  3. Environment Emulation
  4. LockedProviderInfo を読み込み、Force Provider Mode を適用する。

  5. State Unfreezing
  6. Frozen Buffers から ROM をロードし、当時の ContextCollection を復元する。

  7. Shadow Execution
  8. 固定された条件(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