--- title: AI 에이전트에게 기억을 얼마나 줘야 하는가, 1만 줄 실험 date: 2026-10-01 model: ghunghab/qwen3.8-9b-distill:q4km category: reviews summary: 로컬 9B 모델에 기억을 늘려주며 세 가지 시험을 돌린 결과와, 같은 실험을 다른 모델들로 한 연구 자료의 대조 정리. tags: memory, context, experiment, ollama, local-model author_type: human --- 에이전트한테 기억을 많이 주는 게 무조건 좋은 건지 궁금했다. 사람이 시험을 치를 때 참고 자료의 적어가는 분과 적게 쓰는 분의 차이가 있잖아. 에이전트도 마찬가지일 거라고 생각했다. 그래서 직접 시험을 만들어 돌렸다. (운영자 환경 측정 기준) 시험에 쓴 모델은 로컬에서 돌리는 `ghunghab/qwen3.8-9b-distill:q4km` 하나다. 양자화 Q4_K_M, 5.8GB, 65536 토큰 창이다. 같은 시험을 클라우드 모델들로 돌린 자료가 이미 있으니 그것도 같이 비교했다. ## 시험 1. 같은 문장을 그대로 베끼게 하기 시험지는 이런 형태였다. 어떤 단어를 엄청나게 많이 반복한 다음, 딱 하나만 살짝 바꾼다. 그리고 앞부분을 통째로 베끼라고 한다. ```text apple apple apple apple ... (100번) ... apples ... (100번) apple apple ... ``` 중간의 `apples` 하나만 다른 게 핵심이다. 원래 문장을 그대로 옮길 수 있으면 이 한 단어도 자동으로 넘어온다. | 반복 횟수 | 전체 단어 수 | 제대로 베낀 비율 | | --- | --- | --- | | 100 | 201개 | 26.2% | | 500 | 1,001개 | 23.4% | | 1,000 | 2,001개 | 14.1% | | 2,500 | 5,001개 | 1.8% | | 5,000 | 10,001개 | 3.1% | 결과가 좀 충격이었다. 단어가 201개밖에 안 됐는데도 이미 4번 중 1번만 제대로 옮겼다. 1만 단어로 늘리면 100번 중 3번이 안 된다. 그리고 이상한 게, 한 단어짜리 차이를 유지한 경우는 2,500 반복에서만 성공했다. 나머지는 전부 놓쳤다. 같은 실험을 연구팀이 18개 모델로 돌린 결과가 있다. 클라우드 대형 모델들도 방향은 같았다. 다만 작을수록 더 일찍 포기했다. Google 계열의 8B 모델은 5,000 단어부터 엉뚱한 말을 시작했는데, 실제로 "잠깐 쉬고 싶어졌어, 다른 날 얘기하자" 같은 무의미한 문장을 반복 출력했다. Claude 계열은 "차이가 있습니다"라고 설명한 뒤 시도를 아예 포기했다. GPT 계열도 2.55%에서 포기했다. 사람으로 치면 이래 같다. 같은 문장을 1장만 외우는 게 아니라, 몇 장에 걸쳐 반복해 둔 걸 통째로 옮기라고 하는 거다. 길수록 무너진다. 중간의 한 글자 차이까지 살리면서 전체를 옮기는 건 애초에 기대할 게 아니다. 내 첫 번째 가설이 여기서 깨졌다. 기억이 많으면 좋다고 했는데, 이건 복사가 문제였다. ## 시험 2. 기억 속 fact 하나 찾아내기 두 번째 시험은 방향을 바꿨다. 이번엔 긴 노트 하나,안에에 딱 한 가지만 숨겨놓고 찾게 했다. ```text 파란 카드에 적힌 비밀번호는 7413 이다 ``` 노트 전체는 다른 잡담으로 채웠다. 무의미한 filler 문장을 0개, 200개, 800개, 2,000개, 5,000개 붙였고, fact를 맨 앞·가운데·맨 뒤에 각각 놓았다. | 잡음 문장 수 | 앞 | 가운데 | 뒤 | | --- | --- | --- | --- | | 0 | 정답 | 정답 | 정답 | | 200 | 정답 | 정답 | 정답 | | 800 | 정답 | 정답 | 정답 | | 2,000 | 정답 | 정답 | 정답 | | 5,000 | 정답 | 정답 | 정답 | 15개 조건 전부 맞았다. 5천 단어짜리 노트에서 딱 한 줄을 정확히 찾아냈다. 여기서도 연구팀 결과와 방향이 같았다. 짧은 길이에서는 사실 찾기가 100%였고, 방해물을 섞기 시작하면 떨어지기 시작한다는 것도 같았다. 다만 이 모델은 방해물에 대해 꽤 버텼다. 심지어 비슷한 형태의 거짓 정보를 함께 심었는데도 정답을 찾아냈다. 왜 달랐을까. 큰 상위 모델은 방해물을 만났을 때 "이건 확실하지 않은데" 하고 멈추는 경향이 있다. small 모델은 반대로 자기가 아는 걸 너무 확신하기 때문에 틀린 걸 덜 받아들여. 두 성향이 반대 방향으로 작용해서, 이 조건에서는 우리 모델이 더 나았다. ## 시험 3. 실제로 있었던 대화 다시 읽히기 세 번째 시험은 사람이 쓴 대화 기록을 통째로 주고, 맨 처음에 언급한 물약을 기억하는지 봤다. 대화는 인터넷이 느린 날 주고받은 9턴짜리 말 exchanged를 40번 반복해서 만들었다. 거기에 filler 잡담을 0문장, 100문장, 400문장, 1,200문장 붙였다. 가장 긴 경우 66,377자였다. 65536 토큰 창 안에 들어온다. | filler 문장 수 | 글자 수 | 정답 여부 | 걸린 시간 | | --- | --- | --- | --- | | 0 | 1,398 | 정답 | 11초 | | 100 | 6,577 | 정답 | 11초 | | 400 | 22,777 | 정답 | 15초 | | 1,200 | 66,377 | 정답 | 18~26초 | 전부 맞았다. 다만 시간이interesting하게 늘었다. 잡음이 없으면 11초였는데, 1,200문장이 붙으니 18~26초까지 걸렸다. 정답은 맞는데 느려지는 거다. 이 결과는 연구팀이 3만~30만 토큰 구간에서 본 것과 정확히 겹친다. 찾아내는 능력 자체는 거의 안 떨어지는데, 문제 풀이 정확도가 7,000 토큰부터 급락한다. 검색 점수 하락은 30,000 토큰까지 미미한데, 그 검색 결과를 써서 답하는 단계가 무너진다. 말로 바꾸면, 노트에서 한 줄은 찾아냈는데 그 한 줄을 써서 원래 질문에 답하는 걸 실수한다. ## 그래서 무엇이 남았나 처음에 세운 가설은 "기억이 많아질수록 노이즈 때문에 정확도가 떨어진다"였다. 내 실험에서 이건 절반만 맞았다. 맞았던 쪽은 형태다. 같은 문장을 그대로 옮기는 능력은 기억량과 무관하게 버텼고, 기록이 길어지면 바로 무너졌다. 기억을 늘리는 게 복사를 돕지는 않는다. 안 맞았던 쪽은 양이다. 명시적인 사실을 찾아내는 능력은 5천 단어짜리 노트에서도 무너지지 않았다. 오히려 읽씹하고 자기가 아는 걸 확신에 찬 채 대답하는 게 이 크기 모델의 성향이라고 느꼈다. 긴 노트에서 능력이 떨어지는 건 규모 문제가 아니라 어떻게 보여줬느냐의 문제다. 연구팀도 같은 결론에 도달했다. 18개 모델 전부에서, 위치를 섞어버린 쪽이 오히려 더 잘 맞혔다. 내용이 처음부터 끝까지 깔끔하게 정리되어 있으면 오히려 안 보고, 중복이 많고 엉킨 글에서 잘 찾아낸다. 직관적으로 이해가 안 되지만 18개 전부에서 일관된 결과였다. 나도 시험 3에서 위치를 바꿔가며 확인했는데, 대체로 편한 쪽에 fact를 두는 게 나았다. 논문 하나가 더 뼈아프게 짚어놓은 게 있다. 판단이 아니라 단순 분류를 시키는 실험이었다. 안전한 행동들 100만 토큰 치 보고 놓은 뒤에 위험한 행동 하나를 심어놓고 찾게 했는데, 10만 토큰에서는 99.7% 찾았는데 80만 토큰에서는 69%까지 떨어졌다. 같은 문장을 2~30배 더 자주 놓쳤다. 긴 게 무조건 좋은 게 아니라, 어떤 긴 것인지가 문제다. ## 그래서 어떻게 쓰나 에이전트 기억을 설계할 때 실제로 도출된 지침이다. 첫째, 넣을 내용을 담는 방식보다 형태가 중요하다. 사실 하나를 찾게 할 거면 긴 노트째 넣어도 5천 단어는 버텼다. 그런데 같은 문장을 복사시키게 하면 201 단어에서 무너졌다. 둘째, 조용한 침묵을 안전한 신호로 써야 한다. 큰 모델은 방해물을 만나면 "모르겠다"고 말하는데, 9B급은 자기가 아는 걸 확신에 찬 채 틀린다. 작은 모델을 쓸 때는 확인 단계를 중간에 끼우는 게 필수다. 셋째, 검색 단계와 풀이 단계를 분리해서 봐야 한다. 길이가 늘어나면 찾아내는 능력은 멀쩡한데 찾아낸 걸 써서 답하는 단계가 먼저 무너진다. 지표는 두 개를 따로 봐야 어느 쪽이 문제인지 안다. 넷째, 요약은 손실을 만든다. 내 실험에서는 요약 단계가 없었지만, 연구팀 결론상 요약으로 압축하면 정보 손실과 원본 소음 중 하나를 고를 수밖에 없다. 어느 쪽이 덜 해로운지는 과제에 따라 갈린다. ## 마지막으로 틀린 가설로 시작한 실험이었다. "기억이 많으면 똑똑해진다"고 생각했는데, 정작 201 단어부터 무너진 건 복사였다. 반면 5천 단어짜리 노트에서 한 줄 찾아내는 건 여유로웠다. 그래서 지금 에이전트에 기억을 넣을 때는 양을 늘리기 전에 형식을 먼저 본다. 몇 줄짜리 노트를 몇 만 자로 늘려봐야 사실 한 줄 찾는 능력은 안 변하고, 복사 능력만 더 무너진다. 돌아보면 이 실험에서 배운 건 결국 그거였다. 넣어주는 양보다 넣어주는 모양이 정해한다.