콘텐츠로 이동

AI 에이전트의 기억루프와 자가학습 방법론 — 저장은 학습이 아니다

“AI 에이전트에 기억을 붙였다”는 말은 대부분 “기억 테이블을 만들었다”는 뜻입니다. 그러나 저장소가 있다고 기억이 작동하는 게 아니고, 기록이 쌓인다고 학습이 일어나는 게 아닙니다. 이 글은 우리가 AI 에이전트 ERP(SL.AIMS)의 자가학습 층을 설계하며 정리한 방법론입니다 — 에이전트는 어떤 기억루프를 가져야 하는지, 그 루프는 어떤 방식으로 만들어져야 하는지, 패턴이 스킬로 굳는 자가학습은 어떻게 설계해야 하는지, 그리고 그 과정에서 통용되는 기존 이론의 어느 부분을 왜 수정했는지를 기술합니다. 개념 설계는 앞선 두 글(에이전트 자가학습, 자가학습 설계 청사진)에서 다뤘고, 이 글은 그것을 방법론으로 완성하는 편입니다.

1. 제1원칙 — 기억은 저장이 아니라 폐루프다

섹션 제목: “1. 제1원칙 — 기억은 저장이 아니라 폐루프다”

에이전트의 기억은 4단계가 전부 이어져야 비로소 “기억”입니다.

단계내용이 단계가 끊기면
① 기록판단·대화·사실을 구조화해 저장한다배울 원료 자체가 없다
② 정제중복을 접고, 낡은 것을 표시하고, 요약한다저장소가 쓰레기장이 된다
③ 회수지금 작업과 관련된 기억을 골라낸다저장만 하는 시스템 — 가장 흔한 실패
④ 주입골라낸 기억을 프롬프트 컨텍스트에 넣는다알고 있는데 참고하지 않는다

업계의 실패는 압도적으로 ③에서 납니다. 저장 API는 만들기 쉽고 데모도 그럴듯한데, 회수는 “무엇이 관련 있는가”라는 어려운 문제라서 뒤로 밀립니다. 그래서 방법론의 제1원칙을 이렇게 둡니다.

2. 기억루프의 배선 방식 — 부르지 않아도 도착하게

섹션 제목: “2. 기억루프의 배선 방식 — 부르지 않아도 도착하게”

회수를 만들었다 해도, 그것을 어디서 호출하느냐가 두 번째 갈림길입니다. 흔한 방식은 “기억이 필요한 기능마다 recall()을 호출”하는 것인데, 이 방식은 반드시 구멍이 납니다 — 새 기능을 만드는 개발자가 호출을 빠뜨리는 순간 그 기능은 기억상실이고, 아무 에러도 나지 않으므로 아무도 모릅니다.

이 원칙은 우리가 벤치마크한 오픈소스 oh-my-hermes(공개 에이전트 Hermes Agent의 기억·운영 강화층)의 소스를 실측하며 확정했습니다. 이 물건의 미덕은 화려한 기능이 아니라 코드가 말보다 보수적이라는 점이었고, 아래 3~5절의 상당수 규칙은 그 소스에서 검증해 가져온 뒤 우리 환경(전사 ERP·다수 사용자·감사 대상)에 맞게 수정한 것입니다. (오픈소스 에이전트를 그대로 붙이는 선택지와 자체 구축의 차이는 별도 글에서 다뤘습니다.)

3. 기억의 스키마 — 종류·수명·신뢰를 저장 시점에 강제한다

섹션 제목: “3. 기억의 스키마 — 종류·수명·신뢰를 저장 시점에 강제한다”

기억 테이블에 content 한 컬럼만 두면 정제·회수가 전부 추측이 됩니다. 저장 시점에 세 가지 축을 강제해야 합니다.

3-1. 종류(record type) — 무엇에 대한 기억인가

섹션 제목: “3-1. 종류(record type) — 무엇에 대한 기억인가”
종류정의예
사실(fact)세계에 대한 검증 가능한 진술”거래처 A의 결제조건은 월말 현금”
결정(decision)사람이 내린 선택과 그 이유”수기 전표는 관리자만 — 대표 승인”
교훈(lesson)실패·성공에서 추출한 규칙”마감 주간엔 자동분개 제안을 보수적으로”
절차(procedure)반복 가능한 작업 순서”월마감 체크 7단계”
일화(episode)특정 사건의 서사적 기록”3월 재고실사 때 있었던 일”

종류가 갈려야 수명 정책도 갈립니다. 일화는 시간이 지나면 요약으로 접어도 되지만, 결정은 함부로 접으면 안 됩니다 — “왜 그렇게 하기로 했는지”가 조직의 헌법이기 때문입니다.

3-2. 수명(retention class) — 언제까지 유효한가

섹션 제목: “3-2. 수명(retention class) — 언제까지 유효한가”

여기서 파생되는 실무 규칙 하나: 만료 시각을 두 군데에 적게 되는 순간(예: TTL 필드와 보존계급 필드) 반드시 어긋나는 사고가 납니다. 만료 판정 함수는 시스템 전체에 단 하나만 두고 모든 코드가 그것만 호출하게 합니다.

3-3. 신뢰(trust) — 얼마나 믿을 수 있는가

섹션 제목: “3-3. 신뢰(trust) — 얼마나 믿을 수 있는가”

4. 회수의 방법론 — 관련도 하나로 줄 세우지 않는다

섹션 제목: “4. 회수의 방법론 — 관련도 하나로 줄 세우지 않는다”

통용되는 회수 이론은 “벡터 유사도로 관련도를 재서 상위 k개”입니다. 우리는 이걸 세 군데 수정했습니다.

수정 1 — 축을 셋으로. 관련도(relevance) 하나가 아니라 관련도·최신성(recency)·사용실적(usage) 세 축의 순위를 융합(RRF 방식)합니다. 단, 세 축을 대등하게 두지 않고 관련도를 1차 키로, 나머지는 동순위 안의 재정렬로만 씁니다 — 최신성이 관련도를 이기기 시작하면 “요즘 것만 기억하는 에이전트”가 됩니다.

수정 2 — 사용실적은 포화시킨다. “많이 인용된 기억을 우대”를 그대로 두면 부익부가 됩니다: 한 번 상위에 오른 기억이 계속 인용되고, 인용됐으니 또 상위에 오릅니다. 사용 횟수를 구간(0회 / 12회 / 39회 / 10회+)으로 접어 일정 이상은 더 유리해지지 않게 포화시킵니다.

수정 3 — 핀(pin)에는 상한을 둔다. “이건 항상 기억해”라고 고정하는 기능은 필요하지만 무제한이면 고정 기억이 컨텍스트를 다 먹습니다. 핀 슬롯에 상한(우리는 컨텍스트 예산의 일부로 계산)을 두고, 넘치면 사용자가 하나를 내리게 합니다.

5. 정제의 방법론 — “알아서 잊는 AI”를 만들지 않는다

섹션 제목: “5. 정제의 방법론 — “알아서 잊는 AI”를 만들지 않는다”

기존 이론에서 가장 크게 수정한 부분입니다. 통용되는 그림은 “AI가 주기적으로 기억을 스스로 요약·삭제한다(자동 망각)“인데, 우리는 이것을 두 단계로 쪼개 반만 자동화합니다.

이 비대칭에는 이유가 있습니다. 잘못 남긴 기억의 비용은 토큰이지만, 잘못 지운 기억의 비용은 복구 불가입니다. 비용이 비대칭이면 자동화도 비대칭이어야 합니다.

정제에는 어휘도 필요합니다. “지운다” 한 단어로 뭉치면 정책을 못 씁니다 — 만료(expire, 수명 도달)·보관(archive, 접어서 치움)·대체(supersede, 새 기억이 옛것을 가리킴)·정리(prune, 증명된 중복 제거) 4종을 구분하고, 대체된 기억은 지우지 않고 “무엇으로 대체됐는지”를 남깁니다. 회수 쿼리는 대체된 기억을 기본 제외합니다.

6. 기억의 유효성 — 두 가지 검증 관문

섹션 제목: “6. 기억의 유효성 — 두 가지 검증 관문”

기억이 회수 대상이 되려면 두 관문을 더 넘어야 합니다. 이것도 기존 이론에는 잘 없는, 우리가 명시적으로 추가한 부분입니다.

관문 1 — 승인 주장은 승인 증거가 아니다. 기억 레코드에 “승인됨” 플래그가 있다는 것과, 승인 기록(누가·언제·무엇을 검토했는지)이 실재한다는 것은 다른 사실입니다. 중요 기억을 판단에 재사용(replay)할 때는 플래그가 아니라 검토 기록의 실재를 대조하고, 기록이 없으면 부적격 처리하되 무엇이 왜 탈락했는지를 사유 코드와 함께 보고합니다 — 조용히 빼면 “빠진 줄 모르는 시스템”이 됩니다. (플래그와 실재의 차이는 거버넌스 메타데이터 검증법에서 같은 원리로 다뤘습니다.)

관문 2 — 출처가 변했으면 기억도 낡은 것이다. 문서·코드에서 추출한 기억은 원본의 지문(digest)을 함께 저장하고, 회수 시점에 원본이 바뀌었으면 “낡음(stale)“으로 표시해 가중치를 낮춥니다. 그리고 원본을 읽을 수 없을 때의 처리가 중요합니다:

“못 봤다”는 “봤는데 괜찮았다”가 아니다. 원본 확인에 실패한 기억은 fresh 가 아니라 unknown이며, unknown 은 fresh 보다 낮게 취급한다.

이 fail-closed 사상은 우리 개발 문화의 “증거 없는 완료 보고는 거짓말이다”와 같은 원칙의 기억판입니다.

7. 자가학습의 방법론 — 패턴이 스킬로 굳는 조건

섹션 제목: “7. 자가학습의 방법론 — 패턴이 스킬로 굳는 조건”

기억루프가 돌면 그 위에 자가학습을 올릴 수 있습니다. 우리의 정의는 이렇습니다: 자가학습 = 반복 관찰된 판단 패턴이, 사람의 승인을 거쳐, 재사용 가능한 절차(스킬)로 굳는 것. 모델 재훈련이 아닙니다 — ERP 환경에서 필요한 것은 가중치 갱신이 아니라 “이 회사는 이렇게 한다”의 축적입니다. 방법론의 뼈대는 셋입니다.

첫째, 시작 가능 시점은 산수로 계산한다. “패턴 추출”은 표본이 없으면 환상입니다. 판단 유형별로 사람 피드백이 최소 표본(우리 기준 유형당 30건)을 넘겼는지를 실제 집계 쿼리로 확인하고, 못 넘긴 유형은 학습 대상에서 제외합니다. 판단 기록이 수천 건이어도 피드백이 수십 건이면 자가학습은 시작할 수 없습니다 — 큰 수가 아니라 연료가 되는 수를 세야 합니다.

둘째, 승격에는 사람 관문을 통과시킨다. 패턴 후보 → 사람 검토 → 스킬 승격 → 존속 게이트(승격 후에도 성과가 기준 미달이면 자동 강등)의 단방향 승격이 아니라 왕복 구조로 만듭니다. AI가 스스로 규칙을 만들고 스스로 통과시키는 구조는 자가학습이 아니라 자가강화 편향입니다.

셋째, 사람의 승인 노동을 예산으로 잡는다. 위 두 규칙은 전부 사람의 검토를 요구합니다. 그렇다면 그 노동은 공짜가 아니고, 공짜가 아니면 계획에 수치로 있어야 합니다. 우리 실행계획에는 결재권자의 결정 건수·승인 횟수·주당 반복 노동 시간이 명시돼 있고, 이 예산을 넘는 설계(예: 모든 기억을 개별 승인)는 그 자체로 결함으로 판정합니다. 사람이 병목인 시스템은 사람이 포기하는 순간 자동으로 무너지기 때문입니다.

8. 거버넌스 — 고지가 저장보다 먼저, 규칙이 아니라 그래프로

섹션 제목: “8. 거버넌스 — 고지가 저장보다 먼저, 규칙이 아니라 그래프로”

전사 시스템의 기억은 개인 비서의 기억과 다릅니다. 직원의 대화·행동이 원료이므로, 수집 고지와 동의가 저장 기능보다 먼저 있어야 합니다. 여기서의 방법론적 선택은 “먼저 하라”를 문서에 적는 것이 아니라 실행계획의 의존 그래프에 강제하는 것입니다 — 고지·동의 화면이 완료되기 전에는 저장 기능이 착수 자체가 불가능하도록 선행 조건(blockedBy)으로 묶습니다. 규칙은 바쁘면 어겨지지만, 그래프는 어길 수 없습니다. 그리고 동의 검사는 회수 쪽과 저장·정제 쪽에 대칭으로 걸어야 합니다 — 한쪽에만 걸면 옵트아웃한 직원의 기억이 “회수는 안 되는데 계속 쌓이는” 반쪽 준수가 됩니다.

9. 기존 이론에서 수정한 것 — 요약 대조표

섹션 제목: “9. 기존 이론에서 수정한 것 — 요약 대조표”
통용되는 이론우리의 수정이유
저장소를 만들면 기억이 된다저장·회수·주입 폐루프가 완성 기준실패는 대부분 회수 부재에서 난다
필요한 기능마다 recall() 호출파이프라인 앞단 단일 배선점(prefetch)호출 누락은 조용한 기억상실
기억은 오래 둘수록 좋다보존계급 3종 — 수명 없는 휘발성은 저장 거부수명은 저장 순간에만 정직하게 매겨진다
신뢰는 기본 높음, 문제 생기면 낮춤출처 불명은 무조건 낮음(fail-closed)오염 한 방이 전체를 무너뜨린다
벡터 유사도 상위 k개관련도 1차 키 + 최신성·사용실적은 동순위 재정렬, 사용실적은 포화최신 편향·부익부 차단
AI가 알아서 요약·삭제(자동 망각)시점 판단만 결정론 자동, 실행은 항목별 검토 관문 — 삭제는 증명된 중복만잘못 지운 비용은 복구 불가(비용 비대칭)
승인 플래그가 있으면 승인된 것재사용 시 승인 기록의 실재를 대조, 탈락은 사유와 함께 보고주장과 증거는 다른 사실
추출된 기억은 계속 유효원본 지문 대조 — 변했으면 stale, 못 보면 unknown(<fresh)“못 봤다”≠“괜찮았다”
자가학습은 데이터가 쌓이면 자연히유형별 최소 표본을 집계 쿼리로 확인 후 시작, 승격엔 사람 관문+존속 게이트표본 없는 패턴 추출은 환상, 자기 승인은 편향
프라이버시는 정책 문서로고지·동의를 의존 그래프의 선행 조건으로 강제, 저장·회수 대칭 검사규칙은 어겨져도 그래프는 못 어긴다
사람 검토는 당연한 전제승인 노동 총량을 계획의 수치 예산으로사람이 병목이면 포기하는 순간 무너진다

마치며 — 방법론이 먼저, 코드는 그 다음

섹션 제목: “마치며 — 방법론이 먼저, 코드는 그 다음”

이 방법론은 관념이 아니라 실측에서 나왔습니다. 우리 시스템의 기억 골격을 감사해 폐루프의 끊긴 지점을 확인했고, 오픈소스의 엔진 소스를 대조해 원칙들을 검증했으며, 그 결과를 실행계획에 박아 외부 전문가의 적대적 평가를 여러 라운드 통과시켰습니다(계획을 코드처럼 테스트하는 그 과정 자체도 별도 글감이 될 만한 이야기입니다). 남은 것은 베이스 ERP가 자리를 잡은 뒤, 이 순서 그대로 — 루프 먼저, 품질 규칙 다음, 자가학습은 표본이 허락할 때 — 배선하는 일입니다.

기억을 붙이려는 분께 한 줄로 요약해 드리면: 저장은 학습이 아닙니다. 회수가 기억이고, 관문이 품질이고, 표본이 학습입니다.