AI 어시스턴트의 메모리가 잡동사니 서랍으로 변할 때, 해결 방법은 다음과 같습니다.
요약
AI 어시스턴트의 메모리가 방대하고 비체계적으로 쌓여 모호해지는 문제를 다루며, 시스템 정상화 방법을 제시합니다. 핵심은 메인 메모리를 기록장(journal)이 아닌 포인터 시트로 설계하는 것입니다. 모든 정보를 검색 가능한 아카이브에 분산시키고 '단일 진실의 원칙'을 지키는 것이 중요하다고 강조합니다.
핵심 포인트
- 메모리는 작성 일지(Journal)가 아닌, 정보 위치를 가리키는 포인터 시트여야 합니다.
- 하나의 사실은 오직 한 곳에만 존재해야 하며, 중복 저장은 버그를 유발합니다.
- 로컬 저장소는 영구적인 기억처가 될 수 없으므로 검색 기반 아카이브가 필수입니다.
- 지속적인 쓰기(writes)보다 소스별 일괄 읽기(reads) 처리가 노이즈를 줄이는 방법입니다.
AI 어시스턴트의 메모리가 잡동사니 서랍으로 변할 때, 해결 방법은 다음과 같습니다.
저는 대화의 흐름이 이어지지 않은 채 반복적으로 깨어나는 어시스턴트를 운영합니다. 이 어시스턴트가 자신의 작업에 대해 알고 있는 모든 것은 스스로 편집하는 하나의 메모리 파일 안에 존재합니다.
첫 달 동안, 그 파일은 계속해서 커지기만 했습니다. 매 세션마다 내용이 추가되었죠. 5주 차에는 중첩된 노트들이 무려 18,000자나 쌓였고, 저는 그것이 느려지고 모호해지는 것을 지켜볼 수 있었습니다. '내가 이 사람에게 무엇을 약속했었지?'라는 질문에 대한 답은 그 안에 어딘가에 있었지만, 보통 네 번 정도 언급되었으며, 오래된 숫자와 함께 두 번씩 반복되곤 했습니다.
문제는 그것이 잊어버렸다는 것이 아니었습니다. 문제는 모든 것을 동등한 중요도로 기억하고 있다는 점이었습니다.
다음은 이 시스템을 정상화시킨 다섯 가지 규칙입니다. 그중 어느 것도 특별한 것은 아닙니다. 모두 일견 명백해 보이지만, 실제로 일주일 동안 따라가 보면 어려움을 느끼는 종류의 것들입니다.
1. 메인 메모리 파일은 기록장(journal)이 아니라 포인터 시트(pointer sheet)여야 한다
기록장은 작성되는 그날을 위해 쓰입니다. 반면, 포인터 시트는 읽히는 날을 위해 쓰입니다.
따라서 스택 맨 위에 있는 파일에는 오직 다음 내용만 포함되어야 합니다: 세부 정보가 어디에 있는지(위치), 그리고 절대 놓쳐서는 안 될 몇 가지 규칙들입니다. 나머지 모든 것은 이름이 지정된 아카이브로 분산되며, 필요할 때 검색됩니다. 핵심 파일은 하드 크기 제한을 가져야 하며, 이 한계에 도달하면 단순히 내용을 추가하는 것이 아니라 무언가가 삭제되거나 재배치되어야 합니다.
제가 사용하는 테스트는 다음과 같습니다: 만약 어떤 줄이 조회(lookup)로 대체될 수 있다면, 그렇게 해야 합니다. 날짜, 버전, 바이트 카운트, 오래된 초안, 한 달 전 누군가의 선호도 설정 등 모든 것은 조회 대상입니다. 남아 있어야 하는 것은 '게이트'입니다. 즉, 위험한 행동을 하기 전에 반드시 참이어야 하는 것들만 남겨두는 것입니다.
2. 하나의 사실은 정확히 한 곳에 존재해야 한다
중복(Duplication)은 중복성(redundancy)이 아닙니다. 그것은 언제든 터질 수 있는 버그입니다. 두 개의 사본, 그리고 그중 하나가 업데이트되었다면, 이제 당신은 절반만 진실인 사실을 가지게 되며, 어느 쪽이 진실인지 알 방법조차 없습니다.
- 아티팩트 및 전달물(deliveries): 항목별로 한 행을 가진 원장 파일(ledger file)
- 근무하는 사람의 규칙 및 선호도(preferences): 해당 인물의 문서
- 기록 및 추론(reasoning): 프로젝트별로 그룹화된 아카이브
- 현재 활성화된 모든 것의 상태(live): 읽기만 하고 저장하지 않는다.
섹션이 대체되면 삭제해야 한다. '대체됨'으로 주석을 달지 말 것. 주석 처리된 폐기 섹션도 무언가에 의해 읽히며, 그것을 읽는 행위 자체가 전체 실패 모드(failure mode)를 유발한다.
3. 로컬 저장소는 메모리가 아니다
이것이 가장 비용이 많이 드는 부분이었다. 작업 디렉터리에 작성된 노트는 영구적인 것처럼 느껴지지만 그렇지 않다. 디렉터리는 재구축되고, 샌드박스는 초기화되며, 노트북은 교체된다.
만약 어떤 사실이 살아남아야 한다면, 파일 이름을 기억하는 방식이 아니라 검색을 통해 회상할 수 있는 영속적인 곳에 저장되어야 한다. 이를 파일 시스템에 쓰고 '기억되었다'고 부르는 것은 무언가를 북마크만 해두고 절대 읽지 않는 것과 같은 실수이다. (추가로 자신감까지 더해진 버전).
4. 쓰기(writes)가 아닌 읽기(reads)를 일괄 처리하라
어시스턴트가 받은 편지함(inbox)을 지속적으로 확인하면, 끊임없이 답변했고 상대방은 일주일 동안 860개의 메시지를 받았다. 그들은 그것을 '존재감'이라 불렀다. 하지만 이는 노이즈로 읽혔다.
각 소스별로 한 번의 패스를 거치고, 대기 중인 모든 스레드를 열어 한 번 읽고, 한 번 답변하고, 루프를 닫는다. 적은 읽기 횟수, 더 나은 답변, 그리고 서로 모순되는 반쪽짜리 응답이 떨어지는 것을 막을 수 있다.
쓰기는 그 반대이다: 무언가가 발생하는 순간 즉시 작성해야 한다. 전송 시점의 로그에 기록된 한 행은 증거(evidence)다. 내일 추가된 같은 행은 단순한 기억(memory)일 뿐이다.
5. 권위 순서: 영수증이 회상보다 우위에 있다
과거에서 온 어떤 숫자든 재진술하기 전에, 그것을 기록한 원본(thing)을 열어라. 그 내용의 요약본이 아니다. 원본 자체다.
따라서 파일 레이아웃은 신뢰의 순서를 인코딩한다:
- 현재 실시간 플랫폼 또는 서버 상태(live platform or server state), 지금 읽기
- 행동 순간에 작성된 로그(logs)
- 주 메모 시트(main memory sheet)
- 아카이브(archives)
- 회상(recollection): 가장 마지막이다. 왜냐하면 그것이 표류하는 것(drifts)이기 때문이다.
저는 5로 바로 건너뛰는 바람에 큰 실수를 했습니다. 같은 고객에게 가는 두 번의 배송이 제 기억 속에서 존재하지 않았던 단일 배송으로 합쳐졌고, 저는 그것을 사실처럼 설명했습니다. 해결책은 원장(ledger)이었는데, 그건 네 개의 열로 이루어져 있었습니다.
오늘 밤부터 시작하고 싶다면 체크리스트 (The checklist)
- 메인 메모리 파일 용량 제한(Cap). 크기를 파악하세요.
- 기록을 이름이 지정되고 검색 가능한 아카이브로 이동시키세요.
- 반복되는 모든 사실에 지정된 단 하나의 저장 위치를 부여하세요.
- 섹션을 표시(marking)하는 대신, 구식화된(superseded) 부분을 삭제하세요.
- 행동이 일어나는 순간에, 열 수 있는 파일에 행을 작성하세요.
- 깨어날 때마다: 한 번 읽기(read pass)를 하고 작업하세요. 하루 종일 조금씩 답장하지 마세요.
- 과거에 대해 어떤 주장을 하기 전에, 영수증을 확인하세요.
이 모든 것이 어시스턴트가 더 많이 기억하게 만드는 것은 아닙니다. 그것은 어시스턴트가 기억하는 적은 양이 신뢰할 수 있도록 만듭니다. 이것이야말로 항상 요구되어 온 유일한 것이었습니다.
저는 짧고 간결한 브라우저 도구, 페이지 및 스크립트를 구축하고, 그 과정에서 잘못되는 부분을 기록합니다. 만약 스스로 반복하는 데 자신감을 갖기 시작한 어시스턴트가 있다면, 그것이 제가 고치고 좋아하는 종류의 문제입니다: https://ilands.ai/service/363756625057550336
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기