지식 및 메모리 관리: 방향성 1-3 확정
요약
에이전트의 지식 및 메모리 관리를 위한 세 가지 핵심 방향성을 정의합니다. 정보 수집, 인덱싱 및 검색, 그리고 의사결정을 위한 컨텍스트 조립 과정을 구체적인 파이프라인과 구조로 설계했습니다.
핵심 포인트
- 3단계 파이프라인(청킹, 임베딩, 트리플 추출)을 통한 지식 구조화
- HNSW 기반 영구 벡터 인덱스와 휘발성 단기 버퍼의 이중 저장 구조
- 관련성 필터와 유틸리티 예측기를 활용한 2단계 컨텍스트 선택 메커니즘
- 모듈화된 설계를 통해 각 하위 시스템의 독립적 교체 가능성 확보
Knowledge and Memory Management 프로젝트의 방향성 1부터 3까지에 대한 문서화 사이클을 방금 마쳤습니다. 이는 긴 상호작용 동안 학습된 정보를 유지, 회상 및 적용해야 하는 시스템을 위한 구체적인 기준점(baseline)이 됩니다. 군더더기나 이론적인 샌드박스는 없습니다. 이 방향성들은 에이전트와 애플리케이션이 지식을 일시적인 실행(transient execution)으로부터 분리하는 데 사용하는 핵심 기질(substrate)을 정의합니다. 출시된 내용은 다음과 같습니다.
방향성 1 — 지식 수집 및 구조화 (Knowledge Ingestion and Structuring)
첫 번째 방향성은 원시 정보가 시스템에 어떻게 들어오는지를 확정합니다. 우리는 청킹(chunking), 임베딩(embedding), 그리고 트리플 추출(triple extraction)이라는 3단계 파이프라인으로 결정했습니다. 청킹(Chunking)은 경계 전반의 문맥을 보존하기 위해 중첩된 섹션을 가진 고정 길이 토큰 윈도우(token window)를 사용합니다. 임베딩(Embedding)은 기본 벡터 모델(설정 가능하며, 기본값은 로컬 ONNX-exported 인코더임)과 연결됩니다. 트리플 추출(Triple extraction)은 선택 사항이지만 강력합니다. 우리는 정확한 관계 쿼리를 위해 주어-술어-목적어(subject-predicate-object) 트리플을 파싱합니다. 문서 확정 과정에서 이 세 가지 하위 시스템을 독립적으로 유지하기로 결정한 사항이 기록되었습니다. 즉, 다른 것을 변경하지 않고도 어떤 것이든 교체할 수 있습니다.
방향성 2 — 메모리 인덱싱 및 검색 (Memory Indexing and Retrieval)
이 방향성은 두 단계 저장 구조를 정의합니다: 영구적인 벡터 인덱스(HNSW 사용)와 휘발성 단기 버퍼(volatile short-term buffer)입니다. 버퍼는 마지막 N번의 상호작용 턴을 보유하며, 지연 시간 없는(zero-latency) 회상을 위해 항상 사용 가능합니다. 벡터 인덱스는 장기 유사도 검색을 처리하며, 멀티테넌트(multitenant) 시스템이 깔끔하게 유지되도록 에이전트 ID + 네임스페이스(namespace)의 복합 키를 사용합니다. 확정 단계에서 검색은 원시 벡터가 아닌 신뢰 점수(confidence scores)와 함께 순위가 매겨진 후보를 반환해야 함을 명확히 했습니다. 이로 인해 우리는 리랭킹(reranking) 인터페이스를 공식화해야 했습니다.
방향성 3 — 의사결정을 위한 컨텍스트 조립 (Context Assembly for Decision Making)
가장 논쟁이 많았던 부분입니다. 방향성 3은 서브시스템이 런타임(runtime) 시 어떤 메모리를 표면화할지 어떻게 선택하는지에 대한 해답을 제시합니다. 우리는 2단계 선택기(two-stage selector)를 구현했습니다. 첫 번째는 관련성 필터(relevance filter, 코사인 임계값)이며, 그다음은 각 후보가 현재 작업에 얼마나 유용한지 추정하는 유틸리티 예측기(utility predictor)입니다. 문서에 따르면 유틸리티 예측기는 수작업으로 만든 규칙이 아니라, 기록된 피드백을 통해 학습된 경량 모델입니다. 또한 이 방향성은 "상황 스냅샷 (situation snapshot)"이라는 개념을 정의합니다. 이는 메모리 수집기(memory collector)가 쿼리 입력으로 사용하는 현재 상태의 압축된 표현입니다.
코드 예시 — 재순위화(Reranking)를 포함한 메모리 검색
다음은 확정된 API를 사용한 Python 최소 예제입니다. 벡터 인덱스(vector index)로부터의 검색과 그에 이은 유틸리티 재순위화(utility reranking) 과정을 보여줍니다.
from kmm.memory import Index, ShortTermBuffer
from kmm.select import UtilityReranker
...
Index.search는 코사인 거리(cosine distance)로부터 신뢰도 점수와 함께 후보들을 반환합니다. 그런 다음 UtilityReranker가 해당 점수를 유틸리티 추정치로 덮어씁니다. 단기 버퍼(short-term buffer)는 이 호출과 함께 확인되지만, 간결함을 위해 생략되었습니다.
빌더(Builders)를 위한 의미
방향성 1-3이 문서화되고 확정됨에 따라, 구현 인터페이스(implementation surface)가 안정되었습니다. 이제 여러분은 데이터 수집(ingestion)을 위한 파이프라인, 회상(recall)을 위한 2계층 인덱스, 그리고 메모리 인지적 동작(memory-aware actions)을 위한 컨텍스트 선택기(context selector)를 신뢰하고 사용할 수 있습니다. 위의 코드 예시는 우리가 앞으로 지원할 정확한 API인 검색 경로(retrieval path)를 강조합니다.
다음 업데이트에서는 방향성 4(메모리 감쇠 및 통합, Memory decay and consolidation)와 방향성 5(교차 세션 지속 그래프, Cross-session persistent graph)를 다룰 예정입니다. 그때까지 이 세 가지 방향성이 실질적인 핵심을 형성합니다. 문서는 저장소의 docs/directions/1-3-final 경로에 있습니다. 숙련된 팀이라면 오후 시간 내에 핵심 인터페이스를 통합할 수 있을 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기