# 에이전트 인스턴스 신원

귀속에 사용하는 비밀이 아닌 설치 라벨과 요청을 승인하는 자격 증명을 분리합니다.

- Canonical: https://docs.xmemo.dev/ko/docs/concepts/agent-instance-identity
- Locale: ko-KR
- Content-Locale: ko-KR
- Canonical-Content-Digest: c0db15eaca6541c974e88179495cf7a7f5832695889a2ff2abef284fd7daf337
- Edition-Digest: 0246dd9c8d3dc0737f2086d409801e3a041d638da69002786bbe7e91f289a0ab
- Source-Revision: sha256:af573969af4a97ad87f12425b51f333259b42a829512f8644875a77c1bba2ddb

## instance id는 credential이 아닙니다

XMEMO_AGENT_INSTANCE_ID는 로컬 client 또는 runner instance를 식별하며 요청을 승인하지 않습니다. API key 또는 OAuth grant가 access credential입니다. 서버는 instance value에서 agent_instance_id_hash를 만들고 boundary authority를 attribution_only로 보고합니다.

- Credential: X-API-Key 또는 허용된 OAuth bearer grant가 access를 제어합니다.
- Instance label: X-Memory-OS-Agent-Instance-ID를 사용하면 서버가 작성 runner와 이후 caller를 비교할 수 있습니다.
- Agent label: X-Memory-OS-Agent-ID는 하나의 설치와 별도로 논리적 agent를 식별합니다.

## 정규화한 다음 해시하기

런타임은 instance id의 앞뒤 공백을 제거하고 빈 값을 거부하며, 해시하기 전에 최대 256자를 허용합니다. 저장된 hash는 sha256:<64 hexadecimal characters> 형식으로 정규화됩니다. 잘못된 사전 해시 값은 credential로 취급하지 않고 무시합니다.

```python
from memory_manager.auth.agent_identity import agent_instance_id_hash

instance_hash = agent_instance_id_hash("codex-local-install")
# sha256:<64 hexadecimal characters>
```

## 로컬 설치마다 하나의 값 유지하기

하나의 비밀이 아닌 instance 값을 repository 밖에 저장하고 access credential과 함께 보내세요. 같은 설치에서는 재시작 후에도 재사용하고, 다른 로컬 profile에는 다른 값을 선택하세요.

```http
X-API-Key: <your-assigned-api-key>
X-Memory-OS-Agent-ID: codex
X-Memory-OS-Agent-Instance-ID: <stable-local-instance-id>
```

## 경계 의미를 명시적으로 다루기

memory_agent_boundary는 호출자의 agent_id 및 instance hash를 row의 값과 비교합니다. 둘 다 일치하면 self이고, agent_id는 일치하지만 다른 hash면 same_agent_other_instance입니다. 비교 가능한 신원이 없으면 unverified 또는 unknown으로 보고됩니다. 이 라벨은 귀속을 설명할 뿐 token authorization을 대체하지 않습니다.

```json
{
  "relation": "self",
  "ownership": "current_agent",
  "boundary_authority": "attribution_only",
  "current_agent_trust": "client_asserted"
}
```

## ChatGPT 사용자

채팅에 전달자 토큰을 붙여넣지 않고도 XMemo 기본 설정, 프로젝트 사실, 결정 및 TODO에 대한 지속 가능한 액세스를 ChatGPT에 부여하세요.

ChatGPT/OpenAI 앱 OAuth 흐름을 통해 호스팅된 XMemo MCP 서버를 연결한 다음 XMemo 계정에 대한 메모리:읽기 및 메모리:쓰기 권한을 승인합니다.

종합 기본 설정이나 프로젝트 노트를 저장하고 새 채팅을 시작한 다음 작업을 계속하기 전에 XMemo를 통해 ChatGPT에 이를 불러오도록 요청하세요.

OAuth가 실패하거나 도구가 표시되지 않으면 호스트 앱의 MCP 서버에서 로그아웃하고 XMemo 서버 URL을 다시 연결한 후 직접 토큰을 생성하기 전에 다시 시도하세요.

## 부조종사/Codex 개발자

IDE와 CLI 에이전트 간에 리포지토리 결정, 코딩 규칙, 버그 수정 메모, 작업 기록을 전달합니다.

가능한 경우 VS Code / GitHub Copilot 및 Gemini CLI에 OAuth를 사용하세요. Copilot CLI, Codex, Cursor 또는 기타 직접 MCP 클라이언트의 경우 로컬 환경 또는 보안 저장소에 XMEMO_KEY를 유지하고 안정적인 XMEMO_AGENT_INSTANCE_ID를 설정하세요.

코드베이스 결정이나 버그 수정을 기록한 후 편집하기 전에 다음 IDE 또는 CLI 에이전트에게 관련 XMemo 컨텍스트를 기억하도록 요청하세요.

회수가 비어 있는 경우 선택한 MCP 구성 경로, 직접 클라이언트용 XMEMO_KEY 환경 변수 및 호스트 앱의 오래된 OAuth 자격 증명을 확인하세요.

## 팀/엔터프라이즈 파일럿 소유자

계정 제어, 소스 속성, 내보내기/삭제 워크플로, 검토자에게 안전한 설정 증거를 통해 공유 메모리를 평가합니다.

보호된 XMemo 작업 공간을 생성하거나 입력하고 승인된 사용자를 초대한 다음 준비 배지에 따라 OAuth 또는 범위가 지정된 직접 자격 증명을 통해 각 클라이언트를 연결합니다.

파일럿 멤버에게 가상 팀 메모리를 저장하고 XMemo에서 소스 속성을 확인한 다음 삭제/내보내기 및 지원 경로를 검토하도록 합니다.

구성원이 연결할 수 없는 경우 새 토큰을 발급하기 전에 역할 권한, OAuth 승인, 클라이언트 준비 상태 및 지원 지침을 확인하세요.

## 자율 에이전트 운영자

헤드리스 또는 예약 에이전트가 진행 상황을 기록하고, 이전 결정을 검색하고, 안정적이고 비밀이 아닌 인스턴스 ID를 유지하도록 합니다.

/api/v1/mcp/config/autonomous-agent를 가져옵니다. 실행기가 OAuth + 사용자 정의 헤더를 지원하는 경우 auth_modes.oauth를 선호합니다. 완전 헤드리스 러너에 대해서만 비밀 저장소의 XMEMO_KEY와 함께 auth_modes.xmemo_key를 사용하십시오.

XMemo에 진행 상황을 기록하는 하나의 합성 작업을 실행하고 실행기를 다시 시작한 다음 동일한 XMEMO_AGENT_INSTANCE_ID를 사용하여 해당 진행 상황을 호출하는지 확인합니다.

속성이 변경되거나 인스턴스 간에 분할된 경우 git 외부에서 XMEMO_AGENT_INSTANCE_ID를 유지하고 실행기가 시작할 때마다 이를 다시 생성하지 않는지 확인하세요.
