Knowledge-and-Memory-Management: 방향 1-3 확정 기록
요약
Knowledge-and-Memory-Management 모듈이 에이전트 인지 프레임워크의 핵심인 메모리 지속성, 검색, 생명주기 관리 방향을 확정했습니다. SQLite 기반 하이브리드 저장소와 2단계 인덱스 구조를 통해 효율적인 장기 컨텍스트 관리를 지원합니다.
핵심 포인트
- SQLite 기반 하이브리드 저장소로 메모리 지속성 확보
- LSH와 B-트리를 결합한 2단계 인덱스로 검색 지연 시간 60% 단축
- 메모리 생명주기 관리를 위한 4가지 핵심 훅(hooks) 정의
- 의미적(Semantic) 및 시간적(Temporal) 검색 모드 지원
Knowledge-and-Memory-Management 모듈이 방향(Directions) 1-3을 공식적으로 확정하며, 에이전트 인지 프레임워크(agent cognition framework)의 첫 번째 단계를 마무리했습니다. 이번 업데이트는 메모리 지속성(memory persistence), 검색(retrieval), 그리고 생명주기 관리(lifecycle management)를 위한 핵심 API와 동작을 확정합니다. 토큰 예산(token budget)을 과도하게 사용하지 않으면서 장기적인 컨텍스트(long-term context)가 필요한 에이전트를 구축하고 있다면, 이 방향들은 여러분이 매일 다루게 될 기본 요소(primitives)를 정의합니다. 변경 사항과 그 이유는 다음과 같습니다.
방향 1—메모리 지속성(Memory Persistence)—은 인메모리(in-memory) 전용 방식에서 선택적 압축 기능을 갖춘 SQLite 기반의 하이브리드 저장소로 전환됩니다. 확정된 스키마(schema)는 두 개의 테이블 설계(two-table design)를 사용합니다. 하나는 원시 페이로드(raw payloads, 메타데이터가 포함된 JSON 블롭)를 위한 것이고, 다른 하나는 임베딩 벡터(embedding vectors)의 역색인(inverted indices)을 위한 것입니다. 이는 이전 프로토타입의 직렬화 오버헤드(serialization overhead)를 방지하는 동시에 동시 액세스를 위한 원자적 쓰기(atomic writes)를 유지합니다. 핵심적인 결과로, 에이전트는 이제 전체 대화 로그를 다시 재생하지 않고도 재시작 후에도 상태를 유지할 수 있습니다. StorageBackend 인터페이스는 동결되었으며, 커스텀 백엔드는 append, query, vacuum을 구현해야 합니다. 작은 페이로드에 대해서는 밀리초 미만(sub-millisecond)의 쓰기 속도를, 인덱스를 사용할 수 없을 때는 검색 시 선형 스캔(linear scan)을 예상하십시오. 지식 트리플(knowledge triples)의 대량 수집을 위한 배치 삽입(batch insert) 메서드도 포함되었습니다.
방향 2는 2단계 인덱스 구조(two-tier index structure)를 통해 검색 지연 시간(retrieval latency) 문제를 해결합니다. 1단계(Tier 1)는 임베딩 유사도(embedding similarity)를 위한 LSH 기반 근사 최근접 이웃(approximate nearest neighbor) 인덱스로, 의미적으로 유사한 메모리를 빠르게 회상하는 데 유용합니다. 2단계(Tier 2)는 타임스탬프(timestamp)와 중요도 점수(importance score)를 키로 사용하는 결정론적 B-트리(B-tree)로, 정확한 시간 쿼리를 처리합니다. 이번 확정 단계에서 RetrievalModes 열거형(enum)이 도입되었습니다: SEMANTIC, TEMPORAL, 또는 HYBRID. 하이브리드(hybrid) 모드에서 시스템은 1단계에서 상위 K개(top-K)를 검색한 다음, 2단계의 감쇠 요인(decay factor)을 사용하여 재순위화(re-ranks)합니다. 이 결합된 액세스 패턴은 전체 메모리 풀에 대해 브루트 포스(brute-force) 코사인 유사도(cosine similarity)를 사용하는 것보다 평균 쿼리 시간을 60% 단축합니다. 트레이드오프(trade-off)로는 메모리 인덱스 크기가 10% 증가하지만, 대부분의 워크로드에서는 무시할 만한 수준입니다.
방향 3(Direction 3)은 메모리 생명주기 훅(memory lifecycle hooks)인 on_store, on_access, on_decay, on_prune을 정의합니다. 이것들은 메인 스레드를 차단하지 않고 실행되는 동기식 콜백(synchronous callbacks)이며, 단순히 부수 효과(side effects)를 큐에 삽입(enqueue)합니다. 확정된 DecayPolicy는 (memory_entry, current_time) -> float 시그니처를 가진 람다(lambda)를 수용합니다. 구성 가능한 반감기(half-life)를 가진 기본 지수 감쇠(exponential decay)가 제공됩니다. 사용자 정의 정책은 시간적 최신성(temporal recency), 중요도 점수(importance scoring), 또는 작은 모델을 통한 학습된 관련성(learned relevance)을 구현할 수 있습니다. PruningStrategy 열거형(enum)은 이제 FIFO, LOWEST_SCORE, 또는 HYBRID(용량 10% 초과 시 두 방식의 혼합)를 지원합니다. 이를 통해 최근의 일시적인 컨텍스트(ephemeral context)를 유지하는 것과 가치 있는 장기 지식(long-term knowledge)을 보존하는 것 사이의 균형을 맞출 수 있습니다.
다음은 확정된 API의 구체적인 예시로, 사용자 정의 감쇠 함수를 사용하여 메모리 매니저(memory manager)를 설정하는 방법을 보여줍니다:
from knowledge_memory import MemoryManager, DecayPolicy
def custom_decay(entry, t):
...
store 메서드는 SQLite 백엔드에 원자적(atomically)으로 기록하고 두 인덱스 계층(index tiers)을 모두 업데이트합니다. query 메서드는 점수가 포함된 MemoryEntry 객체 리스트를 반환합니다. 콜백 on_store는 쓰기가 완료되기 전에 실행되어, 메모리 생성 이벤트를 로그로 남기거나 스트리밍할 수 있게 합니다.
숙련된 개발자들에게 가장 중요한 핵심은 방향 1-3의 확정이 에이전트 로직(agent logic)과 메모리 기질(memory substrate) 사이의 계약(contract)을 고정한다는 점입니다. 더 이상 버전마다 불안정한 API를 쫓아다닐 필요가 없습니다. 이제 메모리 계층이 컨텍스트를 조용히 누락시키거나 동시 쓰기(concurrent writes) 또는 손상(corruption)과 같은 예외 상황(edge cases)에서 실패하지 않을 것이라는 확신을 가지고, 이 토대 위에 상태 머신(state machines), 대화 루프(conversational loops), 또는 작업 플래너(task planners)를 구축할 수 있습니다.
방향 4-6을 위한 계획된 다음 단계에는 분산 메모리 샤딩 (distributed memory sharding), 지식 트리플 저장소 (knowledge triple stores)에 대한 직접적인 그래프 순회 (direct graph traversal), 그리고 강화학습 (RL)을 통한 학습된 유지 정책 (learned retention policies)이 포함됩니다. 하지만 지금은 방향 1-3이 확정되었습니다. 의존성 (dependencies)을 업데이트하고, v0.4.x에서 v0.5.x로의 변경 사항 (changelog)에 포함된 마이그레이션 가이드를 검토하며, 새로운 라이프사이클 훅 (lifecycle hooks)을 활용하여 공격적으로 가지치기 (prune)를 시작하십시오. 이 확정 기록은 문서의 API 레퍼런스 (API reference)의 기초가 되기도 합니다. 모든 메서드 (method)와 파라미터 시그니처 (parameter signature)는 이제 안정적이며, 메이저 버전 업데이트 (major version bump) 전까지는 변경되지 않을 것입니다.
Knowledge-and-Memory-Management 모듈은 이제 예측 가능한 메모리 기질 (memory substrate)을 제공합니다. 이를 사용하여 에이전트 (agents)가 우아하게 망각하고 정확하게 회상할 수 있는 능력을 부여하십시오. 그것이 단순한 스크립트와 학습하는 에이전트 사이의 차이점입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기