I Measured What My Agent's Own Memory File Costs to Read. The Number Only Goes Up.

개요

기사 작성 에이전트가 사용하는 자체 메모리 파일(프로젝트 노트/이슈)의 크기가 지속적으로 증가하면서 읽기 비용이 선형적으로 증가하는 현상을 측정하고 분석합니다.

주요 내용

* 메모리 파일의 점진적 증가: 에이전트가 중복 주제를 피하기 위해 매번 읽는 프로젝트 노트 파일의 크기가 2KB에서 29,446 바이트(151 라인, 21개 항목)로 증가했습니다.
* "에이전트 비용 드리프트(Agent Cost Drift)" 현상: 각 항목 추가 시에는 합리적이고 눈에 띄지 않지만, 시간이 지남에 따라 파일 크기가 선형적으로 증가하여 에이전트의 읽기 비용을 꾸준히 상승시키는 현상을 "에이전트 비용 드리프트"라고 명명합니다.
* 기존 "컨텍스트 비용" 문제와의 차이점: 런타임 컨텍스트 과부하로 인한 일회성 대용량 파일 읽기 문제와 달리, 이 문제는 에이전트가 매번 전체 메모리 파일을 읽어야 하는 작업의 특성상 발생하는 문제입니다.
* 비용 증가 요인 분석: 파일 크기 증가는 항목 수 증가뿐만 아니라, 각 항목 내에 이전 주제를 거부한 이유를 설명하는 내용이 포함되면서 더 길어지기 때문입니다. 특히, "왜 이 주제를 선택하지 않았는지"에 대한 설명은 항목 수의 제곱에 비례하여 증가하는 경향을 보입니다.
* 측정 스크립트 개발: "이것이 성장하고 있다는 느낌"에 의존하지 않고, 실제 비용 추세를 파악하기 위해 파일 크기 및 토큰 수를 측정하는 Python 스크립트를 개발했습니다.
* 향후 해결 방안: 아카이브 분할: 최근 항목은 issues.md에 유지하고, 오래된 항목은 간결한 요약 정보만 포함하는 issues-archive.md로 분리하여 전체 텍스트를 읽는 비용을 절감하는 방안을 제시합니다.

시사점

에이전트가 자체 누적 상태를 매번 읽는 경우, 파일이 올바르게 존재하고 파싱되는지 여부보다 각 호출마다 읽는 데 드는 비용을 측정하고 추적하는 것이 중요합니다. 이는 개별 변경 사항보다는 일련의 변경 사항이 누적되어 발생하는 숨겨진 비용 문제를 예방하는 데 필수적입니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions