명세

명세 초안 v0.2는 L0 Files부터 L4 Sync까지 누적되는 다섯 개의 적합성 수준을 정의합니다. 각 수준은 하나의 개념 묶음과 실행 가능한 인수 테스트 묶음에 대응하며, conformance.json 없이 “호환”이라고 주장하는 것은 받아들이지 않습니다.

v0.2 명세 초안 최종 수정

초안

참조 구현도, 실행할 수 있는 적합성 테스트 스위트도 아직 없습니다. 아래의 인수 테스트는 명세의 일부이며, “호환”이라는 말을 검증할 수 있게 만드는 것이 그 역할입니다.

명세의 구성 요소

구성 요소내용목표 버전
Core여섯 개의 명사, 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. 표준 뷰를 최소 두 가지 제공합니다. 마운트와 Git, 또는 둘 중 하나와 S3.

L1 Authority: 누가, 어떤 권한으로, 무엇을 했는가

  1. 리스 없는 요청은 거부되고, 그 거부는 기록됩니다.
  2. 상위 리스보다 넓은 하위 리스 요청은 거부됩니다.
  3. 리스가 만료되면 마운트는 읽기 전용이 되며, 취소는 구현이 선언한 시간 한도 안에 효력을 냅니다.
  4. 어떤 리스도 스냅샷을 삭제할 수 없습니다.
  5. 어떤 커밋이든 explain으로 실행, 리스, 읽기 매니페스트까지 거슬러 올라갈 수 있습니다.
  6. 기록 체인 검증이 통과하고, 기록 하나를 변조하면 검증이 실패합니다.
  7. 보호된 트리에 병합할 때 Gate Card는 NAS가 계산한 diff를 보여 주고, 승인은 다이제스트에 묶입니다. diff가 바뀌면 승인은 무효가 됩니다.

L2 Memory: 읽고 옮길 수 있는 메모리

  1. 모든 인덱스를 지우고 다시 만든 뒤에도 기준 불러오기(golden recall) 테스트가 통과합니다.
  2. Memory 계층 없이도 노트를 읽을 수 있습니다.
  3. 모든 파생물은 레시피와 입력을 지닙니다.
  4. 예산 읽기는 예산이 너무 작으면 품질을 낮추고, 실제로 반환한 뷰를 선언합니다.
  5. 증거 포인터를 검증할 수 있습니다. 커밋이 바뀐 뒤에도 포인터는 원래 내용을 가리킵니다.

L3 Guard: 결과를 제한하기

  1. B와 C를 가진 리스에서 external 콘텐츠를 읽은 세션이 C 유형의 동작을 일으키면 거부되거나 게이트로 넘어갑니다.
  2. 파생물은 입력 라벨의 합집합을 물려받습니다.
  3. 오염된 세션이 쓴 노트는 자동으로 로드되지 않습니다.
  4. 망각 요청은 “다루지 못한 범위”를 담은 보고서를 만들며, 법적 보존 조치(legal hold)는 망각을 막을 수 있습니다.
  5. 정책 평가는 LLM을 호출하지 않습니다. 정책 엔진은 모델로 나가는 호출을 하지 않으므로 감사할 수 있습니다.

L4 Sync: 여러 노드

  1. 두 노드가 동기화하면 트리가 동일해집니다.
  2. 매우 민감한 객체는 더 낮은 보안 등급(clearance)의 노드로 보내지 않습니다.
  3. 망각의 삭제 표지(tombstone)는 상대 노드로 전파됩니다.
  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 동안에는 호환성을 보장하지 않습니다.
  • 새 필드는 하위 호환됩니다.
  • 폐기 예정 필드는 최소 한 버전 동안 경고 기간을 둡니다.

명세가 아직 다루지 않는 것

전송 프로토콜의 버전 세부 사항, 특정 정책 언어, 토큰의 서명 알고리즘, 특정 스토리지 엔진, 사용자 인터페이스.

이 페이지 인용하기

사람, 검색 엔진, 에이전트를 위한 고정 주소와 권장 인용 형식입니다.

권장 인용 형식
Agent NAS project. “명세.” agentnas.com, 2026-11-11. https://agentnas.com/ko/spec/