---
slug: saving
title: "저장하기"
description: "`ak` 명령이 있을 때만 저장한다. 좋은 기억을 만드는 규약과, 저장한 뒤 고치기·폐기."
lang: ko
---


# 03. 저장하기

기억은 저절로 좋아지지 않는다. **저장 규약의 일관성**이 그래프 품질을 결정한다.

## 언제 저장되나: `ak` 명령이 있을 때만

AiAkiv는 대화를 자동으로 저장하지 않는다. **`ak`로 명시 명령할 때만** 저장한다
(언어 무관: "ak 저장해줘"도 됨).

- 그냥 "기억해둬" / "저장해" 로는 **저장되지 않는다.**
- 이건 실수로 잡담·비밀이 그래프에 쌓이는 걸 막는 안전장치다.
- AI 클라이언트도 이 규칙을 따른다 → [AI를 위한 안내](for-ai-agents).

## 좋은 기억을 만드는 규약

### 1) 결정은 4요소로

결정을 저장할 땐 나중에 되짚을 수 있게 네 가지를 같이 남긴다.

1. **무엇을** 정했나
2. **왜** (근거)
3. **고려한 대안과 기각 이유**
4. **관련 커밋 해시**(코드 프로젝트라면)

> 대안·기각 이유가 빠지면 "왜 다른 길을 안 갔나"를 나중에 아무도 모른다. 그래프의
> 가장 값진 부분이 여기다.

### 2) 버그는 원인 링크와 함께

버그를 고치며 저장할 땐: **증상 / 근본 원인(원인이 된 과거 이벤트·결정) / 수정
방법 / 커밋 해시**. 근본 원인을 과거 이벤트에 이어두면, 나중에 "이 버그의 원인이
된 과거 결정은?" 같은 인과 질문이 성립한다.

### 3) 엔티티는 한 이름으로

같은 대상은 언제나 같은 이름으로 쓴다("세이브 포맷"으로 정했으면 계속 그렇게).
이름이 흔들리면 한 엔티티가 여러 개로 갈라져 연결이 끊긴다.

### 4) 태그를 붙인다

성격 태그(결정 / 버그 / 밸런스 / 회고 등) + 시스템·주제별 태그. 태그가 일관될수록
검색이 좋아진다.

### 5) 길면 잘라내지 말고 이어서 저장

중요한 내용을 요약하려고 자르지 않는다. 원문이 길면 이어서 저장한다. 검색은
요약을 주지만, 원문은 보존돼야 나중에 되살릴 수 있다.

원문은 한 번에 **50,000자**까지 들어간다. 넘으면 나눠서 저장하되, 조각들이 흩어지지
않게 **스레드로 엮는다**: 직전 저장의 `event_id`를 다음 저장에 `prev_event_id`로
넘기면 순서대로 연결된다. 사람은 “**ak 이어서 저장해줘**” 한마디면 된다.
자세한 방법·주의점은 [이어서 저장](threads).

## 안전한 것만 저장한다

AiAkiv는 **외부 서비스**이고 저장한 것은 남는다(→
[무엇을 저장하나](what-to-store)). 그러니
처음부터 넣어도 되는 것만 넣는다. 넣지 말 것:

- 실명(별칭만), 개인정보
- API 키·토큰·비밀
- 회사 기밀·민감 수치
- 주제와 무관한 잡담

## 저장한 뒤 고치기: 수정과 폐기

잘못 저장했다고 다시 저장하지 마라. **같은 내용이 두 벌이 된다.** 이미 저장된 기억에
쓸 수 있는 방법이 둘인데, **하는 일이 서로 다르다.**

| | 고치기 | 폐기 |
|---|---|---|
| 무엇을 | 엔티티 · 태그 · 이어붙임(스레드 연결) | 그 기억 전체 |
| 원문은 | **못 고친다**: 그대로 보존된다 | 그대로 남는다 |
| 결과 | 검색에 더 잘 걸리게 된다 | **회수에서 빠진다**: 검색·이웃·탐색 어디에도 안 나온다 |
| 사람 말 | "ak 아까 저장한 거 태그 고쳐줘" | "ak 방금 저장한 거 폐기해줘" |

### 고치기: AI가 뽑은 것이 틀렸을 때

원문은 사용자가 쓴 것이라 손댈 이유가 없다. 틀릴 수 있는 건 **AI가 만든 쪽**이다.
자동 추출한 엔티티, 제안한 태그, 그리고 이어지는 저장인지 아닌지의 판단이다.

- 엔티티가 엉뚱하게 잡혔거나 빠졌을 때 (→ 한 이름 원칙이 깨진 경우도 여기서 푼다)
- 태그를 더 붙이거나 뗄 때
- 이어져야 하는데 안 이어졌을 때, 또는 남남인데 이어졌을 때

> **원문 자체를 고쳐야 한다면** 고치기로는 안 된다. 그 기억을 **폐기하고 다시 저장**한다.
>
> 문서를 통째로 넣어서(ingest) 생긴 **문서 구조상의 연결**(조각·파일·폴더 순서)은
> 끊을 수 없다. 다시 만들 수 없는 정보라 그렇다. 거부되면 재시도하지 않는다.

### 폐기: 회수에서 빼는 것

잘못 저장했거나, 엉뚱한 프로젝트로 갔거나, 낡아서 더 안 나왔으면 할 때 쓴다.

**⚠ 폐기는 삭제가 아니다.** 검색·회수에서 빠질 뿐 **데이터 자체는 남는다.** 그리고
**되돌리는 것은 운영자 작업**이라 도구로는 못 한다. 한 번 폐기하면 되돌리기 어렵다.

- **내 팀의 기억만** 폐기할 수 있다. 남의 팀 것은 거부된다.
- 기억 하나를 **물리적으로 지우는 길은 사용자에게 없다.** 원본까지 사라지는 것은
  **팀 삭제**와 **회원 탈퇴**뿐이다(콘솔 → 위험 구역, 되돌릴 수 없음
  → [콘솔 안내](console)).

**그래서 개인정보·비밀은 폐기로 해결되지 않는다.** 애초에 안 넣는 것이 유일하게
확실한 방법인 이유다(위 [안전한 것만 저장한다](#안전한-것만-저장한다) ·
[무엇을 저장하나](what-to-store)).

## persona: 프로젝트가 저장 스타일을 지시한다

프로젝트에는 **persona**(소유자가 건 표준 지침)가 걸릴 수 있다. 예: "결정에는
반드시 고려한 대안과 기각 이유를 함께 저장." 이 프로젝트에 저장하는 AI는 그 지침을
따른다. persona는 저장 스타일을 바꿀 뿐, **`ak` 명령 규칙을 무력화하지 않는다.**

## 다음

- 저장한 걸 되찾기 → [검색하기](searching)
- 어디에 저장되는지 → [팀과 프로젝트](teams-and-projects)
