Tencent가 이번 주에 AI 에이전트를 위한 오픈소스 메모리 시스템인 'TencentDB Agent Memory'를 공개했다. 이 프로젝트는 MIT 라이선스로 배포되었으며, 장기 과업을 수행하는 에이전트가 겪는 고질적인 문제인 컨텍스트 비대화(Context Bloat)와 기억 회수 실패(Recall Failure)를 해결하는 데 집중한다.
에이전트가 복잡한 작업을 오래 수행하다 보면 대화 기록과 도구 사용 로그가 쌓여 입력 가능한 토큰 한도를 금방 채우게 된다. 이렇게 되면 정작 중요한 초기 지침이나 핵심 정보를 잊어버리는 현상이 발생한다. 텐센트는 이를 해결하기 위해 단순한 로그 저장이 아니라, 상징적 단기 메모리와 계층적 장기 메모리를 결합한 파이프라인을 설계했다.
이 시스템은 OpenClaw(오픈소스 AI 에이전트 프레임워크)의 플러그인으로 작동하거나, Hermes Agent(텐센트의 AI 에이전트 구현체)와 게이트웨이 어댑터를 통해 연결된다. 특히 외부 API 호출 없이 로컬 SQLite와 sqlite-vec 확장 기능을 기본 백엔드로 사용하여 데이터 보안과 속도를 동시에 잡았다. 텐센트 개발팀은 이번 공개를 통해 에이전트가 방대한 데이터 속에서도 길을 잃지 않고, 필요한 정보만 정밀하게 찾아내는 '결정론적 드릴다운' 구조를 구현했음을 강조했다.
MIT 라이선스로 공개된 TencentDB Agent Memory의 핵심 제원
텐센트가 공개한 이번 저장소의 라이선스는 MIT 라이선스로 설정되어 있다. 쉽게 말하면 기업이나 개인이 상업적 목적으로 사용하거나 코드를 수정해 배포해도 제약이 거의 없는 매우 자유로운 방식이다. 이 시스템을 실제로 구동하려면 Node.js 22.16 버전 이상의 환경이 필수적이다. Node.js는 웹브라우저 밖에서도 자바스크립트라는 프로그래밍 언어를 실행할 수 있게 해주는 도구인데 최신 버전의 런타임을 요구한다는 점은 최신 언어 기능과 성능 최적화를 적극적으로 활용했음을 보여준다.
배포 방식은 개발자의 상황에 맞춰 두 가지 경로를 제공한다. 먼저 가벼운 라이브러리 형태로 가져다 쓰고 싶은 개발자를 위해 npm 패키지 형태로 제공된다. npm은 자바스크립트 생태계의 거대한 부품 창고 같은 곳인데 여기서 `@tencentdb-agent-memory/memory-tencentdb`라는 이름의 패키지를 설치해 바로 사용할 수 있다. 반면 시스템 전체를 한 번에 구축하고 싶은 경우에는 Hermes Agent용 Docker 이미지를 활용하면 된다. Docker는 애플리케이션 실행에 필요한 모든 환경을 컨테이너라는 가상 상자에 담아 제공하는 기술이다. 덕분에 복잡한 설정 과정 없이 이미지 하나만 내려받으면 즉시 작동하는 환경을 만들 수 있다.
데이터를 저장하는 방식은 기본적으로 로컬 SQLite와 sqlite-vec 확장을 사용한다. SQLite는 별도의 서버 설치 없이 파일 하나로 관리되는 가벼운 데이터베이스다. 비유하자면 거대한 도서관 서버가 아니라 내 책상 위에 둔 작은 수첩과 같다. 여기에 추가된 sqlite-vec는 벡터 검색 기능을 더해주는 확장 도구다. 벡터 검색이란 단어의 정확한 철자가 아니라 의미상의 유사성을 계산해 데이터를 찾는 기술이다. 만약 로컬 저장소보다 더 강력한 성능과 확장성이 필요한 기업 환경이라면 텐센트 클라우드 벡터 데이터베이스인 TCVDB(Tencent Cloud Vector Database)를 선택 저장소로 연결해 사용할 수 있다.
전체 소스 코드와 상세한 가이드는 공식 저장소인 github.com/Tencent/TencentDB-Agent-Memory에서 확인할 수 있다. 개발자는 이곳에서 4단계 메모리 구조가 어떻게 구현되었는지 살펴보고 자신의 AI 에이전트에 맞게 설정을 변경할 수 있다. 특히 로컬 환경에서 외부 API 호출 없이도 메모리 시스템을 구축할 수 있다는 점이 이 제원의 핵심이다.
L0부터 L3까지, 4단계 피라미드형 메모리 구조의 작동 원리
대부분의 AI 메모리 시스템은 대화 내용을 파편화해 평면적인 저장소에 무작위로 던져넣는다. 텐센트의 방식은 여기서 벗어나 L0부터 L3까지 이어지는 4단계 피라미드 구조를 채택했다. 쉽게 말하면 정보를 계층적으로 압축하는 방식이다. 가장 바닥인 L0는 가공되지 않은 원시 대화 내용을 담고, L1은 여기서 추출한 원자적 사실을, L2는 관련 사실들을 묶은 장면 블록을, 최상단인 L3는 사용자의 전반적인 특성을 정의한 페르소나(사용자 프로필)를 저장한다. 하위 계층이 증거를 보존한다면 상위 계층은 정보의 구조를 유지하는 역할을 수행하며, 모든 메모리 결과물은 `~/.openclaw/memory-tdai/` 경로에 저장된다.
복잡한 로그가 컨텍스트 창을 가득 채우는 문제는 심볼릭 메모리(기호를 통해 정보를 표현하는 방식)로 해결했다. 비유하자면 두꺼운 매뉴얼은 서랍에 넣어두고 책상 위에는 간단한 순서도만 올려두는 것과 같다. 상세한 도구 실행 로그나 추적 데이터는 `refs/*.md` 파일로 따로 빼내어 저장하고, AI의 작업 창에는 Mermaid(다이어그램 작성 언어) 문법으로 작성된 상태 전이 그래프만 남겨둔다. AI는 이 가벼운 기호 그래프를 통해 현재 상황을 파악하다가, 구체적인 텍스트가 필요할 때만 해당 노드 아이디를 이용해 원본 파일을 찾아 읽어오는 드릴다운 방식을 사용한다.
정보를 다시 불러오는 회수 프로세스는 효율성을 극대화하기 위해 역피라미드 순서로 진행된다. 먼저 L3 페르소나를 쿼리해 사용자의 기본 성향을 파악하고, 더 세부적인 정보가 필요할 때만 L2나 L1, L0 순으로 깊게 파고든다. 이때 검색 정확도를 높이기 위해 하이브리드 검색 전략을 쓴다. BM25(키워드 기반 검색 알고리즘)와 벡터 임베딩(데이터를 숫자로 변환해 의미적 유사도를 찾는 방식) 결과를 결합하는데, 여기서 RRF(순위 재조정 합산 알고리즘)를 사용해 두 방식의 순위를 재조정하고 최적의 결과물을 도출한다.
메모리의 최신성을 유지하는 자동 업데이트 체계도 갖췄다. 대화가 5턴 진행될 때마다 시스템은 자동으로 L1 단계의 원자적 사실을 추출해 저장한다. 이렇게 쌓인 새로운 메모리가 50개에 도달하면 최상위 계층인 L3 페르소나를 다시 갱신해 사용자의 변화된 특성을 반영한다. 이러한 계층적 압축과 주기적 갱신 덕분에 AI는 방대한 대화 기록 속에서도 길을 잃지 않고 필요한 정보만 정확하게 끄집어낼 수 있다.
'평면적 벡터 저장'과 '계층적 심볼 메모리'의 결정적 차이
기존의 AI 메모리 시스템은 데이터를 아주 작은 조각으로 파편화해 평면적인 벡터 스토어(데이터를 다차원 숫자로 변환해 저장하는 공간)에 저장했다. 쉽게 말하면 수만 장의 서류를 갈기갈기 찢어 거대한 창고에 무작위로 뿌려둔 것과 비슷하다. 사용자가 질문을 던지면 AI는 창고에서 질문과 가장 비슷하게 생긴 종이 조각들을 찾아내는데, 이를 맥락 없는 단순 유사도 검색(Blind Similarity Search)이라고 부른다. 이 방식은 개별 조각의 유사성은 잘 찾아낼지 몰라도, 데이터 간의 연결 고리가 끊어져 있어 전체적인 맥락을 놓치기 쉽다. 거시적인 가이드라인 없이 단순히 비슷해 보이는 정보만 긁어모으다 보니, 정작 중요한 핵심 맥락을 놓치고 엉뚱한 답변을 내놓는 한계가 있었다.
텐센트DB 에이전트 메모리(TencentDB Agent Memory)는 이런 파편화된 방식을 버리고 상위 계층은 구조를, 하위 계층은 증거를 보존하는 피라미드 구조를 도입했다. 비유하자면 무질서한 서류 더미 대신 체계적인 도서관 분류 시스템을 세운 것과 같다. 가장 꼭대기인 L3 페르소나(사용자 프로필) 계층에서 사용자의 전반적인 성향과 선호도를 먼저 파악하고, 필요에 따라 L2 시나리오(장면 블록), L1 아톰(원자적 사실), 그리고 가장 바닥인 L0 대화(원시 텍스트) 순으로 세부 정보를 파고든다. 상위 계층이 전체적인 지도를 제공하고 하위 계층이 그 지도를 뒷받침하는 구체적인 증거를 보관하는 구조다. 덕분에 AI는 더 이상 안개 속에서 비슷한 조각을 찾는 것이 아니라, 명확한 위계 체계를 따라 필요한 정보에 정확히 도달한다.
검색 경로 역시 확률에 의존하던 기존 방식에서 벗어나 결정론적인 경로를 제공하는 방식으로 바뀌었다. 상위 심볼에서 시작해 중간 인덱스를 거쳐 하위의 원시 텍스트로 이어지는 일직선상의 경로가 설계되어 있다. 이는 마치 상세 주소를 따라 정확한 집을 찾아가는 과정과 같아서, 검색 결과가 매번 달라지거나 엉뚱한 곳으로 튀는 현상을 방지한다. 저장 매체를 성격에 따라 분리한 전략도 효율적이다. 사실이나 로그, 트레이스처럼 양이 방대하고 빠른 검색이 필요한 데이터는 데이터베이스(DB)에 저장해 처리 속도를 높였다. 반면 페르소나나 장면, 캔버스처럼 사람이 직접 읽고 수정하기 쉬워야 하는 구조적 정보는 마크다운(Markdown) 파일 형태로 저장해 가독성과 관리 편의성을 동시에 잡았다.
토큰 사용량 최대 61% 절감과 벤치마크 성능 향상 수치
개발팀이 공개한 수치는 여기서 갈린다. WideSearch(광범위한 정보 검색 벤치마크) 테스트 결과, 작업 통과율이 33%에서 50%로 뛰었다. 단순 수치로는 17%p 차이지만 상대적인 향상 폭은 51.52%에 달한다. 더 놀라운 점은 비용이다. 토큰 사용량이 221.31M에서 85.64M으로 줄어들며 약 61.38%의 비용을 아꼈다. 쉽게 말하면, AI가 사용하는 토큰은 일종의 연료와 같다. 기존에는 목적지를 찾기 위해 온 동네를 다 돌아다니며 연료를 낭비했다면, 이제는 최단 경로를 찾아내어 연료 소비를 획기적으로 줄이면서도 정답에 도착할 확률은 높인 셈이다.
소프트웨어 엔지니어링 능력을 측정하는 SWE-bench(소프트웨어 엔지니어링 벤치마크)에서도 비슷한 흐름이 나타난다. 특히 이 벤치마크는 한 세션당 50개의 연속적인 작업을 수행해 컨텍스트가 계속 쌓이는 압박 상황을 시뮬레이션한다. 여기서 성공률은 58.4%에서 64.2%로 올랐고, 토큰 사용량은 3474.1M에서 2375.4M으로 33.09% 감소했다. 장기 기억 추론을 평가하는 AA-LCR(장기 기억 추론 벤치마크) 역시 성공률이 44.0%에서 47.5%로 개선되었으며, 토큰 사용량은 112.0M에서 77.3M으로 30.98% 줄었다. 비유하자면, 수천 페이지의 매뉴얼을 매번 처음부터 끝까지 다시 읽고 답을 찾던 방식에서, 필요한 부분만 빠르게 찾아내는 인덱스 시스템을 갖춘 것과 같다.
사용자 맞춤형 기억 능력을 보는 PersonaMem에서는 정확도가 48%에서 76%로 급격히 상승했다. 이는 AI가 사용자의 고유한 취향이나 과거의 세세한 맥락을 훨씬 더 정확하게 기억해낸다는 뜻이다. 실무자 입장에서 이러한 토큰 절감과 성능 향상은 단순한 비용 아끼기가 아니라 서비스의 상용화 가능성과 직결된다. 그동안 AI 에이전트를 개발할 때 가장 큰 걸림돌은 대화가 길어질수록 이전 내용을 잊어버리거나, 기억을 유지하기 위해 투입되는 비용이 기하급수적으로 늘어나는 컨텍스트 팽창 문제였다. 이번 결과는 메모리 계층화를 통해 성능과 비용이라는 상충하는 두 가치를 동시에 잡을 수 있음을 수치로 증명한다. 개발자는 이제 무작정 모델의 컨텍스트 윈도우(한 번에 처리 가능한 데이터 양)를 늘려 비용을 감당하는 대신, 효율적인 기억 관리 아키텍처를 구축하는 방향으로 전략을 수정할 수 있게 되었다. 이는 곧 더 적은 자원으로 더 똑똑한 AI 서비스를 운영할 수 있는 기반이 된다.
로컬 DB 기반 메모리 설계가 한국 AI 실무자에게 주는 시사점
개발자가 바로 체감하는 변화는 응답 속도보다 제어권이다. 기존의 많은 메모리 시스템이 외부 API를 통해 데이터를 저장하고 불러오는 방식이었다면, 이번 설계는 로컬 SQLite(가볍게 사용할 수 있는 파일 기반 데이터베이스)만으로 구동이 가능하다. 비유하자면 모든 기록을 외부의 거대한 중앙 도서관에 맡기고 매번 요청해서 받아보던 방식에서, 내 책상 서랍 속에 개인 수첩을 두고 필요할 때마다 바로 꺼내 보는 방식으로 바뀐 셈이다. 이는 특히 보안에 민감한 한국의 기업 환경에서 실무적인 가치가 매우 크다. 외부 서버로 데이터가 전송되지 않으므로 데이터 유출 우려를 근본적으로 낮출 수 있고, 인프라 독립성을 확보해 네트워크 지연이나 외부 서비스 장애로부터 자유로워지기 때문이다.
실제 에이전트가 기억을 되살리는 과정은 두 가지 전용 도구를 통해 이루어진다. 먼저 `tdai_memory_search`는 정제된 정보인 L1 원자, L2 시나리오, L3 페르소나 층을 검색하며, `tdai_conversation_search`는 가공되지 않은 L0 대화 기록을 직접 찾아낸다. 쉽게 말하면 전자는 요약 노트에서 핵심 키워드를 찾는 과정이고, 후자는 전체 녹취록을 다시 처음부터 훑어보는 과정과 같다. 이러한 복잡한 계층 구조임에도 불구하고 설정 방법은 매우 단순하다. `~/.openclaw/openclaw.json` 파일 내의 플래그 하나만 활성화하면 즉시 로컬 메모리 시스템이 작동한다. 복잡한 데이터베이스 설치 과정 없이 설정 파일 수정만으로 기능을 켜고 끌 수 있다는 점은 빠른 프로토타이핑이 필요한 실무자에게 큰 이점이다.
이러한 설계는 장기 세션 유지가 필수적인 B2B 에이전트 구축 시 더욱 강력한 힘을 발휘한다. 기업용 에이전트는 업무 맥락이 길어질수록 컨텍스트 윈도우(AI가 한 번에 처리할 수 있는 기억 용량)에 쌓이는 토큰 양이 급증하며, 이는 곧바로 운영 비용 상승과 응답 품질 저하로 이어진다. 로컬 DB 기반의 메모리 설계는 필요한 정보만 정밀하게 추출해 주입함으로써 토큰 비용을 획기적으로 절감하는 벤치마크로 활용될 수 있다. 기억의 정확도를 높이면서도 비용 효율성을 동시에 챙겨야 하는 한국 AI 실무자들에게, 외부 의존도를 낮춘 로컬 메모리 구현은 단순한 기능 추가를 넘어 서비스의 지속 가능성을 결정짓는 핵심적인 전략적 선택지가 될 것이다.




