BAI-LAB/MemoryOS · Python(pip) · 평가셋 LoCoMo
(환경 단서까지만. 아래는 코드 담당이 직접 채웁니다.)
| 논문 개념 | 구현 위치 | 코드 설명 |
|---|---|---|
| 전체 MemoryOS 오케스트레이션 | memoryos.py | STM, MTM, LPM, Updater, Retriever를 초기화하고 응답 생성 흐름을 묶는다. |
| Short-Term Memory, STM | short_term.py | 최근 대화 QA를 deque(maxlen=...)로 저장한다. |
| Mid-Term Memory, MTM | mid_term.py | topic/session 단위 segment와 그 안의 dialogue page들을 저장한다. |
| Long-Term Personal Memory, LPM | long_term.py | user profile, user knowledge, assistant knowledge를 장기 저장한다. |
| Memory Updating | updater.py, memoryos.py | STM에서 밀려난 대화를 MTM으로 넘기고, heat가 높은 MTM segment를 LPM 분석에 사용한다. |
| Memory Retrieval | retriever.py, mid_term.py, long_term.py | MTM page와 LPM knowledge를 의미 유사도로 검색한다. |
| Response Generation | memoryos.py, prompts.py | 검색된 STM/MTM/LPM 정보를 prompt에 합쳐 LLM 응답을 생성한다. |
논문 핵심:
논문에서 STM은 최신 대화를 담는 짧은 FIFO queue다. 구현에서는 deque(maxlen=max_capacity)가 STM 저장소 역할을 한다.
class ShortTermMemory:
"""STM(Short-Term Memory): 최신 대화 QA를 FIFO 큐로 보관하는 저장 계층."""
def __init__(self, file_path, max_capacity=10):
self.max_capacity = max_capacity
self.file_path = file_path
self.memory = deque(maxlen=max_capacity)
self.load()
대화는 user_input, agent_response, timestamp를 가진 QA pair로 저장된다.