AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

장기 실행 AI 에이전트, 기억을 버릴 것인가 압축할 것인가

지금까지 AI 챗봇은 대화가 길어지면 오래된 부분을 잘라내면 그만이었습니다. 하지만 며칠씩 혼자 작업하는 에이전트에게는, 무엇을 버리고 무엇을 남길지가 설계의 핵심 문제가 됐습니다.

사진 출처: MachineLearningMastery

MachineLearningMastery가 장시간 자율적으로 작동하는 AI 에이전트를 위한 컨텍스트 윈도우 관리 전략을 정리했습니다. 핵심은 에이전트도 사람처럼 모든 걸 기억할 수 없다는 것, 그래서 결국 무엇을 잊을지부터 설계해야 한다는 겁니다.

출처: Context Window Management for Long-Running Agents: Strategies and Tradeoffs – MachineLearningMastery

그냥 버리거나, 압축해서 남기거나

가장 단순한 방법은 오래된 대화를 그냥 지우는 것입니다. 핵심 지침만 상단에 고정해 두고, 대화가 일정 길이를 넘으면 가장 오래된 부분부터 잘라내는 방식이죠. 계산 비용이 거의 들지 않아 빠르고 저렴하지만, 문제는 에이전트가 한 시간 전에 이미 겪은 실수를 완전히 잊어버린다는 것. 같은 문제에 부딪히고, 같은 방식으로 실패하는 루프에 빠질 수도 있는 겁니다.

대안은 오래된 대화를 지우는 대신 요약해서 남기는 방법입니다. JPEG 파일이 압축을 거듭할수록 흐려지듯, 대화도 압축을 반복할수록 세부사항을 잃죠. 다만 전체적인 줄거리, 즉 에이전트가 지금 무슨 임무를 수행 중인지에 대한 감각은 유지할 수 있습니다. 정확한 기억 대신 흐릿하지만 긴 기억을 선택한 셈이네요.

아예 기록을 없애거나, 밖에 맡기거나

좀 더 급진적인 방식은 대화 기록 자체를 남기지 않는 것입니다. 목표와 사실, 오류를 정리한 JSON 형태의 상태 값 하나만 유지하고, 매 턴마다 원래 대화는 버린 채 이 상태 값과 새 입력만 에이전트에게 넘기죠. 토큰 소모는 크게 줄어들지만, 이 상태 값에 미리 정의되지 않은 변수는 아무리 중요해도 누락되고 맙니다. 설계자가 무엇을 추적할지 미리 정확히 예측해야 하는 부담이 따르는 겁니다.

컨텍스트 자체를 아예 외부 데이터베이스로 넘기는 방법도 있습니다. 과거 기록 전체를 벡터 데이터베이스에 저장해 두고, 필요할 때마다 관련성 높은 내용만 검색해서 가져오는 방식이죠. 이론적으로는 컨텍스트 용량 제한 없이 계속 작동할 수 있지만, 검색이 놓치는 지점이 생깁니다. 특히 겉보기에 무관해 보이는 두 사건을 연결해야 하는 상황에서는, 검색 시스템이 그 연결고리를 찾아내지 못할 수도 있습니다.

상황에 따라 모델을 바꾸는 방법

다섯 번째 전략은 두 개의 모델을 함께 쓰는 겁니다. 평소에는 작고 저렴한 모델이 컨텍스트를 짧게 유지하며 반복적인 작업을 처리하죠. 그러다 같은 작업을 세 번 연속 실패하는 등 예외 상황이 발생하면, 그제야 전체 기록을 큰 컨텍스트를 가진 강력한 모델에게 넘겨 상황을 정리하고 다시 지침을 받아옵니다. 비용 효율은 좋지만, 정작 “언제 저렴한 모델이 막혔다고 판단할지”를 안정적으로 감지하는 로직 자체를 만들기가 까다롭네요.

다섯 가지 전략을 나란히 보면 결국 하나의 축 위에 있습니다. 버릴 것인가, 압축해서 남길 것인가, 아니면 외부에 맡길 것인가. 그리고 그중 무엇을 선택하든 대가가 따르죠. 원문은 이걸 이렇게 정리합니다. 장기 실행 에이전트를 만드는 일은 무한한 기억이라는 환상을 좇는 게 아니라, 무엇을 기억하고 무엇을 잊어도 되는지 판단하는 구조를 설계하는 일이라고요.


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다