에이전트가 이전 세션 기록(transcript)에 대한 검색

AI 코딩 도구를 쓰다 보면 예전에 나눴던 대화 내용을 다시 기억시키려고 애쓴 경험이 있을 것이다. 과거의 맥락을 모두 기억한다면 더 정확하게 코드를 짤 것이라 생각하기 쉽지만, 실제 결과는 달랐다. 에이전트가 이전 세션 기록(transcript, 대화 내용 전체 저장본)을 검색할 수 있는 권한을 가져도 SWE(소프트웨어 엔지니어링) 작업 성능은 전혀 향상되지 않았다. 다른 형태의 컨텍스트를 사용할 수 있는 환경이라면, 이전 세션 기록에 대한 검색 권한이 작업 성공률을 높이는 데 아무런 기여를 하지 못했다. 오히려 수개월 동안 진행한 테스트에서는 이런 검색 기능이 모델의 성능을 오히려 떨어뜨리는 결과가 나타났다. 에이전트가 정작 필요한 정보 대신 불필요한 토큰(AI가 읽는 텍스트 최소 단위)을 낭비하게 만들기 때문이다.

대화 기록을 뒤지는 대신 커밋 메시지나 PR(Pull Request, 코드 변경 사항 제안서) 메시지, 문서 같은 코딩 아티팩트(coding artifacts, 개발 과정에서 남는 결과물)로 맥락을 제공하는 방식이 훨씬 효과적이다. 모든 코드 변경 사항이 발생할 때마다 그와 관련된 광범위한 메타데이터를 코드와 함께 커밋하며, 에이전트가 문서와 이전 PR을 직접 확인하도록 지시하는 구조를 갖춘다. 이는 에이전트가 방대한 세션 기록 속에서 가치 있는 정보를 직접 정제하게 하는 대신, 이미 정제되어 접근하기 쉬운 곳에 저장된 정보를 쓰게 만드는 전략이다. 에이전트는 이렇게 관리된 산출물을 통해 불필요한 노이즈 없이 작업에 필요한 핵심 맥락만 빠르게 파악할 수 있다.

세션 기반 메모리를 구현하는 일반적인 아키텍처는 DB 저장 후

과거의 모든 대화를 기억하게 하려는 욕심이 앞선다. 보통 조직 내 모든 기록을 DB에 저장하고 그 앞에 벡터 검색이나 Elastic search, SQL 검색 레이어를 배치하는 방식으로 구현한다. 의욕적인 팀들은 이 세 가지 검색 방식을 모두 도입하거나 복잡한 그래프 구조를 결합해 검색 정확도를 높이려 한다. 이후 MCP(모델과 외부 데이터를 연결하는 표준 규격)나 CLI(텍스트 기반 명령 도구) 스킬을 통해 에이전트가 이 데이터에 접근할 수 있도록 경로를 연다. 에이전트가 필요한 순간에 과거의 특정 맥락을 정확히 찾아내어 입력값으로 쓰게 만드는 구조다.

하지만 이렇게 구축한 데이터 파이프라인이 항상 정답을 보장하지는 않는다. PR, Slack, Drive 등 사내에서 일어나는 모든 소통 기록을 리뷰해 nori skillsets(에이전트의 수행 능력 정의서) 변경을 제안하는 nori bot을 운영한 사례가 이를 증명한다. 매주 쏟아지는 방대한 기록을 훑어 AI의 능력을 자동으로 업데이트하려 했지만, 실제로 수용된 비율은 20% 미만에 그쳤다.

이 수치는 자동 업데이트 제안의 80%가 모델 성능을 오히려 떨어뜨렸을 가능성이 크다는 점을 보여준다. 모든 세션 기록을 검색 가능하게 만든다고 해서 에이전트의 능력이 비례해서 올라가지 않는다는 뜻이다. 정제되지 않은 과거의 맥락을 그대로 주입하는 방식은 오히려 작업의 품질을 갉아먹는 결과로 이어진다. 단순히 데이터를 많이 저장하는 아키텍처보다, 어떤 정보를 정제해 남길 것인지에 대한 기준이 더 중요하다.

확인해야 할 핵심 지점

과거의 대화 내용을 모두 기억시켜 효율을 높이려던 시도가 오히려 작업 품질을 떨어뜨리는 결과로 돌아왔다. 세션 기록을 인덱싱해 에이전트에게 제공하는 도구들은 팀이 작업 과정을 추적하는 관찰 가능성(observability, 시스템 내부 상태를 파악하는 능력) 측면에서는 유용하다. 하지만 정작 에이전트의 코딩 성능 자체를 높여주지는 않는다. 기록을 많이 남길수록 에이전트가 더 똑똑해질 것이라는 기대와 달리, 세션 기록을 저장하고 다시 꺼내 보여주는 방식의 도구들이 에이전트를 더 낫게 만들지 못한다는 회의적인 결론에 이르게 된다.

문제는 에이전트가 불필요한 정보를 스스로 지우는 능력이 부족하다는 점이다. 에이전트는 입력된 컨텍스트의 모든 내용을 진실로 가정한다. 이 때문에 이전 세션에서 잠시 시도했다가 실패한 무작위 결정이나 잘못된 가설까지 현재 수행해야 할 절대적인 의도로 처리해버린다. 이런 현상을 의도 표류(intent drift, 원래 목적에서 벗어나 엉뚱한 방향으로 흐르는 것)라고 부른다. 에이전트가 스스로 메모리 베이스를 구축하려고 자율적으로 움직일수록, 과거의 잘못된 기억이 현재의 판단을 오염시키며 표류 현상은 더 심해진다.

단순히 세션 저장 도구를 도입하는 것보다 정제된 산출물을 관리하는 것이 더 효율적이다. 모든 대화 기록을 쏟아붓는 대신 PR(Pull Request, 코드 변경 사항을 반영해달라고 요청하는 기록) 메시지나 최신 문서처럼 명확하게 정리된 결과물을 제공해야 한다. 잡음이 섞인 세션 기록은 팀원들이 상황을 파악하는 용도로만 쓰고, 에이전트에게는 잘 다듬어진 지침만을 전달하는 것이 작업 품질을 지키는 기준이 된다.

과거 대화 내용을 모두 기억시키려 애썼던 노력은 오히려 작업 품질을 떨어뜨리는 결과로 돌아온다. 에이전트가 입력된 모든 내용을 무조건적인 진실로 믿어버리는 의도 표류 현상이 발생하면, 현재의 목표보다 과거의 파편화된 기록에 휘둘리기 때문이다.

이제는 세션 저장 도구를 도입하는 일보다 PR 메시지와 문서처럼 정제된 산출물을 꼼꼼히 관리하는 기준을 세워야 한다. AI 코딩 에이전트의 성능을 결정하는 것은 기억의 양이 아니라 맥락의 순도다.