仕様

仕様ドラフト v0.2 は、L0 Files から L4 Sync まで、累積する 5 つの準拠レベルを定めます。各レベルは、一組のコンセプトと、一組の実行可能な受け入れテストに対応します。conformance.json のない「互換」の主張は受け付けません。

v0.2 仕様ドラフト 更新日

草案

参照実装も、実行できる準拠テストスイートも、まだありません。以下の受け入れテストは仕様の一部です。その役目は、「互換」という言葉を検証できるものにすることです。

仕様の構成要素

構成要素内容目標バージョン
Core6 つの名詞、Store の契約、ブランチと保護ツリー、マージ、ソフト削除。v0.3 ドラフト
Lease & Recordリースの形式(authorization_details のプロファイル)、記録と読み取りマニフェストの形式、explain。v0.3 ドラフト
Interfacesマウントの意味、Git と S3 の投影、HTTP API、MCP のツール面。v0.4 ドラフト
Memoryノートの規約、導出物とレシピ、予算つきの読み取り、証拠ポインタ。v0.4 ドラフト
Guardラベル、セッション汚染、ポリシーのプロファイル、Gate Card、忘却の報告。v0.5 ドラフト
Syncハンドオフバンドル、ラベルのしきい値、墓標(tombstone)。今後
Conformance Suite各レベルの実行可能な受け入れテスト。各バージョンと同時

準拠レベル

レベルは累積します。L2 を主張するなら、L0 と L1 も満たさなければなりません。

レベル名前カバーするコンセプト一言で
L0FilesAgent Home、Agent Branch履歴を持つディレクトリ。
L1AuthorityFlight Recorder、Capability Lease、Human Gate誰が、どの権限で、何をしたか。
L2MemoryAgent Memory、Budgeted Reads読めて、持ち運べる記憶。
L3GuardTrust Labels、Cascade Forget被害の限定。
L4Syncなし(任意)複数のノード。

L0 Files:履歴を持つディレクトリ

  1. 実行のブランチでファイルを変更しても、保護されたメインラインは変わらない。
  2. 保護ツリーへの直接の書き込みは、認証情報が有効でも拒否される。
  3. 保護ツリーのファイルを削除したあと、回収エリアから復元できる。
  4. エクスポートしてからインポートすると、バイト単位で同一のツリーと履歴が得られる。
  5. 標準的なビューを少なくとも 2 つ提供する:マウントと Git、またはそのどちらかと S3。

L1 Authority:誰が、どの権限で、何をしたか

  1. リースのないリクエストは拒否され、その拒否は記録される。
  2. 親より広い子リースの申請は拒否される。
  3. リースの期限が切れると、マウントは読み取り専用になる。失効は、実装が宣言した時間内に有効になる。
  4. どのリースも、スナップショットを削除できない。
  5. どのコミットも、実行、リース、読み取りマニフェストまで explain できる。
  6. 記録チェーンの検証が通る。1 件の記録を改ざんすると、検証は失敗する。
  7. 保護ツリーへのマージでは、Gate Card が NAS の計算した差分を示し、承認はダイジェストに束縛される。差分が変われば、承認は無効になる。

L2 Memory:読めて、持ち運べる記憶

  1. 索引をすべて削除して再構築したあと、黄金の想起テストが通る。
  2. Memory 層なしで、ノートを読める。
  3. すべての導出物が、レシピと入力を持つ。
  4. 予算つきの読み取りは、予算が小さすぎるときに縮退し、実際に返したビューを宣言する。
  5. 証拠ポインタを検証できる。コミットが変わったあとも、ポインタは元の内容を指し続ける。

L3 Guard:被害の限定

  1. B と C を持つリースの下で、external を読んだセッションが C 型の操作を起動すると、拒否されるか、ゲートに回される。
  2. 導出物は、入力のラベルの和集合を引き継ぐ。
  3. 汚染されたセッションが書いたノートは、自動で読み込まれない。
  4. 忘却の要求は、「カバーできない範囲」を含む報告を出す。リーガルホールドは忘却を妨げられる。
  5. ポリシーの評価は LLM を呼び出さない。ポリシーエンジンはモデルへの外向きの呼び出しを持たないので、監査できる。

L4 Sync:複数のノード

  1. 2 つのノードが同期したあと、ツリーが一致する。
  2. 許可レベルがより低いノードへ、機微度の高いオブジェクトを送らない。
  3. 忘却の墓標が、相手のノードへ伝わる。
  4. ハンドオフバンドルを、相手のノードで実行でき、リースは狭くなる一方である。

宣言の形式

実装は conformance.json を公開しなければなりません。準拠するレベル、各テストの結果、既知の差異を記したものです。このファイルのない「互換」の主張は受け付けません。

conformance.json
{
  "implementation": "example-nas",
  "version": "0.1.0",
  "spec": "0.2",
  "level": "L1",
  "tests": { "L0.1": "pass", "L0.2": "pass", "L0.3": "pass", "L0.4": "pass", "L0.5": "pass",
             "L1.1": "pass", "L1.2": "pass", "L1.3": "pass", "L1.4": "pass",
             "L1.5": "pass", "L1.6": "pass", "L1.7": "pass" },
  "deviations": ["L1.3: revocation takes effect within 60 seconds"]
}

バージョンと互換性

  • セマンティックバージョニング。0.x の間は、互換性を保証しない。
  • 新しいフィールドは、後方互換である。
  • 廃止するフィールドは、少なくとも 1 つのバージョンの間、警告期間を置く。

仕様がまだ定めていないこと

トランスポートプロトコルのバージョンの詳細、特定のポリシー言語、トークンの署名アルゴリズム、特定のストレージエンジン、そしてユーザーインターフェース。

このページを引用する

読者・検索エンジン・エージェントのための恒久的な URL と、推奨する引用形式です。

推奨する引用形式
Agent NAS project. “仕様.” agentnas.com, 2026-11-11. https://agentnas.com/ja/spec/