본문으로 건너뛰기
Tech

최근 아티클

최근 아티클을 표시합니다.
    Research11 MIN

    부동산 Agent는 고객 조건을 어떻게 기억해야 할까

    다음 상담에 필요한 조건을 남기고, 갱신하고, 불러오는 방법

    부동산 AI Agent(real estate AI agent)의 장기기억(agent memory)은 고객이 조건을 바꾸는 순간부터 어려워집니다.

    “서울에서 출퇴근하기 괜찮은 집을 보고 있어요. 예산은 6억 안팎이고, 매매로 알아보고 있습니다.”

    고객은 상담을 이어가다가 방향을 바꿨습니다.

    “이번에는 전세로 볼게요.”

    현재 세션에서 이 말을 이해하기는 어렵지 않습니다. 문제는 상담이 끝난 뒤였습니다. 다음 세션에서 고객이 다시 찾아왔을 때 과거의 매매 조건과 새로 밝힌 전세 조건 가운데 무엇을 이어받아야 할까요? 대화 기록을 통째로 넘기면 두 조건이 모두 남습니다. 최근 몇 줄만 읽으면 서울과 6억이라는 조건을 놓칠 수 있습니다.

    BigValue가 부동산 상담 Agent의 메모리 시스템을 설계하며 마주한 문제도 여기에서 시작했습니다. 필요한 것은 대화를 더 많이 쌓는 저장소가 아니었습니다. 다음 상담에도 쓸 고객 조건을 고르고, 바뀐 값을 고치고, 철회된 값을 더는 사용하지 않으며, 현재 질문에 필요한 기억만 다시 불러오는 과정이었습니다.

    이 글에서는 고객 조건을 선별하고, 상담과 기록의 책임을 나누고, 변경된 조건을 갱신·철회한 뒤, 현재 질문에 필요한 기억만 회수하는 네 가지 설계 규칙을 다룹니다.

    세션 기록과 장기기억은 다릅니다

    앞선 글에서는 부동산 데이터 마트를 Agent가 질문에 맞게 사용할 수 있도록 도구와 근거 확인 절차를 설계한 과정을 다뤘습니다. 데이터에 접근할 수 있게 된 뒤에도 상담이 저절로 이어지지는 않았습니다. 어떤 고객이 지금 어떤 조건으로 집을 찾는지 이어받는 문제가 남았습니다.

    한 세션의 메시지에는 여러 종류의 정보가 섞입니다. 고객이 직접 말한 조건, Agent가 확인하려고 물은 내용, 아직 검증하지 않은 추정, 이미 바꾼 조건, 상담과 관계없는 대화가 같은 기록에 남습니다. 이 기록은 현재 대화의 흐름을 이해하는 데 유용하지만, 다음 세션에서 그대로 재사용할 고객 조건과 같지는 않습니다.

    과거 매매 조건과 현재 전세 발화가 충돌해 어떤 조건을 기억해야 하는지 갈라지는 장면

    과거의 매매 조건과 현재의 전세 조건을 함께 유효한 기억으로 취급하면, 다음 상담도 오래된 조건에서 시작할 수 있습니다.

    저희는 기억을 저장 위치가 아니라 수명주기와 재사용 목적에 따라 나눴습니다. 단기기억은 현재 세션의 대화와 작업 맥락입니다. 현재 질문을 이해하고 응답하는 동안 유지됩니다. 장기기억은 세션을 넘어 다시 사용할 고객 조건입니다. 장기기억으로 남기기 전에는 선별하고, 남긴 뒤에는 갱신·철회·검색 정책을 적용합니다.

    세션에 대화가 남아 있다는 사실과, 다음 세션에서도 유효한 고객 조건을 기억하고 있다는 것은 다릅니다. 이 차이를 구분하지 않으면 매매에서 전세로 바뀐 조건을 알아차리고도 다음 상담에서 다시 매매 조건을 꺼낼 수 있습니다.

    네 가지 규칙으로 장기기억을 관리합니다

    장기기억에는 저장량보다 기억을 선별하고 바꾸고 사용하는 규칙이 중요했습니다.

    1. 다음 상담에 필요한 조건만 남깁니다

    처음부터 저장 방식을 고르지는 않았습니다. 어떤 정보를 다음 상담에서 다시 쓸 기억으로 볼지 먼저 정했습니다. 거래유형, 예산, 관심 지역, 대출 의향, 기존 주택 보유 여부, 상담 단계처럼 다음 판단에도 영향을 주는 조건을 기억 후보로 삼았습니다. 현재 상담 중인 대상처럼 대화를 이어가는 데 필요한 맥락도 함께 검토했습니다.

    후보가 됐다고 모두 기록하지는 않았습니다. 다음 상담과 관계없는 말은 남기지 않고, 확인되지 않은 추정을 고객의 조건으로 확정하지 않았습니다. 이미 철회됐거나 새 값으로 대체된 조건도 현재 조건처럼 추가하지 않았습니다.

    이름이나 이메일처럼 고객을 직접 식별할 수 있는 정보는 제외하고, 상담을 이어가는 데 필요한 조건만 기록합니다.

    이 기준은 메모리를 요약문과 다르게 만들었습니다. 요약문은 지난 대화를 짧게 줄일 수 있지만, 어떤 항목을 다음 세션까지 유지할지 판단하지는 못합니다. 저희가 필요했던 것은 대화의 축약본이 아니라, 재사용 목적이 분명한 조건과 그 조건의 현재 유효성을 다루는 기록이었습니다.

    다만 기억 범위를 좁히면 대화의 세부 뉘앙스를 놓칠 수 있습니다. 반대로 범위를 넓히면 낡은 조건과 불필요한 정보가 늘어납니다. 그래서 “저장할 수 있는가”보다 “다음 상담에서 다시 써야 하는가”를 기록 여부의 기준으로 삼았습니다.

    2. 상담과 기억 기록의 책임을 나눕니다

    초기에는 상담원 Agent가 고객에게 답하면서 기억도 직접 정리했습니다. 한 번의 응답 안에서 기존 조건을 읽고, 현재 발화를 해석하고, 답변을 만든 뒤, 새 조건을 추출해 이전 기록과 비교하고 다시 저장했습니다.

    이 구조는 책임이 한곳에 모여 단순해 보였습니다. 하지만 상담 응답과 기억 기록은 실패 방식이 달랐습니다. 답변은 성공해도 기억 기록은 빠질 수 있습니다. 기록을 다시 시도하기 위해 고객 응답까지 되풀이할 이유도 없었습니다. 조건 비교가 길어질수록 고객이 기다리는 응답 경로도 함께 무거워졌습니다.

    실제 상담에서 상담원과 내용을 정리하는 조수가 역할을 나누듯, Agent의 책임도 분리했습니다. 상담원 Agent는 고객과 대화하는 데 집중합니다. 조수 Agent는 상담이 끝난 뒤 기억 후보를 추출하고 기록할 가치가 있는지 판단합니다. 기존 기억과 비교한 결과는 추가·갱신·철회·확인 필요 가운데 하나로 정리합니다.

    상담원 마스코트가 현재 세션의 대화를 진행하고, 별도의 조수 마스코트가 상담 결과에서 재사용할 조건을 선별해 장기기억을 관리하는 역할 분리 장면

    상담원은 현재 세션의 대화를 이어가고, 조수 Agent는 그 결과에서 다시 쓸 조건을 골라 별도의 장기기억 경로에서 관리합니다.

    역할을 나누면서 상담과 기억 관리를 서로 다른 실패 단위로 볼 수 있게 됐습니다. 답변 성공 여부와 기록 성공 여부를 따로 관측하고, 기억 기록만 별도로 다시 시도할 수 있는 구조로 나눴습니다.

    비동기 기록에는 순서와 중복이라는 새 문제가 생겼습니다. 먼저 시작된 기록 작업이 나중에 바뀐 조건을 덮거나, 같은 결과를 두 번 반영할 수 있습니다. 분리된 두 경로에 서로 다른 지연·재시도·실패 조건이 필요했습니다.

    3. 추가·대체·철회·확인 필요를 구분합니다

    기억 후보를 고르는 경로를 분리하자 더 어려운 문제가 선명해졌습니다. 새 조건을 빈칸에 넣는 일보다, 이미 있는 조건을 언제 바꾸고 지울지 정하는 일이었습니다. 부동산 Agent의 메모리에서는 검색보다 갱신 규칙이 먼저 필요했습니다.

    저희는 현재 고객이 명시한 발화를 기존 값보다 우선했습니다. 위치처럼 별도 검증이 필요한 값은 확인된 기준으로만 기록하고, 충돌하는 조건은 어떤 발화에서 나온 값인지 함께 살폈습니다. 단순히 가장 최근 메시지를 고르는 대신 현재 의도를 뒷받침하는 근거를 확인했습니다.

    서울에서 6억 안팎의 매매를 찾던 고객이 “이번에는 전세로 볼게요”라고 말했다면, 거래유형에 매매와 전세를 함께 추가하지 않습니다. 과거의 매매 조건을 현재의 전세 조건으로 갱신합니다. 예산을 바꿨다면 과거 값과 평균을 내거나 두 범위를 합치지 않고, 현재 명시한 값으로 고칩니다.

    철회는 추가의 반대가 아니었습니다. “마포는 제외해 주세요”라는 말은 새로운 관심 지역을 더하는 요청이 아닙니다. 마포가 이전 선호에 남아 있다면 제외 조건을 반영해야 합니다. 이후 검색에서도 마포가 현재 관심 지역처럼 회수되지 않아야 합니다. 고객이 조건을 모순되게 말했거나 지역을 하나로 확정하기 어렵다면 기억으로 확정하지 않고 Agent가 다시 확인하도록 남겨둡니다.

    고객 장기기억 화면에서 현재 발화를 근거로 거래유형을 매매에서 전세로 대체하고 변경 이력을 남기는 과정

    새 발화를 그대로 더하지 않고 기존 기억과 비교해 대체·철회·확인 필요 여부를 정하는 과정이 핵심입니다.

    전체 초기화에는 별도 경계가 필요했습니다. 초기화 전에 시작된 비동기 작업이 늦게 끝나 과거 조건을 다시 기록하면, 이미 지운 조건이 되살아납니다. 따라서 초기화 이전 작업과 이후 작업을 구분해야 했습니다. 이전 작업의 결과가 새 기억에 섞이지 않도록 막았습니다.

    현재 발화를 무조건 덮어쓰면 고객이 “전세도 같이 볼게요”처럼 선택지를 넓힌 경우를 잘못 축소할 수 있습니다. 그래서 추가, 대체, 철회, 확인 필요를 같은 연산으로 처리하지 않았습니다. 기억의 최신성만 보는 대신 발화가 조건을 바꿨는지, 넓혔는지, 취소했는지를 구분했습니다.

    장기기억에는 저장 규칙만으로 부족했습니다. 시간이 지나며 값이 변하는 도메인에서는 갱신, 철회, 충돌, 초기화를 함께 설계해야 했습니다.

    4. 현재 질문에 필요한 기억만 불러옵니다

    기억을 제대로 고쳐도 다음 세션에서 모두 불러오면 처음 문제로 돌아갑니다. 저장된 조건이 많아질수록 현재 질문과 관계없는 과거 관심사가 함께 들어오고, 철회된 값이 남아 있다면 다시 현재 조건처럼 쓰일 수 있습니다.

    저희는 먼저 사용자와 상담 범위를 확인하고, 현재 질문과 관련 있는 기억을 찾습니다. 그다음 철회되거나 초기화 이전에 남은 기억, 현재 조건으로 보기 어려운 오래된 값을 제외합니다. 최종적으로 필요한 조건과 그 근거가 된 발화의 성격을 함께 반환합니다.

    현재 질문에 대해 검색된 기억 가운데 서울·예산·전세는 전달하고 대체되거나 제외된 매매·마포 조건은 제외하는 기억 회수 화면

    메모리 시스템의 책임은 필요한 기억을 골라 반환하는 데까지이며, 그다음 행동은 상담원 Agent가 결정합니다.

    예를 들어 서울에서 6억 안팎의 집을 찾던 고객이 다음 세션에서 “그 조건으로 다시 볼게요”라고 짧게 이어갈 수 있습니다. 메모리 시스템은 현재 질문과 연결되는 지역·예산·거래유형을 찾아 반환합니다. 과거의 모든 관심 조건이나 이미 철회된 매매 조건을 한꺼번에 넘기지 않습니다.

    먼저 사용자가 재방문했는지 확인합니다. 재방문 상담에서는 과거 대화 전체가 아니라 현재 상담에 필요한 고객 맥락만 추려서 불러옵니다. 그래서 기억을 저장하는 경로와 새 세션에서 필요한 기억을 복원하는 경로를 따로 설계했습니다.

    회수한 기억은 현재 세션의 질문과 작업 맥락에 합쳐져 상담원 Agent에 전달됩니다. 여기까지가 메모리 시스템의 책임입니다. 이후 어떤 확인 질문을 하고, 어떤 도구와 조회 조건을 사용할지는 상담원 Agent가 결정합니다.

    실패 지점을 기록·갱신·회수로 나눕니다

    기억을 기록하는 경로와 불러오는 경로를 나누자, 문제가 생긴 위치도 더 분명해졌습니다.

    고객이 전세로 조건을 바꿨는데 조수 Agent가 이를 기록하지 못하면 다음 상담에 남길 기억이 없습니다. 전세를 기록했더라도 과거 매매 조건을 유효한 값으로 남겨두면 갱신 문제입니다. 장기기억에는 전세가 제대로 남아 있지만 새 세션에서 불러오지 못했다면 회수 문제입니다. 초기화한 조건이 늦게 끝난 작업 때문에 되살아났다면 순서와 망각의 문제입니다.

    현재 발화
     기억 후보 기록
     기존 기억 갱신·철회
     새 세션에서 필요한 기억 회수

    이 흐름을 따라가면 상담 결과만 보고는 구분하기 어려웠던 실패를 찾을 수 있습니다. 기억을 남기지 못한 경우와 올바른 기억을 가져온 뒤 상담원 Agent가 잘못 판단한 경우는 고쳐야 할 위치가 다릅니다. 그래서 메모리 시스템의 실패와 전체 Agent의 행동 실패를 분리했습니다.

    다음 상담은 최신 조건에서 시작합니다

    서울에서 6억 안팎의 매매를 찾던 고객은 상담 중에 “이번에는 전세로 볼게요”라고 조건을 바꿨습니다. 현재 세션에서는 그 변화의 과정이 대화 순서와 함께 남습니다. 하지만 다음 세션에서 필요한 것은 지난 대화 전체가 아니라, 서울과 6억 안팎이라는 조건과 현재 거래유형인 전세입니다.

    저희가 단기기억과 장기기억을 나눈 이유도 여기에 있습니다. 단기기억은 지금의 대화를 이해하고 이어가는 데 쓰고, 장기기억은 세션이 끝난 뒤에도 유효한 고객 조건을 다음 상담으로 넘깁니다. 과거의 매매 조건은 더 이상 현재 조건으로 사용하지 않고, 변경된 전세 조건에서 상담을 다시 시작합니다.

    세션은 끝나도, 현재 고객 조건은 다음 상담의 출발점이 되어야 했습니다.

    앞선 글에서는 부동산 Agent가 데이터를 어떤 조건에서 사용해야 하는지를 다뤘습니다. 이번에는 고객의 조건을 어떤 규칙으로 기억해야 하는지를 살펴봤습니다. 데이터를 사용할 기준과 고객을 기억할 기준이 함께 있어야, 부동산 Agent가 매번 처음부터 묻지 않고 이전 상담을 이어갈 수 있습니다.

    에이전트파트

    다양한 데이터와 AI Agent 기술을 연결해 사용자의 의사결정을 돕습니다.

    다른 글