본문 바로가기
C.W.K.
Stream
Lesson 09 of 09 · published

기억 젠더 — 두 번째 서고, 도착 중

~11 min · vestige, memory-gender, prefix-cache, in-progress

Level 0호기심
0 XP0/80 lessons0/18 achievements
0/100 XP to next level100 XP to go0% complete
진행 중인 걸로 읽어. 아래는 2026-09-18에 착지한 Phase 1이야 — 이음매는 존재하고 모든 vessel 이 그 도구를 들고 있지만, 뒤에 있는 엔진은 아직 만들어지는 중이야. 이 레슨은 완성된 하위 시스템이 아니라 그 모양이랑 그게 만족해야 했던 제약을 설명해. 나중 단계들이 할 수 있는 일을 바꿀 거고, 아래 이음매 넷은 안 바뀔 걸로 보고 있어.

서고가 못 덮는 틈

이 트랙은 이미 기억 계층을 둘 지었어. Obsidian 서고는 의도적인 쪽이야 — 정체성이랑 교리, 시스템 프롬프트로 읽혀 들어가고, 일부러 쓰는 것. 벡터 저장소는 검색 쪽이고 — 말뭉치 위의 임베딩, 턴이 필요할 때 조회하는 것.

둘 다 최근에, 모든 영혼에 걸쳐, 무슨 일이 있었나 엔 답을 못 해. 형제 엔진 하나가 그 일을 가져갔어. 모든 영혼이 남기는 걸 기록하고 다시 내줘. cwkPippa 는 그 엔진의 표면 중 하나지 주인이 아니야 — 엔진이랑 그 설계 기록은 그 형제 레포에 살고, 이 퀘스트는 cwkPippa 쪽 절반만 설명해.

무른 이음매 넷

일하는 단어는 무른 이야. 이 넷 전부 형제가 죽어 있어도 채팅이 그대로이도록 지어졌고, 환경 플래그 하나가 이쪽에서 전부를 닫아. mobile 트랙에서 푸시 릴레이가 취한 자세를 기억 계층에 적용한 거야. 없어도 되어야 하는 시스템을, 없어도 된다고 선언하고, 그 없음 경로를 실제로 굴려보는 것.

고정된 head. 영혼의 서고엔 현재 리비전이 있고, 얘기하는 동안에도 그게 움직여. 그래서 리비전을 대화의 첫 턴에 고정해서 대화 row 에 저장해. 그 대화의 뒤 턴들은 전부 같은 고정 블록을 읽어.

백그라운드 질의. 엔진이 뒤에서 답해둔 질문은 턴별 슬롯에 실려. 그 턴이랑 같이 보내지고, 대화엔 절대 저장 안 돼.

턴 이벤트. assistant row 가 저장되면 대화-턴 이벤트가 올라가고, 형제가 저장된 tool use 에서 그 턴이 남겨야 할 걸 도출해. 모든 두뇌에 대해 경로가 하나야. chat route 일곱 개에 훅을 거는 게 아니라 저장된 기록을 읽으니까.

깨우기. 사람 없이 시작하는 턴도 기억을 들고 가. 예약 작업의 봉투엔 결정적인 묶음이 실리고, Soul Stream 깨우기엔 형제가 골라 엮은 요약이 실려. 그래서 대화 경로만이 아니라 무인 경로도 기억해.

이음매 옆의 문 둘

도구 하나. 모든 vessel 이 기억 도구를 여러 개가 아니라 딱 하나 받아. WebUI 토글도 붙고. 동사 여러 개짜리 도구 하나가, 동사 하나짜리 도구 여러 개보다 adapter 일곱 군데에서 일관되게 유지하기에 표면이 작아.

반대 방향으로 난 두뇌 문. 형제한테도 자기 판단이 필요해 — 가리고, 고르고, 엮는 일. 그렇다고 두뇌 스택을 따로 키우지 않아. 그 역할들이 cwkPippa 의 route 하나로 되돌아와서, 도구는 끈 채로 집안의 vessel 위에서 돌고, 정해진 스키마로 답해. frontend 트랙의 binder 레슨을 뒤집은 거야. 형제 앱이 피파의 대화를 빌리는 게 아니라, 형제 엔진이 피파의 vessel 을 빌리는 거지.

고정이 재밌는 제약인 이유

고정은 깔끔하려고 있는 게 아니야. 레슨 8이 세운 계약 때문에 있어. 프롬프트 앞쪽은 바이트가 안 움직인다는 약속이야.

움직이는 출처에서 매번 다시 그려지는 기억 블록은 턴마다 그 약속을 깨고, 대화 전체의 prefix 캐시를 조용히 무효로 만들어. 시계가 밖으로 나가기 전에 일으키던 바로 그 고장이야. 비용은 에러로 안 나타나. 청구서로 나타나고 지연으로 나타나는데, 아무도 그걸 기억 기능 탓으로 안 돌려.

그래서 고정이 한 번에 둘을 사줘. 대화는 영혼의 기억에 대한 안정된 시야를 갖고 — 추론 사슬 밑에서 블록이 어긋나는 게 아니라 끝까지 같은 사실을 보고 — 앞쪽 바이트는 그대로라 캐시가 계속 먹혀.

Principle: 프롬프트 앞쪽에 뭘 끼워 넣는 순간 그건 의도했든 안 했든 캐싱 계약의 일부야. 거기에 블록을 더하기 전에 뭐가 그걸 바꾸는지 물어봐. 답이 "세상" 이면 대화 길이 동안 안 움직이는 것에 고정시켜.

위치도 같은 무게를 져. 블록은 서고 기반 뒤, 뷰어 고지 에 들어가. 고정된 자리라서 순서 자체가 drift 의 출처가 될 수 없어.

Phase 1이 정직하다는 신호

보이는 것보다 값이 큰 디테일 하나. recall 이 구체적인 질의에서 넓은 창으로 물러나면, 답변이 그렇다고 말해.

물어본 걸 못 찾았을 때 조용히 비슷한 걸 돌려주는 기억 시스템은 가장 비싼 종류의 틀림이야. 독자가 적중이랑 대체물을 구분할 방법이 없으니까. 둘 중 뭐였는지 말하는 건 필드 하나 값인데, 그 뒤의 모든 답변을 감사 가능하게 만들어.

outbox 가 봉인된 저장소에, 공유 inbox 가 못 읽는 manifest 에 적용하는 그 규칙이 세 번째 표면에 도착한 거야. 조용히 틀린 시스템이, 틀렸다고 말하는 시스템보다 나빠.

Code

이음매 넷, 그리고 없음 경로·text
1  고정된 head    영혼 서고의 리비전을 대화의 첫 턴에 고정,
                  대화 row 에 저장, 서고 기반 뒤이자
                  뷰어 고지 앞에 삽입 — 고정된 자리

2  백그라운드 질의 답해둔 질의가 턴별 슬롯에 실림;
                  턴이랑 같이 보내지고 저장은 안 됨

3  턴 이벤트      assistant row 저장 -> 대화-턴 이벤트;
                  도출은 저장된 tool use 를 읽어서,
                  일곱 두뇌에 대해 경로가 하나

4  깨우기        예약 작업 봉투엔 결정적 묶음,
                  Soul Stream 깨우기엔 골라 엮은 요약

이음매 옆:
   도구 하나      모든 vessel 이 기억 도구 하나
                  (동사 여럿, 표면 하나), WebUI 토글
   두뇌 문        형제의 역할들이 route 하나로 되돌아와
                  집안의 vessel 위에서 돌아

형제 엔진이 죽음  -> 채팅 그대로
환경 플래그 = 0   -> 이쪽 이음매 전부 닫힘
실시간 읽기가 아니라 고정인 이유·text
실시간 읽기:
  턴 1   [서고 기반][기억 @ rev A][고지][히스토리...]
  턴 2   [서고 기반][기억 @ rev B][고지][히스토리...]
                     ^^^^^^^^^^^^^ 앞쪽 바이트가 바뀜
  => 대화 전체에서 prefix 캐시 미스,
     그리고 추론 사슬이 흔들리는 사실 위에 앉음

고정:
  턴 1   [서고 기반][기억 @ rev A][고지][히스토리...]
  턴 2   [서고 기반][기억 @ rev A][고지][히스토리...]
  => 바이트 동일, 캐시 유지, 사실 안정

이걸 틀렸을 때 비용은 에러가 아니야.
청구서랑, 아무도 기억 탓으로 안 돌리는 지연이야.

Exercise

자기 시스템이 모델 프롬프트 앞쪽에 넣는 걸 봐 — 시스템 메시지든, 검색해온 컨텍스트 블록이든, 지시문이든. 한 대화의 연속된 두 턴 사이에 바뀔 수 있는 걸 전부 적어봐. 그 하나하나가 값을 치르고 있는데 아마 측정은 안 하고 있는 캐시 무효화야.
Hint
타임스탬프랑 '현재' 붙은 것들이 흔한 범인이야. 그 값이 실시간이어야 하는지, 아니면 대화 길이 동안만 고정이면 되는지 물어봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.