No. 004ガバナンス1 分で読める

エージェントの回答を再現する:耐えうるAI監査証跡

自社エージェントの行動を再構成できる組織はわずか17%。2026年8月2日以降、EU AI法は記録の存在を義務付ける。それを支えるのが再現性だ。

あなたのスタックのどこかで、エージェントはすでにある数値を生成している——いつか監査人の前に置かれることになる数値を。それは計算されたのか、生成されたのか、あなた自身にもわからないかもしれない。誰かがその数値をデッキに貼り付け、デッキは世に出た。数か月後、本番AIシステムが必ず直面する問いが届く:この数値はどこから来たのか、そして今日また同じ値が得られるのか?

ほとんどのチームはトランスクリプトで答える。2026年第1四半期に本番でAIエージェントを運用する420組織を対象とした調査では、特定のエージェントタスクに関するツール呼び出し・入力・出力の完全な連鎖を事後に再構成できたのはわずか17%だった(AgentNode, 2026)。残り83%は、ログが断片的か、まったく存在しないか、モデルの推論は記録されていても実際の呼び出しは記録されていなかった。トランスクリプトと感覚だけ。

17% full tool-call sequence reconstructable 83% partial logs · no logs · reasoning without invocations 0 25 50 75 100%
エージェントタスクの全工程——すべてのツール呼び出し、入力、出力——を事後に再構成できた組織の割合。n = 420 · AgentNode, Q1 2026。

記録は法律になりつつある

しばらくの間、これはエンジニアリング上の恥だった。それが法的な恥になろうとしている。

EU AI法は、高リスクAIシステムに対し、「システムの存続期間にわたるイベントの自動記録(ログ)」を技術的に可能にすること——後付けではなく、設計に組み込まれた形で——を要求している(European Commission, 2024)。手動の記録管理では第12条を満たさない。ログは、リスクや重大な変更をもたらしうる状況を特定し、市販後監視を支援し、システムの実際の動作を監視するに足るものでなければならない。遠隔生体認証については、最低限の要件が明示されている:使用期間ごとに、照合したデータベース、一致につながった入力データ、結果を検証した自然人。これは「ログをある程度保持せよ」ではない。意思決定を再構成せよということだ。

期日は迫っている。同法は2024年8月1日に発効し、禁止事項は2025年2月から、汎用モデルの義務は2025年8月から適用された——そして高リスク義務(第12条を含む)は2026年8月2日から適用される(Future of Life Institute, 2026)。この記事の公開日から8日後だ。規制対象製品(附属書I)に組み込まれた高リスクシステムは2027年8月に続く。

Aug 2024 · in force Feb 2025 · prohibitions Aug 2025 · GPAI rules Aug 2026 · high-risk logging (Art. 12) Aug 2027 · Annex I products today · 25 Jul 2026 · 8 days out
規則(EU)2024/1689の適用日——附属書III高リスクのログ義務は2026年8月2日から拘束力を持つ。出典:artificialintelligenceact.eu。

保存期間にも下限がある。提供者は自動生成されたログを少なくとも6か月保持しなければならず、第26条第6項は展開者にも同様の義務を課している——GDPRなど他の法律が要求する場合はそれ以上、いずれの場合も最低限ではなくシステムの意図された目的に見合った期間(artificialintelligenceact.eu, 2024)。

これらは真空の中に現れたわけではない。GDPR第30条は2018年以来、処理の書面記録——目的、データのカテゴリ、受領者、消去期限、セキュリティ措置——を要求し、監督当局の求めに応じて提示できるようにすることを義務付けている(gdpr-info.eu, 2016)。SOC 2のCC7.2はシステムコンポーネントの異常を監視し発見事項を分析することを求め、CC7.3はイベントが目標を損なったかどうかを評価することを求める(AICPA, 2022)。Type II監査では、これらの基準はレビュー期間全体——通常12か月——にわたるログ証拠に対して検証される(AgentNode, 2026)。監査人が訪問した日のスクリーンショットではない。

「ログを増やす」が失敗する理由

反射的な対応は冗長化だ:トレースを有効にし、すべてを保存し、ダッシュボードを購入する。しかし三つの問題は残る。

トランスクリプトは発言を記録するが、実行を記録しない。 チャットログはモデルが自身の動作を語ったものだ。先の83%のうちの一群はまさにこれだ:推論は記録されているが、ツール呼び出しは記録されていない。語りと実行が食い違うとき、トランスクリプトは平然としている——計算されたものと生成されたものはページ上では同じに見える。しかし両者は別物だ。

再実行できないログは証言であり、証拠ではない。 すべてのツール呼び出しを記録しているチームでさえ、それを再び実行して比較することは通常できない。なぜなら、それが実行された世界を固定したものが何もないからだ。SQL はその日に新たに生成され、その後変化したデータベースに対して実行された。算術はそもそも安定していないモデルからサンプリングされた。それを6か月——あるいは12か月——保持することは、主張をより長く保存することであり、検証可能にすることではない。第12条の文言は正確だ:システムは記録を技術的に可能にしなければならない。設計に組み込まれていない再現性は、ロギングライブラリで後付けすることはできない。

メタデータは正確性ではない。 最低限の監査記録——トレースID、タイムスタンプ、エージェントIDを含む6つのコアフィールド(AgentNode, 2026)——は誰がいつかを確立する。その数値が正しかったかどうか、あるいは今日も同じ結果が出るかどうかについては何も語らない。LLMエージェントの観測可能性に関する研究も同じ結論に至っている:トレーサビリティはメッセージだけでなく、エージェントライフサイクル全体のアーティファクトをカバーしなければならない(CSIRO Data61, 2024)。

失敗は構造的だ。自由形式の実行——モデルが文字列を出力し、それを別の何かが実行する——は、どれだけ書き留めても、記録するに足る安定したものを何も生み出さない。

結果の属性としての出所証明

SQAIの答えは、記録をロギングの機能ではなく実行の属性にすることだ。すべての実行済み結果は4つのハッシュを持ち、それぞれが個別の監査上の問いに答える:

  • contract_hash実行できたもの:有効なケイパビリティコントラクト(sha256:79f1c5a6c716…)。
  • plan_hash — リクエストが解決されたもの:検証済みプランと、その解決の記録(decision_path: "exact_spec")。
  • invocation_hash何が、何に対して実行されたか:ケイパビリティと正規化された入力、データの状態を示すinput_hashを含む。
  • computation_hash何が出力されたか:呼び出しと値の両方に束縛される。

構成はドメイン分離されており、あるアーティファクトが別のものを偽装することはできない:

invocation_hash  = sha256("sqai:invocation:v1\0" + canonicalJson(identity))
computation_hash = sha256("sqai:computation:v1\0" + invocation_hash + canonicalJson(value))

ハッシュとともに決定論エンベロープが付随する——記録された実行環境:runtime_bundle_version 0.1.0とそのsha256、プラットフォームとアーキテクチャ、precision_mode: float64thread_count: 1、そして必要な場合のシード。シードを必要とする10のシミュレーションケイパビリティはそれなしでは実行を拒否する——seed_requiredであり、黙って異なる答えを返すことはない。数値を変えうるすべての要素は、固定されるか記録される。

contract_hash plan_hash invocation_hash computation_hash what could run what it resolved to what ran, on what what came out sha256:79f1c5a6c716… decision_path: exact_spec includes input_hash bound to invocation + value envelope: runtime_bundle 0.1.0 · sha256-pinned · platform · arch · float64 · thread_count 1 · seed?
4つのドメイン分離ハッシュがすべての実行済み結果に付随し、エンベロープがそれを生成した環境を記録する。

これが具体的に何をもたらすか。3月、エージェントが正味現在価値を計算する:

finance.npv(0.1, [-1000, 300, 420, 560, 680])
→ 505.020148896933
computation_hash b74f67d0d7a594aa…

7月、監査人が問い合わせる。同じ型付きスペック、同じ固定ランタイムで呼び出しを再現し、ハッシュを比較する:b74f67d0d7a594aa…——バイト単位で同一。TypeScriptで実行するかPythonで実行するかは関係ない。canonicalJsoncanonical_jsonはクロス言語シリアライゼーション契約——キーはソート済み、-00に正規化、Unicodeエスケープは固定——であり、同じ値は同じバイト列を生み、両言語で同じハッシュになる。決定論ページでは、数か月離れた2つのエンベロープを並べて示している。

そして再現が一致しないとき、それはシグナルだ。変更されたソースはschema_revision_mismatchで明示的に失敗する——エンジンは異なるデータに対して黙って異なる数値を計算し、それを過去のものとして帰属させることを拒否する。不一致は何が変わったかを明示する。

これを義務に照らし合わせる。システムの存続期間にわたる自動記録:すべての実行済み結果は構造上自己記録する——実行サーフェスは自由形式の文字列ではなく型付き入力を持つ4,574の読み取り専用ケイパビリティであるため、記録されない経路は存在しない。6か月または12か月の保存:結果エンベロープを保存すれば、保存は考古学ではなくストレージの判断になる。SOC 2レビュー期間をカバーする証拠:アーティファクトそのものが証拠であり——監査人への回答は調査ではなく再現だ。同じパイプラインがすべてのケイパビリティの記録を生成し、永続的な監査証跡はSQAIのProティアに含まれる。

8日後、そしてその後のすべての監査

8月の期日はEUにおける高リスクシステムを正式に拘束する。しかしこのような期限は、その後に続くすべてのレビューの雛形を設定する——SOC 2監査人、調達アンケート、1月の数値について3月に問い合わせてくる自社のCFO。エージェントは従業員と同じように、記録をもって回答を正当化することを求められるようになる。生成されたSQL とサンプリングされた算術は記録するに足る安定したものを何も残さないため、ほとんどのスタックはそれができない——これは監査のずっと前から始まる問題だ。

再現できる回答は、守ることができる回答だ。それ以外はすべてスクリーンショットに過ぎない。