에이전트가 기억을 잃지 않는다면 업무 일과는 어떻게 바뀔까
요약
AI 에이전트가 세션 간에 컨텍스트를 유지하지 못하는 근본적인 문제를 지적하며, 기존의 메모리 도구와 검색 후크 방식의 한계를 분석합니다. 진정한 기억은 단순히 저장된 정보가 아니라, 프롬프트 순간에 '무엇을 알고 있는지' 에이전트에게 제공되어야 함을 강조합니다.
핵심 포인트
- 기존 에이전트는 세션 종료 시 모든 컨텍스트를 잃어버림.
- 단순한 메모리 도구는 요청을 받기 전까지 정보를 주입하지 못함.
- 검색 후크는 파편적인 정보만 제공할 뿐, '진실'이나 규칙을 알려주지 못함.
당신은 수많은 세션 중 하나를 열듯이 에이전트와 세션을 시작합니다. 실제 작업을 하기 전에: 스택, 컨벤션, 지난 화요일에 인증 플로우(auth flow)가 왜 지금의 방식인지 결정한 것, 작년에 시도했지만 실패했던 그 문제들. 당신은 그것을 붙여넣거나, 수동으로 관리하는 마크다운 파일(markdown file)을 에이전트에게 지정하거나, 아니면 '전에 논의했듯이'라고 입력하고 희망합니다. 그리고 작업합니다. 그러다가 세션이 끝나고, 당신이 구축하는 데 쓴 모든 것이 사라집니다.
만약 당신이 매일 에이전트를 사용한다면, 이것이 당신의 루틴이며, 당신은 그것이 루틴이라는 사실을 알아차리지 못했습니다. 종료하기 전에 '컨텍스트 저장(Save context)'합니다. 아무도 소유하지 않는 위키처럼 편집하는 CLAUDE.md 파일. 소프트웨어 비용이 에디터보다 비싼데도 불구하고, 수동으로 운영해야 하는 기억에 불과한 노트 5개의 md 파일.
여기서 이상한 점이 있습니다. 당신의 기계에서 가장 똑똑한 도구는 아무것도 기억하지 못하는 유일한 도구입니다. 당신의 에디터는 설정을 기억합니다. 당신의 터미널은 기록을 기억합니다. 하지만 비용이 가장 많이 드는 브리핑(brief) 대상인 당신의 에이전트는 매일 아침 0부터 시작하며, 당신은 그것에 익숙해졌습니다.
우리는 그렇지 않았습니다. 우리는 제공되는 해결책들을 시도했지만, 모두 같은 테스트에서 실패했기 때문에, 우리는 그러지 못하는 것을 만들었습니다. 이것이 무엇인지, 평범한 화요일에 어떤 역할을 하는지, 그리고 그것을 설치하는 한 문장입니다.
이를 고치할 것이라 여겨졌던 세 가지 것들
모든 기억 도구는 하나의 질문으로 평가해야 합니다: 다음 프롬프트가 도착했을 때, 에이전트는 실제로 무엇을 알고 있는가? 저장된 것이 아닙니다. 찾을 수 있는 것도 아닙니다. 지금 모델 앞에 놓여있는 것입니다.
마크다운 파일 — CLAUDE.md와 그 사촌들. 세션 시작 시 한 번 로드되고, 그 후는 동결됩니다. 화요일에 여기에 무엇을 쓰든 그것이 에이전트가 일주일 내내 믿는 것이며, 아무도 이 파일을 유지 관리하지 않습니다. 왜냐하면 유지 관리는 당신이 벗어나려 했던 것과 같은 수동적인 노동이기 때문입니다. 한 달 안에 이것은 잡동사니 서랍처럼 변합니다: 세 가지 상충되는 지침, 두 프로젝트 전의 스택 목록, 더 이상 사실이 아닌 자신에게 주는 메모. 기억이 아니라 스냅샷일 뿐입니다.
에이전트가 호출해야 하는 메모리 도구(Memory tools). 이것들은 정보를 잘 저장합니다. 하지만 요청을 받기를 기다립니다. 에이전트가 스스로 결정하여 턴 중간에 검색하고 기억하기로 하지 않는 한, 아무것도 도착하지 않습니다. 그리고 세션 종료 시의 인계는 다음 세션이 무엇에 대해 물어볼지 생각하는 것에 달려 있습니다. 사용해야 한다는 것을 기억해야 하는 라이브러리는 메모리가 아닙니다.
검색 후크(Search hooks). 더 나은 것들은 모든 프롬프트와 함께 무언가를 밀어냅니다: 일치한 원시 텍스트 조각 몇 개입니다. 이것이 진정한 주입(injection)이며, 여전히 충분하지 않습니다. 조각들은 검색(retrieval)일 뿐, 브리핑(briefing)이 아닙니다. 그것들은 파편을 찾습니다. 그 안에는 귀하의 현행 규칙(standing rules)이 담겨 있지 않고, 나중에 결정한 내용과 파편을 조정하지 못하며, 이유가 첨부되어 오지 않습니다. 에이전트는 검색 결과를 받지만, 무엇이 진실인지 알려주지는 않습니다.
세 가지 모두 같은 방식으로 실패합니다: 지식은 어딘가에 존재하지만, 프롬프트의 순간—유일하게 중요한 순간—에는 아무것도, 혹은 거의 아무것도 도착하지 않습니다.
테스트
작동하는 메모리는 세 가지 순간에 답변해야 합니다:
- 세션 시작(Session start). 당신이 무언가를 말하기 전에 짧게: 어디까지 진행했는지, 적용 중인 규칙은 무엇인지, 계획의 다음 단계는 무엇인지.
- 모든 프롬프트(Every prompt). 해당 특정 프롬프트에 관련된 기록들이 그것과 함께 도착해야 합니다—매 턴마다 전체 메모리를 컨텍스트 창(context window)에 쏟아내지 않으면서 말입니다.
- **
오전. 기계를 시작하고 세션을 열고 "계속하기(continue)"라고 말합니다. 필요한 내용은 이미 준비되어 있습니다. 지난 세션의 인수인계 메모, 프로젝트 규칙, 계획의 다음 단계 내용, 그리고 이 프로젝트를 위한 플레이북 색인입니다. 다시 설명할 필요가 없습니다. "저장소(repo) 내용을 빠르게 요약해 주세요" 같은 요청도 불필요합니다. 세션은 계획의 최상위 줄부터 시작하여 진행됩니다.
정오. 도착하는 모든 프롬프트는 사전 브리핑이 되어 있습니다. 모든 것이 담겨 오는 것이 아니라, 오직 _그 프롬프트와 관련된 기록_만 함께 옵니다. 제가 레이트 리미터(rate limiter)에 대해 물어볼 때, 그 질문과 함께 레이트 리미터 관련 대화의 기억이 따라옵니다. 저는 3월부터 md 파일을 저장하는 것을 중단했고, 그리워하지 않습니다. 저장할 것이 없기 때문에 "컨텍스트를 저장"하는 의식이 필요 없습니다. 모든 정리 작업은 우리가 대화하는 도중에 이루어지기 때문입니다.
오후. 하나의 프로젝트에 두 개의 에이전트가 있습니다: 하나는 프런트 엔드(front end) 전담, 다른 하나는 백 엔드(back end) 전담이며, 각각 고유의 키를 가지고 하나의 메모리에서 작업합니다. 어느 쪽도 상대방이 무엇을 결정했는지 들을 필요가 없습니다. 프런트 엔드 대화가 정리되면, 그것에 관련된 백 엔드 에이전트의 다음 프롬프트는 이미 합의된 내용을 가지고 있습니다. 나중에 프런트 엔드 에이전트가 설정 페이지(settings page)에 대한 접근 방식을 제안하고 메모리를 확인하면, 답변은 이미 그곳에 존재합니다. 즉, 해당 옵션은 3월에 거부되었으며, 그 날짜와 이유가 그 대화의 내용으로 기록되어 있습니다. 아무도 죽은 옵션을 재논쟁하지 않습니다. 왜냐하면 모두 그것이 이미 끝났다는 것을 기억하고 있기 때문입니다.
위의 모든 과정은 말함으로써 이루어집니다. 저는 어떤 것도 파일로 저장하거나, 저장 도구(save tool)를 호출하거나, 동기화(sync) 작업을 수행하는 일이 없습니다. 에이전트가 메모리를 관리합니다. 왜냐하면 그 메모리가 관리될 필요가 있기 전에 이미 컨텍스트 안에 나타나기 때문입니다.
솔직한 트레이드오프(trade-off) 하나를 말씀드리자면, 주입(injection)은 컨텍스트 비용을 발생시킵니다. 브리핑과 프롬프트별 기록이 토큰(token)을 차지하는 것이 바로 주입입니다. 그 대가로 얻는 것은 도구 호출(tool calls), 턴(turns), 그리고 탐색 과정입니다. 전반적으로 볼 때, 이 교환은 지난 몇 달 동안 우리에게 유리하게 기울어 왔습니다.
내부 작동 방식이 다른 이유
서로 다른 역할을 가진 세 가지 레이어로 구성되어 있습니다:
- **큐레이션된 기록(Curated records)**은 현재의 진실입니다. 메모리는 5회의 대화 단위로 사용자의 대화를 읽고, 그 대화가 정리한 내용만을 보존합니다. 새로운 사실을 오래된 사실과 조정하고, 사용자가 대체한 것을 설명하는 기록은 조용히 폐기됩니다. 당신은 아무것도 파일링하지 않습니다. 파일할 것이 없습니다.
- **결정 그래프(The decision graph)**는 그곳에 도달한 과정을 보여줍니다. 모든 결정은 하나의 선입니다: 날짜가 찍혀 있고, 발언되었을 때의 이유와, 이겨낸 옵션이 기록됩니다. 되돌림(Reversals)은 새로운 선이며 — 역사는 결코 다시 쓰이지 않기 때문에 "왜 이런가?"라는 질문에는 항상 답이 있습니다.
- **전체 기록(The full history)**은 모든 것입니다. 키워드나 의미로 검색 가능하게 전체가 보존됩니다. 기록은 진실인 것을, 그래프는 일어난 일을, 아카이브는 이 둘 모두의 기반입니다.
실제적으로 중요한 두 가지 세부 사항:
프로젝트는 격리되어 있습니다. 각 프로젝트는 자체적인 기록, 규칙, 그래프, 계획을 가집니다. 사용자가 직접 크로스-프로젝트 검색(cross-project search)을 요청하지 않는 한, 그들 사이의 정보가 섞이는 일은 없습니다. 호스팅 메모리에서는 범위 지정 키(scoped keys)를 통해 팀원, 고객 또는 하청업체에게 당신이 선택한 정확한 프로젝트에만 — 읽기/쓰기(read-write), 읽기 전용(read-only) 또는 비공개(invisible) 방식으로 — 접근 권한을 부여할 수 있으며 그 외의 것은 절대 불가능합니다.
규칙은 잡동사니 서랍에 썩지 않습니다. 각 규칙에는 제한이 있으며, 풀(pool)에도 제한이 있습니다. 사용자는 80%가 되면 경고를 받으며, 과부하될 경우 저장 자체가 시스템에서 거부됩니다. 당신이 작성한 어떤 내용도 조용히 잘리거나 삭제되는 일은 없습니다.
그리고 이 시스템을 이렇게 구축한 이유이기도 한 개인 정보 보호(privacy) 측면입니다: 사용자의 메모리는 기기 자체(로컬 컨테이너, 그곳에만 저장되며 다른 곳에는 저장되지 않음) 또는 암호화된 클라우드에 존재합니다. 저희 허브는 메모리를 만들고 브리프를 작성하기 위해 일부 조각들을 처리하지만, 이 조각들 중 어느 것도 보관하지 않습니다.
왜 우리를 믿어야 하는가
우리가 그것을 기반으로 작동하기 때문입니다. 저희 회사 자체의 업무가 2025년 12월부터 매일 이 시스템을 거쳐왔습니다. 그 이전에는 md 파일이었고, 그 달들의 거의 모든 것이 손실되었습니다 — 이것이 한 문장으로 요약되는 전체 논거입니다. 4월 이후의 모든 대화는 여전히 존재하며 검색 가능합니다.
그리고 이것이 시작된 방식 때문에요. 저는 AI 에이전트의 대부분의 메모리 시스템을 시도해 봤습니다. 각각은 이 중 일부를 수행했지만, 제가 필요로 하는 것을 하는 것은 아무것도 없었습니다. 그래서 제가 그것을 구현했습니다.
한 문장으로 말하기
이를 위해 IT 지식이 필요하지 않습니다. 설치는 에이전트에게 단 한 문장만 입력하면 됩니다: "install brethof-brain." 이 명령어는 클라이언트를 가져오고, 후크를 연결하며, 자체 작동을 확인합니다. 유일한 인간의 단계는 지구상의 모든 애플리케이션이 요구하는 것들입니다: 가입하고 로컬 또는 호스팅을 선택하는 것입니다. 로컬 환경에서는 brethof.ai에서 짧은 코드를 승인하면 되고, 키가 절대로 표시되지 않기 때문에 에이전트가 전체 설치를 실행할 수 있습니다. 호스팅 환경에서는 키를 복사하여 암호 구문과 함께 자신의 화면에 있는 작은 창에 한 번 붙여넣으면 되며, 이 경우에도 에이전트는 어느 쪽도 볼 수 없습니다. 시작은 무료이며, Claude Code, Codex, OpenClaw, Hermes 및 여러분이 이미 실행하고 있을 가능성이 높은 다른 하네스들과 작동합니다.
여기까지 읽으셨다면, 업무의 일부로 재설명하는 것을 받아들이신 것입니다. 그렇지 않습니다.
brethof.ai/brain/에서 시작하여 에이전트에게 다음과 같이 지시하세요: install brethof-brain.
만약 직접 이 글에 대해 작성하게 된다면, 저희는 제휴 프로그램을 운영합니다 — 자세한 내용은 brethof.ai/brain/affiliate/.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기