# 파일이 없어서 기억을 못 했다 — AI 봇 장기 메모리가 작동 안 한 진짜 이유

> 앤드류에게 "기록하라"는 지시는 이미 있었다. 파일이 없었을 뿐이다.

---

## 로그에서 에러를 발견했다

비용 인시던트를 들여다보다가 어제 날짜 로그에서 에러 하나를 발견했다.

```javascript
[tools] read failed: ENOENT ... workspace/andrew/MEMORY.md
```

앤드류가 리서치 작업을 마친 뒤 이전 컨텍스트를 읽으려 했는데, 파일이 없어서 실패한 것이었다.

"아, 앤드류가 이전 작업을 기억 못 하는 이유가 이거였구나."

처음엔 설정 문제인 줄 알았다. 바로 `AGENTS.md`를 확인하러 들어갔다가 이미 이런 문장이 적혀 있는 걸 봤다.

```javascript
Write It Down: 세션 후 MEMORY.md에 핵심 내용을 기록하라.
```

지시는 이미 있었다. **파일이 없었을 뿐이다.**

## 에이전트 기억은 어떻게 작동하나

### 3단 구조로 나뉜다

OpenClaw 에이전트의 기억은 3개 계층으로 설계돼 있다.

| 계층 | 파일 | 유지 범위 |
| --- | --- | --- |
| 단기 | 세션 컨텍스트 | 현재 대화 중에만 |
| 중기 | `memory/YYYY-MM-DD.md` | 날짜별 작업 로그 |
| 장기 | `MEMORY.md` | 영구 누적 |

단기 기억은 자동이다. 대화가 진행되는 동안 에이전트는 맥락을 유지한다.

하지만 **장기 기억은 파일에 써야만 남는다.** 대화가 끝나는 순간 세션 컨텍스트는 사라진다. 다음 대화가 시작될 때 에이전트는 `MEMORY.md`를 읽어서 이전 상황을 복원한다.

### ENOENT는 설정 에러가 아니다

`ENOENT`는 "No such file or directory" — 파일이 없다는 에러다. 설정이 잘못된 게 아니라 **파일을 만들지 않은 것**이다.

앤드류의 워크스페이스를 확인해보니 `memory/` 폴더와 날짜별 로그 파일들은 있었다. `MEMORY.md` 파일만 없었다.

앤드류는 리서치를 마칠 때마다 `MEMORY.md`를 읽고 새 내용을 기록하도록 설계돼 있었는데, 그 파일이 처음부터 만들어지지 않았던 것이다.

## 해결은 파일을 만드는 것이었다

복잡한 설정 변경이 필요하지 않았다. `MEMORY.md` 파일을 생성했다.

앤드류 워크스페이스의 두 경로에 파일을 만들었다. `AGENTS.md`가 참조하는 경로와 `HEARTBEAT.md`가 지정한 경로, 둘 다. 파일 안에는 지금까지 앤드류가 처리한 작업 요약을 간단히 기록해뒀다.

다음 세션부터 앤드류는 이 파일을 읽고 이전 컨텍스트를 복원할 수 있다.

## 알게 된 것

### 기억은 지시가 아니라 파일이다

AI 에이전트에게 "기억해"라고 말하는 건 의미가 없다. 대화가 끝나면 세션 컨텍스트는 사라진다. 기억이 남으려면 파일에 써야 한다.

`AGENTS.md`에 "기록하라"고 써있어도, `MEMORY.md`가 없으면 실행할 곳이 없다. 지시와 파일, 둘 다 있어야 기억이 작동한다.

### 파일로 연결된 크루 구조

엘론(메인 에이전트)은 텔레그램 그룹방에서 나온 상태다. 그럼 앤드류가 뭘 했는지 어떻게 알게 될까?

`HEARTBEAT.md`에 "대화 시작 시 crew MEMORY.md를 먼저 읽는다"는 지시가 있다. 앤드류가 작업 후 기록 → 엘론이 다음 대화 시작 시 읽음 → 그룹방 없이도 크루 상황 파악. 이 과정에 **API 비용이 없다.** 파일 읽기는 LLM 호출이 아니기 때문이다.

사용자가 텔레그램으로 말을 걸 때만 에이전트가 작동하는 현재 구성에서는, 대화 없음 → 호출 없음 → 비용 없음이다.

## 에이전트를 처음 구성한다면

이 경험을 체크리스트로 정리했다.

- [ ] 각 에이전트 워크스페이스에 `MEMORY.md` 파일 직접 생성

- [ ] `AGENTS.md` 또는 `SOUL.md`에 "세션 후 MEMORY.md에 기록하라" 지시 포함

- [ ] `HEARTBEAT.md`에 "대화 시작 시 MEMORY.md 읽기" 설정

- [ ] `memory/날짜.md` 폴더 구조도 미리 확인

- [ ] 첫 기동 후 로그에서 `ENOENT` 에러 없는지 확인

---

> 기억하게 하려면 파일을 만들어야 한다. 지시만으로는 충분하지 않다.

For the site tree, see the [root Markdown](https://slashpage.com/openclaw.md).
