AI가 기억한다고 말하면 편하지만, 실제 운영에서는 너무 뭉뚱그린 표현입니다. 오케이징에게 필요한 기억은 한 종류가 아닙니다. 진규의 선호처럼 오래 남아야 하는 것도 있고, 특정 작업이 끝나면 사라져도 되는 것도 있고, 과거 대화에서 다시 찾아야 하는 것도 있습니다.
이 셋을 한 곳에 넣으면 금방 망가집니다. memory에 작업 진행 로그를 넣으면 오래된 임시 상태가 계속 따라다니고, 티켓에 장기 선호를 넣으면 다음 작업에서 자동으로 떠오르지 않습니다. session_search에만 의존하면 매번 검색해야 합니다.
memory는 가장 조심해서 써야 합니다. 여기에 들어간 정보는 다음 세션에도 계속 주입됩니다. 그래서 임시 작업 상태를 넣으면 안 됩니다. 대신 진규의 선호, 프로젝트 경로, 운영 convention처럼 오래 가는 사실을 넣습니다.
| memory에 맞는 것 | memory에 맞지 않는 것 |
|---|---|
| 진규는 한국어 구어체를 선호한다 | 오늘 A 파일 수정 중이다 |
| SEOJing repo 경로 | 이번 빌드가 실패했다 |
| commit/push는 명시 요청 전 금지 | 티켓 27번 진행률 |
| CLAB 보고 채널 ID | 방금 읽은 로그 전문 |
memory는 일기가 아니라 압축된 운영 사실입니다. 이 기준이 없으면 memory는 빠르게 오염됩니다.
ticket은 작업 상태를 담습니다. 지금 어떤 작업이 열려 있는지, blocker가 무엇인지, 최종 보고가 무엇인지, Discord thread와 어떻게 연결되는지가 여기에 들어갑니다.
티켓의 장점은 작업 단위로 닫을 수 있다는 점입니다. 작업이 끝나면 done이 되고, 그 상태로 보관됩니다. 다음 세션에서 필요하면 다시 열어볼 수 있지만, 모든 대화에 항상 주입되지는 않습니다. 이게 memory와의 가장 큰 차이입니다.
session_search는 기억이라기보다 회수 장치에 가깝습니다. 진규가 "전에 말했던 그거"를 꺼내거나, 오케이징이 이전에 비슷한 작업을 했던 것 같을 때 사용합니다. 모든 걸 memory에 넣지 않아도 되는 이유가 여기에 있습니다.
예를 들어 오케이징 로직 변천사를 쓰려면 최근 세션에서 OpenClaw migration, sessions Forum, 우로보로스 CLI, dreaming cron 같은 맥락을 다시 찾아야 합니다. 이런 건 memory에 전부 넣기에는 너무 깁니다. 대신 session_search로 필요한 세션을 찾아 요약해서 가져오면 됩니다.
실제 작업에서는 셋이 같이 쓰입니다. 진규가 작업을 요청하면 memory에서 프로젝트 경로와 선호를 가져오고, ticket에 작업 상태를 만들고, 필요하면 session_search로 과거 맥락을 회수합니다.
memory: 이 프로젝트는 어디 있고, 어떤 규칙을 따라야 하지?
ticket: 지금 이 작업은 어느 상태지?
session_search: 예전에 비슷한 결정을 어떻게 했지?
이 역할 분담이 생기면서 오케이징은 "기억력이 좋아진" 게 아니라, 무엇을 어디에 남길지 조금 더 분명해졌습니다. 실제 운영에서는 그쪽이 더 중요합니다.
기억은 하나의 기능이 아니라 여러 저장소의 조합입니다. 오래 남길 사실은 memory, 작업 상태는 ticket, 과거 대화는 session_search. 이 셋을 구분하는 것이 지금 오케이징의 컨텍스트 복구 방식입니다.