AI-translated from English; not yet reviewed by a fluent editor.
# 두 에이전트에 같은 검토된 메모리 기록 제공하기
> 원본에 따라 승인한 자료형이 있는 메모리 기록을 저장하고 정확히 검토된 바이트를 두 개의 허가된 세션에 제공한 뒤, 조건부 업데이트와 충돌 해결을 확인합니다.
By BIG CHANGE Editorial
Published: 2026-10-20T13:57:38.593Z
Updated: 2026-10-20T13:57:38.593Z
Canonical: https://bigchange.ai/blog/managed-agents-reviewed-memory-snapshot-guide

AI-generated conceptual illustration by BIG CHANGE.
Anthropic의 Managed Agents 메모리 저장소는 세션 사이에 텍스트를 유지할 수 있습니다. 두 에이전트에 같은 검토된 사실을 제공해야 하는 앱에서 영속 저장은 첫 단계일 뿐입니다. 앱은 기록의 소유자를 정하고 원래 증거를 확인하며 저장된 리비전 하나를 선택하고 어느 에이전트가 보기 전에도 정확한 바이트를 보존해야 합니다. 이 가이드는 Managed Agents 베타에 정식 접근할 수 있고 앱 인증, 저장소 선택, 에이전트 구성을 통제하는 개발자용입니다. 근거는 [Anthropic의 현재 메모리 문서](https://platform.claude.com/docs/en/managed-agents/memory) 및 2026년 10월 20일 확인한 API 참조입니다. BIG CHANGE는 계정이나 모델 테스트를 실행하지 않았습니다.
## 핵심 변화
- **달라진 점:** 검토된 자료형이 있는 JSON 메모리를 Managed Agents 저장소에 유지할 수 있습니다. 앱은 원본과 정확히 저장된 바이트를 확인하고 비공개 스냅샷 하나를 고정한 뒤 메모리 저장소 연결 없이 동일한 승인 바이트를 별개의 허가된 두 세션에 보냅니다.
- **중요한 이유:** 나중에 저장소를 편집해도 해당 세션을 위해 이미 구성한 입력은 바뀌지 않습니다.
- **주의할 점:** 원본 정확성, 사용자 권한, 답변 품질은 여전히 별도 검사가 필요합니다.
## 시작하기 전에
실제 사실, 선호, 프로젝트 규칙 하나와 사용 허가가 있는 원본, 안정적인 원본 ID 및 리비전, 저장과 두 에이전트 역할에 대한 공개를 승인하는 소유자를 준비하세요. 검토 전에 기록에 맞는 검토 유효기간을 정합니다. Managed Agents 베타 접근 권한, 비공개 API 키, 허가된 워크스페이스, 구성된 두 에이전트 ID, 환경, 계정에서 허용된 모델을 확인하세요. 이 절차의 제한된 소비 세션 네 개를 허용하기 전에 현재 사용량과 가격을 살펴봅니다. 키는 프롬프트나 증빙 기록에 넣지 마세요.
앱에는 인증된 주체와 범위의 매핑이 필요합니다. 신뢰하는 앱 상태에서 주체를 승인된 `ownerScopeId`, 워크스페이스 ID, 저장소 ID, 허용된 두 에이전트 ID에 연결합니다. 접근 규칙이 다른 비공개 사용자나 프로젝트는 저장소를 분리하세요. 워크스페이스 API 키는 최종 사용자를 인증하지 않으며 경로는 테넌트 경계가 아니고 프롬프트는 도구나 자격 증명을 제거할 수 없습니다. 두 소비자 구성 모두 저장소 연결이 없고 가변 저장소로 가는 커넥터, 환경 자격 증명, 도구 경로도 없는지 확인하세요. 이 경계를 확립할 수 없다면 기록을 보내기 전에 중단합니다.
## 1. 원본과 대조해 기록 승인하기
다음 **구조 템플릿**을 사용하여 꺾쇠괄호 안의 모든 값을 실제 승인 증거로 바꾸세요. 예시 사실이나 주장한 결과가 아닙니다. 승인 전에 완성된 객체를 정확한 UTF-8 JSON 텍스트 하나로 직렬화합니다. 검증기는 정확히 이 필드와 자료형만 허용하고 알 수 없는 필드는 거부하며 빈 문자열이나 공백만 있는 문자열은 허용하지 않고 유효한 UTC 타임스탬프를 요구해야 합니다. `kind` 값은 `fact`, `preference` 또는 `project_rule` 값으로, `status` 값은 `active`, `disputed` 또는 `superseded` 값으로 제한합니다. 주입할 수 있는 기록은 `active` 상태뿐입니다. 승인된 주장은 효력 발생일과 범위를 포함해 인용한 원본과 일치해야 합니다.
```json
{
"schemaVersion": "memory-record/v1",
"recordId": "<opaque stable record ID>",
"ownerScopeId": "<trusted mapped scope ID>",
"kind": "<fact | preference | project_rule>",
"claim": "<precise source-supported claim>",
"sourceId": "<private original-source ID>",
"sourceRevision": "<original revision or exact source hash>",
"sourceQuoteOrPointer": "<minimal permitted quote or stable pointer>",
"validFrom": "<UTC timestamp>",
"checkedAt": "<UTC timestamp>",
"status": "active",
"reviewerId": "<approved human reviewer ID>",
"reviewedAt": "<UTC timestamp>"
}
```
앱의 비공개 승인 증빙에는 실제 승인자, 소유자 허가, 원본과 리비전, 범위와 허용 에이전트, 유효기간 규칙, 이 **정확한 UTF-8 JSON 바이트**의 SHA-256이 있어야 합니다. 실제 주장에 대한 사람의 결정을 기록합니다. 기록의 `reviewerId` 문자열은 인증이 아닙니다. 모순이 해결되지 않았거나 허가가 없는 기록은 저장하지 마세요. Anthropic은 텍스트를 저장할 뿐 이 스키마를 검증하거나 주장이 참임을 확립하지 않습니다.
## 2. 저장하고 다시 읽기
허가된 워크스페이스에서 범위가 좁은 메모리 저장소를 만들거나 선택하고 실제 `memstore_...` ID를 기록하세요. 민감하지 않은 경로, 예를 들어 `/records/{opaque-record-id}.json`를 사용합니다. 요청 전에 작업자, UTC 시각, 원본 리비전, 승인 바이트 해시, 저장소와 경로, `pending` 상태를 기록하세요. 저장소 직접 호출에는 `agent-memory-2026-07-22`, 세션 호출에는 `managed-agents-2026-04-01`를 사용합니다. Anthropic에 따르면 저장소 요청에 두 베타 헤더를 함께 넣으면 HTTP 400이 반환됩니다. [생성 참조 문서](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create)와 메모리 매뉴얼은 다음 SDK 형식을 보여 줍니다. 설치한 SDK를 현재 참조와 대조하세요.
```python
mem = client.beta.memory_stores.memories.create(
store.id,
path="/records/<opaque-record-id>.json",
content=approved_json_text,
)
```
생성은 기존 경로를 덮어쓰지 않습니다. 반환된 `mem_...` ID를 저장한 뒤 범위가 정해진 저장소에서 `/records/` 목록을 조회하고 각 `next_page` 값을 다음 `page` 값으로 사용합니다. 기본 목록에는 내용이 없습니다. [선택한 메모리 조회](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve) 작업에서 ID를 지정해 전체 텍스트를 얻고 저장소 ID, 메모리 ID, 경로, 내용, `content_sha256`를 승인 바이트와 비교하세요. 응답과 직접 재조회를 로그와 레지스트리에 기록합니다. 생성 응답만으로는 완료 검사가 되지 않습니다. 응답이 불확실하면 정확한 경로와 직접 기록을 조사한 뒤 결과를 판단하세요. 검색에 안 나온다는 사실만으로 생성을 반복해서는 안 됩니다.
## 3. 선택한 리비전 고정하기
이후 실행마다 호출자를 인증하고 신뢰하는 레지스트리에서 범위, 저장소, 선택한 기록 ID를 확인합니다. 탐색이 필요하면 제한된 접두사의 모든 페이지를 조회한 뒤 선택한 `mem_...`를 직접 가져오세요. **반환된 내용**의 UTF-8 인코딩에 대해 SHA-256을 계산하고 제공업체의 `content_sha256` 및 사람이 승인한 정확한 바이트 해시와 비교한 뒤 JSON을 다시 검증합니다. 기록 ID, 소유자 범위, 원본 리비전, `active` 상태, 원본의 현재 유효성, 미리 정한 기한을 확인하세요. 어느 하나라도 실패하면 아무것도 보내지 않습니다.
가져온 정확한 바이트를 해당 해시로 주소를 지정하는 비공개 저장소에 한 번만 쓰세요. Python의 `open(path, "xb")` 같은 배타적 생성 방식을 사용합니다. 즉시 파일을 다시 읽고 해시를 계산하며 **매번** 보내기 전에도 확인합니다. 기존 스냅샷을 덮어쓰지 마세요. 부분 파일이나 같은 주소에 이미 다른 바이트가 있으면 보류하고 대조하여 해결해야 합니다. 원래 승인, 저장소 ID, 메모리 ID, 제공업체 해시, 스냅샷 해시, 범위 결정을 비공개 조회 증빙에 보존하세요. 한 번 쓰는 이 스냅샷은 앱 설계이며 특정 버전으로 고정된 Anthropic 마운트가 아닙니다.
## 4. 동일한 바이트를 두 새 세션에 제공하기
실제 허가된 에이전트와 환경 ID로 에이전트 A의 새 세션을 만들고 **다음 필드에는 메모리 저장소 항목을 넣지 않습니다: `resources`**. 반환된 세션 리소스와 에이전트의 실제 도구 및 자격 증명이 다른 저장소 접근 경로를 남기지 않는지 확인합니다. Anthropic의 [세션 가이드](https://platform.claude.com/docs/en/managed-agents/sessions)는 생성과 `user.message` 전송을 별도로 설명합니다.
```python
session = client.beta.sessions.create(
agent=approved_agent_id,
environment_id=approved_environment_id,
)
client.beta.sessions.events.send(
session.id,
events=[{"type": "user.message", "content": [{"type": "text", "text": message_text}]}],
)
```
다음 호출 `events.send` 전, 비공개 스냅샷을 다시 읽고 해시를 확인하세요. `message_text` 구성은 명시적인 “검토된 데이터” 라벨, 기록·원본·검토 식별자, 변경되지 않은 JSON 텍스트와 SHA-256, 원본에서 답할 수 있는 좁은 질문을 이용해 결정적으로 만듭니다. 표시된 필드는 **앱 메시지 형식** 쪽에 속하며 제공업체 응답 필드가 아닙니다. 보내기 전 전체 UTF-8 메시지 바이트와 해시, 선택한 스냅샷 해시, 허가된 에이전트 ID, 세션 ID, 전송 상태를 기록하세요. 전송 결과와 실제 전송 이벤트 ID, 또는 가능하면 이벤트 목록 재조회 결과를 보관합니다. 결과를 모르면 이벤트를 다시 읽어야 하며 무작정 재전송하면 안 됩니다.
별도로 승인된 에이전트 ID를 사용해 B의 두 번째 새 세션을 만들고 마찬가지로 저장소 접근을 없애세요. **한 번만 쓴 동일한 스냅샷**을 다시 읽어 바이트 해시를 확인하고 B의 전체 메시지를 구성·기록한 뒤 보냅니다. 두 메시지의 작업 질문이나 수신자 메타데이터는 달라도 되지만 내장 JSON 바이트와 승인 기록 해시는 같아야 합니다. 각 답변과 도구 이벤트를 원본과 대조하세요. 그럴듯한 답변이나 인용만으로는 모델이 내부적으로 주입 텍스트에 의존했음을 입증할 수 없습니다. 메시지와 제공업체 이벤트 증빙은 앱이 무엇을 제공했는지를 보여 줍니다. 어느 세션이든 활성 마운트나 다른 저장소 경로가 있으면 보내지 마세요.
## 5. 원본을 새로 검토한 뒤에만 업데이트하기
원본이 바뀌면 현재 메모리를 직접 가져와 소유자와 이전 및 새 증거를 비교하세요. 안정적인 기록 ID, 수정한 주장 또는 원본 참조, 새 원본 리비전, 확인·검토 시각을 포함한 정확한 대체 JSON 바이트를 사람이 승인하도록 합니다. 이전 증빙과 해시를 보존하세요. `mem_...` ID, 현재 직접 읽은 `content_sha256`, 예정 대체 해시, 작업자, 승인, 대기 상태를 기록합니다. 문서의 [조건부 업데이트](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update)는 다음과 같습니다.
```python
client.beta.memory_stores.memories.update(
memory_id=memory_id,
memory_store_id=store_id,
content=approved_replacement_json_text,
precondition={"type": "content_sha256", "content_sha256": fresh_old_hash},
)
```
제공업체는 정규화하지 않고 정확한 UTF-8 내용의 해시를 계산합니다. 불일치하면 HTTP 409 `memory_precondition_failed_error`가 반환됩니다. 이 응답이나 불확실한 네트워크 결과를 받으면 현재 메모리를 다시 가져오고 필요에 따라 버전 기록을 조사하세요. 충돌하는 원본 리비전을 비교하고 소유자에게 병합, 거부, 또는 새로운 정확한 대체 내용 승인을 요청합니다. 오래된 쓰기를 무작정 다시 시도하지 마세요. 성공 후 직접 조회로 경로, 전체 대체 텍스트, 해시, 메모리 버전 ID를 확인해야 로그 상태를 `confirmed`로 바꿀 수 있습니다.
검증한 리비전에서 **새로운** 승인 스냅샷을 고정하세요. 저장소 마운트가 없는 허가된 A·B 새 세션을 시작하고 두 번의 전송과 원본 검사를 반복합니다. 이전 스냅샷을 바꾸거나 이미 보낸 메시지가 스스로 업데이트된다고 주장하지 마세요. 이전 스냅샷은 향후 주입에 사용할 수 없도록 표시합니다. 소유자가 기록을 철회하면 새 전송을 멈추고 보존·삭제 정책을 적용하세요. 현재 메모리 삭제가 보관된 버전까지 없애지는 않을 수 있습니다. 전체 저장소 보관 처리나 삭제는 별도 결정입니다.
## 완료로 인정하는 조건
비공개 증빙은 원래 허가와 원본 리비전을 정확한 승인 JSON 해시에 연결해야 합니다. 실제 워크스페이스·저장소·경로·`mem_...` 식별 정보 및 생성 후 직접 재조회, 불변 스냅샷 하나, 마운트 없는 서로 다른 허가 세션 ID 두 개와 전송 메시지 해시 및 원본 대조 답변, 승인된 조건부 업데이트와 새로운 직접 재조회 및 새 세션 검사가 이어져야 합니다. 연결 중 하나라도 불명확하면 전체 실습을 미완료로 표시하고 정확한 보류 이유를 남기세요. 실제 실행 시 세션·도구 사용량과 계정별 비용을 기록합니다. 문서 기반인 이 가이드는 절약이나 모델 성능을 측정하지 않았습니다.
관련 있지만 다른 작업인 [후속 세션용 Dream 출력 한 건 검토하기](https://bigchange.ai/blog/claude-managed-agents-reviewed-dream-memory-guide)는 생성된 저장소 제안을 다룹니다. 여기의 절차는 소유자가 승인한 원본 기록에서 시작해 두 소비자에게 무엇을 전달할지 정확히 고정합니다.
## Sources
- [Anthropic Managed Agents 메모리 매뉴얼](https://platform.claude.com/docs/en/managed-agents/memory) — 베타 헤더, 워크스페이스 텍스트 저장소, 가변 마운트, 버전, 제한을 설명합니다. 최종 사용자 인증, 주장 진실성 검증, 마운트 저장소를 승인 리비전으로 고정하는 기능은 아닙니다.
- [Anthropic 메모리 생성 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/create) — 경로·내용 생성과 반환 식별 정보를 설명합니다. 이 가이드에서 생성을 실행하지 않았으며 앱 검증과 승인은 별개입니다.
- [Anthropic 메모리 목록 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/list) — path_prefix, next_page 페이지 처리, 내용 없는 기본 결과를 설명합니다. 선택 기록 전체를 직접 읽는 절차는 여전히 필요합니다.
- [Anthropic 메모리 조회 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/retrieve) — 내용·해시 재조회를 위한 선택 메모리의 전체 조회를 설명합니다. 원본 정확성과 범위는 앱의 확인 사항입니다.
- [Anthropic 메모리 업데이트 API](https://platform.claude.com/docs/en/api/beta/memory_stores/memories/update) — 정확한 UTF-8 content_sha256 사전 조건과 HTTP 409 memory_precondition_failed_error를 설명합니다. 사람의 충돌 해결은 이 가이드가 제안하는 앱 정책입니다.
- [Anthropic 세션 시작](https://platform.claude.com/docs/en/managed-agents/sessions) — 에이전트·환경 세션 생성과 events.send를 통한 user.message를 설명합니다. 이 가이드에서는 세션을 실행하지 않았습니다. 마운트 없는 비공개 스냅샷과 메시지 로그는 앱 통제 장치입니다.
- [BIG CHANGE: 한 번의 Dream으로 Claude Managed Agent 메모리 저장소 검토하기](https://bigchange.ai/blog/claude-managed-agents-reviewed-dream-memory-guide) — 출력 한 건을 검토하는 관련 가이드입니다. 이 글의 자료형 있는 두 에이전트용 정확한 스냅샷 수명 주기를 입증하지 않습니다.
BIG CHANGE 뉴스레터
큰 그림을 나만의 속도로.
AI와 로봇공학에 관한 최신 기사, 주목할 변화, 활용할 수 있는 실용적인 아이디어입니다. 일일 브리핑, 주간 다이제스트 또는 월간 전망을 선택하세요.
다음 예정 발송(UTC): . 확인 후 다음 예정 발송 시간에 첫 호를 받게 됩니다.
개인정보는 이용자가 선택합니다.
필수 저장소는 사이트 보안을 지원하고 선택 사항을 기억합니다. 선택 사항인 Google Analytics는 허용하기 전까지 꺼져 있습니다. 필수 저장 기능만 사용해 모든 기사를 읽을 수 있습니다. 개인정보 보호 세부 정보