# 通信断を前提にしたAI運用

CURRENT_STATUS: CURRENT
OBSERVATION: SPEC_ONLY
FRESHNESS: CURRENT
PAGE_TYPE: reference
CANONICAL_URL: /tools/ea-476-ai
CLAIM_IDS: none
EVIDENCE_IDS: EVD-EA-476-URL-B5FB2E24A815, EVD-EA-476-URL-4B0DE84E8B3E, EA-476-CURRENT-APPROVAL, EA-476-CURRENT-BODY-READBACK
UNKNOWN_IDS: EA-476-UNKNOWN-01
OPS_IDS: none

## Summary
Offline-First AI Operationsは、ネットワークが切れてもモデルを実行できることだけを意味しません。通信断中に利用できるモデル・データ・権限・保存容量を明確にし、古い情報で許してよい処理と停止すべき処理を分け、再接続後に権限と状態を照合してから外部への変更を解放する運用です。推論の継続、業務行為の許可、キューの配送、外部状態の整合は別の成立条件です。

## Current judgment
AWS IoT Greengrassのoffline authenticationは、クラウドへの初回照合後に端末情報をローカルへ保持し、クラウドへ接続できない時にその情報でクライアントを検証する構成を説明しています。保持期間を設定するclientDeviceTrustDurationMinutesがあり、認証コンポーネントの対象版・初期接続などの条件があります[S1]。これは接続不能時にも最新の失効情報を確認できるという保証ではありません。

## Scope
通信断を前提にしたAI運用

## Confirmed
- AWS IoT Greengrassのoffline authenticationは、クラウドへの初回照合後に端末情報をローカルへ保持し、クラウドへ接続できない時にその情報でクライアントを検証する構成を説明しています。保持期間を設定するclientDeviceTrustDurationMinutesがあり、認証コンポーネントの対象版・初期接続などの条件があります[S1]。これは接続不能時にも最新の失効情報を確認できるという保証ではありません。

Azure IoT Edgeの資料は、一度同期した後のローカル処理と認証、切断中のメッセージ保存、再接続時の配送と設定差分の照合を説明しています。また、保存可能なメッセージはTTLとディスク容量の制約を受け、切断中はportal側の状態が更新されない場合があります[S2]。ここでの「動作を続けられる」は、無限の保存、全権限の鮮度、全業務での競合解決を意味しません。

これらのIoT基盤の仕様は、AIモデルそのものの精度や、利用組織の業務権限を認証するものではありません。以下では通信断中のAI処理へ適用する運用制御として整理します。

## UNKNOWN
- EA-476-UNKNOWN-01: 対象端末の版と構成、実測可能な切断期間、信頼できる時間源、失効・再承認契約、業務別競合規則、容量と復旧時間、異種端末間の収束、独立した本番事故と実機失効試験は未確認です。普遍的な即時失効・無損失・exactly-once・収束時間は主張しません。

## Evidence
- EVD-EA-476-URL-B5FB2E24A815 (RESEARCH): [S1] AWS IoT Greengrass, Authenticating clients while offline, Storing client credentials: — https://docs.aws.amazon.com/greengrass/v2/developerguide/offline-authentication.html
- EVD-EA-476-URL-4B0DE84E8B3E (RESEARCH): [S2] Microsoft, Understand extended offline capabilities for IoT Edge devices, How it works / Restrictions and limits / Optional offline settings（IoT Edge 1.6表示）: — https://learn.microsoft.com/en-us/azure/iot-edge/offline-capabilities
- EA-476-CURRENT-APPROVAL (RESEARCH): 現行本文の監査・revision対応
- EA-476-CURRENT-BODY-READBACK (IMPL): 現行本文の収録照合

## Failure / limits
想定する失敗は、初期資産不足、クラウド依存の認証・tool呼出し、期限切れ鍵、失効情報の未受信、時計の巻き戻し、容量不足、キューTTL超過、再送の二重適用、クラウドと端末の競合、古いモデル・policyでの効果解放です。これは故障モデルであり、本RUNで観測した製品事故ではありません。
## Failure / limits
オフライン継続は、現場の可用性とデータ局所性に有効です。一方で接続時の即時失効と切断時の無期限実行を同時に保証するとはいえません。AWSのcached認証とAzureのstore-and-forwardは異なる機構であり、同じ失効時間や配送保証を持つと扱いません。メーカーの運用仕様から、AIの業務効果が安全であるという結論も導けません。
## Failure / limits
権限期限、対象版、時計、保存容量、保留した効果の結果が不明な場合は、その効果を解放しません。接続回復や推論成功だけで正常復帰を宣言しません。
## PUBLIC_CLAIM
Offline-First AI Operationsは、ネットワークが切れてもモデルを実行できることだけを意味しません。通信断中に利用できるモデル・データ・権限・保存容量を明確にし、古い情報で許してよい処理と停止すべき処理を分け、再接続後に権限と状態を照合してから外部への変更を解放する運用です。推論の継続、業務行為の許可、キューの配送、外部状態の整合は別の成立条件です。

## ESTABLISHED
AWS IoT Greengrassのoffline authenticationは、クラウドへの初回照合後に端末情報をローカルへ保持し、クラウドへ接続できない時にその情報でクライアントを検証する構成を説明しています。保持期間を設定するclientDeviceTrustDurationMinutesがあり、認証コンポーネントの対象版・初期接続などの条件があります[S1]。これは接続不能時にも最新の失効情報を確認できるという保証ではありません。

Azure IoT Edgeの資料は、一度同期した後のローカル処理と認証、切断中のメッセージ保存、再接続時の配送と設定差分の照合を説明しています。また、保存可能なメッセージはTTLとディスク容量の制約を受け、切断中はportal側の状態が更新されない場合があります[S2]。ここでの「動作を続けられる」は、無限の保存、全権限の鮮度、全業務での競合解決を意味しません。

これらのIoT基盤の仕様は、AIモデルそのものの精度や、利用組織の業務権限を認証するものではありません。以下では通信断中のAI処理へ適用する運用制御として整理します。

## OPERATING_ENVELOPE
| 領域 | 切断前に固定するもの | 切断中に追跡するもの |
| --- | --- | --- |
| 推論資産 | モデル・tokenizer・runtime・設定・hash | 起動可否、互換性、資源枯渇 |
| 業務データ | データ版、同期時刻、利用目的 | 鮮度、欠損、ローカル訂正 |
| 権限 | 主体、対象、操作、最後の正本照合 | 有効期限、失効未受信、時計の信頼性 |
| キュー | 対象、操作ID、重複排除方針 | 滞留、容量、期限、処理結果不明 |
| 再接続 | 再照合・競合・再承認の手順 | 同期状態と効果の解放条件 |

この表は設計提案であり、AWS/Azureの共通APIや普遍的な保証ではありません。モデルの重みだけでなく、tokenizer、前処理、検索用データ、tool schema、ポリシー、復旧用設定を含む実行資産を用意します。追加downloadや認証更新が必要な依存先を列挙し、完全な通信断と部分断を分けます。

## QUEUE_AND_LOCAL_STATE
キューへ入れる時にoperation_id、主体、対象の識別子と版、意図した効果、作成時刻、期限、承認根拠、依存関係を記録します。暗号化、容量上限、保持期限、失敗時の保全を定め、disk fullで状態が失われる経路を確認します。保存成功と配送成功、配送成功と業務側の適用成功を分けて記録します。

処理結果が不明な外部書込みを、再接続後に無条件再実行してはいけません。相手側の操作IDや現在状態を調べ、重複した効果を起こさないことを確認します。相手が提供する冪等性の範囲を超えてexactly-onceを主張しません。順番に配送されたメッセージでも、別端末・クラウドで並行した業務更新との因果順序まで確定するとは限りません。

ローカルで生成した回答には、使用したデータ版と最終同期時刻を結び付けます。通信が戻るたびに全面再計算すると負荷が集中するため、重要な失効や業務上の変更を優先し、必要な再評価の対象を特定します。同期不能を隠して最新情報のように表示することは避けます。

## RECONNECT_AND_RECONCILIATION
再接続は通常運転へ即座に戻す合図ではありません。まず接続先と認証を確認し、現在の正本ポリシー、所属・失効情報、モデル・設定版、対象業務の現在状態を取得します。保留した効果は、作成時の承認が今も有効か、対象版が変わっていないか、期限を超えていないかを再確認してから処理します。

競合は対象ごとに解決規則を持たせます。上書きしてよい記録と、承認や再計画が必要な注文・資源割当などを分けます。複数端末が同じ在庫や権利を消費できる構成では、切断中にどの範囲まで権利を配分するかを事前に決めなければなりません。単なるlast-write-winsで業務上の整合が保てるとは限りません。

権限とデータの再照合、保留操作の処理、結果readbackをそれぞれ記録します。部分的に失敗した場合はその対象を保留したまま、独立して安全な閲覧・草案機能などを再開する設計が考えられます。再接続直後の大量再送にはbackpressureを設け、同期完了前の状態を完了と報告しません。

## FAILURE_ENVELOPE
想定する失敗は、初期資産不足、クラウド依存の認証・tool呼出し、期限切れ鍵、失効情報の未受信、時計の巻き戻し、容量不足、キューTTL超過、再送の二重適用、クラウドと端末の競合、古いモデル・policyでの効果解放です。これは故障モデルであり、本RUNで観測した製品事故ではありません。

## COUNTEREVIDENCE_AND_LIMITATIONS
オフライン継続は、現場の可用性とデータ局所性に有効です。一方で接続時の即時失効と切断時の無期限実行を同時に保証するとはいえません。AWSのcached認証とAzureのstore-and-forwardは異なる機構であり、同じ失効時間や配送保証を持つと扱いません。メーカーの運用仕様から、AIの業務効果が安全であるという結論も導けません。

## VERIFICATION_PROFILE
架空データと非破壊の操作先を用い、初回起動の通信断、認証済み状態の切断、切断中の権限失効、再起動、時計異常、disk full、キュー期限切れ、再接続前後の競合、結果不明な再送を分けて確認します。本RUNでは端末・クラウド・モデルを接続した実機試験を行っていません。文書で確認した仕様と提案する制御の範囲です。

## OPEN_UNKNOWN
対象端末の版と構成、実測可能な切断期間、信頼できる時間源、失効・再承認契約、業務別競合規則、容量と復旧時間、異種端末間の収束、独立した本番事故と実機失効試験は未確認です。普遍的な即時失効・無損失・exactly-once・収束時間は主張しません。

## SAFE_WORDING
「指定した資産・権限期限・容量・操作範囲でローカル処理を継続し、再接続後に正本状態と結果を照合する」とします。「通信が切れても常に同じ業務保証で動く」とは記述しません。

## 運用上の停止・確認条件
権限期限、対象版、時計、保存容量、保留した効果の結果が不明な場合は、その効果を解放しません。接続回復や推論成功だけで正常復帰を宣言しません。

## SOURCES_AND_PROVENANCE
EA-476-R1-20261012、継続Doc 1XpjZC_R1eHlIckvUaEaJ_mcj6YW6j0ihZ0b91z5vewUのEA-476節と2026-10-17の根拠充足判定を継承。2026-10-18に主要な製品仕様を再確認しました。旧保存障害は今回のraw保存・再取得・hash照合で解消し、過去の未保存を完了済みと推定していません。

- [S1] AWS IoT Greengrass, Authenticating clients while offline, Storing client credentials: https://docs.aws.amazon.com/greengrass/v2/developerguide/offline-authentication.html
- [S2] Microsoft, Understand extended offline capabilities for IoT Edge devices, How it works / Restrictions and limits / Optional offline settings（IoT Edge 1.6表示）: https://learn.microsoft.com/en-us/azure/iot-edge/offline-capabilities

NEXT: /agent/start.json
STOP: This is a knowledge projection, not an execution order.