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

Execution Contract Architecture

Structure -> Generation -> Polish のフェーズ境界と、各フェーズ間を接続する契約を定義する。

1. Purpose

従来の LLM アプリケーション(LangChain 等)では、単一プロンプトで「考える」「書く」「整える」を同時実行するため、表現(文体・装飾)が推論(論理構造)を歪める問題が発生しやすい。

AIKernel はこれらを物理的なフェーズとして分離し、フェーズ境界に Contract を配置することで次を実現する。

  • 推論出力と表現出力の物理的隔離: 表現の品質が論理の正しさを汚染(Attention Pollution)することを防ぐ。
  • フェーズ越境の防止: 「書きながら考える」非決定的挙動を排除する。
  • 監査性の向上: 論理確定フェーズと表現付与フェーズを追跡可能にする。

2. Phase Definition and Flow

2.1 Structure Phase(推論・構造化)

  • 責務: 入力情報から論理骨子と解決策データ構造のみを生成する。
  • 制約: 装飾的自然言語の出力を禁止し、スキーマ準拠の構造データ(Thought Artifact)のみを出力する。
  • 契約: IThoughtProcess

2.2 Generation Phase(生成・具体化)

  • 責務: 承認済み Structure 出力を入力として、Markdown/HTML/PlainText 等に具体化する。
  • 制約: 独自推論を追加してはならない。構造の翻訳に限定する。
  • 契約: IExecutionOutput

2.3 Polish Phase(研磨・調整)

  • 責務: 文体統一、トーン適用、禁止語チェック、書式微調整を行う。
  • 制約: 推論内容と事実関係を変更してはならない。
  • 契約: IOutputPolisher

3. Core Contracts (Interface Definitions)

AIKernel.Core では次の抽象を中心に定義する。

  • IThoughtProcess
  • ThoughtArtifact Execute(OrchestrationContext context)
  • 推論結論を導出する契約。出力は必ずスキーマ検証される。
  • IExecutionOutput
  • RawOutput Materialize(ThoughtArtifact artifact, ExpressionContext context)
  • 論理構造を表現形式へ変換する契約。
  • IOutputPolisher
  • FinalResult Polish(RawOutput raw)
  • 最終品質(可読性・規約順守)を整える契約。
  • ExecutionResult
  • 各フェーズ出力、使用モデルのメタデータ、署名情報を保持する不変コンテナ。

4. Boundary Rules

  • 一方向性原則: データフローは常に Structure -> Generation -> Polish。逆流とスキップは禁止。
  • State-Isolation: Generation フェーズは OrchestrationContext(生データ)を直接参照してはならない。ThoughtArtifact 経由を必須とする。
  • No-Inference in Polish: Polish フェーズで LLM を使う場合は低 temperature の決定論設定を必須とし、追加推論を誘発するプロンプトを禁止する。

5. Fail-Closed Rule

AIKernel は不確実な継続より安全停止を優先する。

  • Schema Validation Failure: Structure 出力が定義 JSON Schema に不適合なら即時停止し、後続 Generation を実行しない。
  • Integrity Breach: フェーズ間受け渡しデータのハッシュ署名不一致(改ざん検知)時は停止する。
  • Mandatory Field Missing: ReasoningPathConclusion など必須項目欠落時は、見かけ上妥当な出力でも Fail とする。

6. Implementation Guidance (C# / .NET)

// DIによるパイプライン合成のイメージ\npublic class ExecutionPipeline\n{\n    private readonly IThoughtProcess _planner;\n    private readonly IExecutionOutput _generator;\n    private readonly IOutputPolisher _polisher;\n\n    public async Task<ExecutionResult> RunAsync(InputData data)\n    {\n        // 1. Structure: 論理の確定\n        var artifact = await _planner.ExecuteAsync(data);\n\n        // 2. Generation: 表現への変換\n        var raw = await _generator.MaterializeAsync(artifact);\n\n        // 3. Polish: 最終調整\n        return await _polisher.PolishAsync(raw);\n    }\n}

変更履歴

  • v0.0.0 / v0.0.0.0: 初期ドラフト
  • v0.0.1 (2026-05-06): ドキュメント規約に基づくバージョン更新
Source: architecture/8.EXECUTION_CONTRACT_ARCHITECTURE-jp.md