kernel-memory
무엇인가
Kernel Memory는 AI·LLM 애플리케이션에서 '메모리'를 구현하는 참조 구현이자 베스트 프랙티스 모음이다. 완성된 제품이라기보다 데이터셋을 하이브리드 파이프라인으로 색인하고 검색·생성에 연결하는 구조를 보여주는 연구 프로젝트다. 같은 기능을 .NET 라이브러리, 웹 서비스, Docker 컨테이너, ChatGPT·Copilot·Semantic Kernel용 플러그인 형태로 노출한다.
어떻게 동작하나
색인 파이프라인은 파일 형식을 자동 인식해 텍스트를 추출하고, 검색과 RAG 프롬프트에 맞는 작은 청크로 분할하고, LLM 임베딩 생성기로 임베딩을 만든 뒤 Azure AI Search나 Qdrant 같은 벡터 인덱스에 저장한다. 문서 소유자와 태그를 지정해 보안 필터와 패싯 탐색에 쓴다. 질의는 자연어로 들어가고, 응답에는 근거 문서 인용과 원본 링크, 토큰 사용량 보고가 함께 붙는다. OpenAPI 스키마는 서비스를 로컬에서 OpenAPI 활성화 상태로 띄웠을 때 http://127.0.0.1:9001/swagger/index.html 에서 확인한다.
무엇과 다른가
벡터 DB나 RAG 라이브러리를 단독으로 쓰는 것과 달리, 추출·분할·임베딩·저장·검색·프롬프트 조립을 하나의 파이프라인으로 묶는다. 같은 코드를 프로세스 안에서 도는 MemoryServerless로 실행할 수도 있고, 비동기·확장 가능한 원격 웹 서비스로 돌릴 수도 있다. 처리에 몇 분이 걸리는 큰 문서를 넣거나 실패·재시도 로직이 필요할 때, 또는 .NET이 아닌 언어에서 호출할 때는 서비스 쪽을 쓴다.
어떻게 쓰나
Docker로 서비스를 띄우려면 appsettings.Development.json을 만들어 appsettings.json의 기본값을 덮어쓰거나 `dotnet run setup` 설정 마법사를 돌린 뒤, 그 파일을 컨테이너에 마운트하고 9001 포트를 연다. C#, Python, OpenAPI 클라이언트로 데이터를 넣고 질문할 수 있고, .NET Aspire로 다른 프로젝트에 가져다 실행할 수도 있다.
전제와 한계
저장소는 아카이브된 연구 프로젝트다. 코드는 학습 자료이며 프로덕션 소프트웨어가 아니고, 지원이 제공되지 않으며 사용 위험은 사용자가 진다. 동작하려면 OpenAI나 Azure OpenAI 같은 임베딩·LLM 제공자와 벡터 인덱스가 필요하고, 임베디드 방식은 .NET 런타임을 전제로 한다.
관련 논문 5
유사 도구
- ragflow비정형 문서를 파싱·청킹해 검색 증강 생성 파이프라인과 에이전트 워크플로를 한 엔진에서 돌리는 오픈소스 RAG 서버다.
- LightRAG문서를 지식 그래프와 벡터 인덱스로 함께 색인해 질의에 답하는 검색 증강 생성 프레임워크다. Python 서버와 WebUI를 함께 제공한다.
- databerry노코드로 자체 데이터에 근거해 답하는 LLM 에이전트를 만들어 링크·위젯·API로 배포하는 플랫폼이다. 문서를 임베딩해 벡터 검색으로 근거를 찾는다.
- WeKnora원시 문서를 수집해 검색 가능한 RAG 지식베이스와 자율 추론 에이전트, 자체 유지 위키로 바꾸는 Go 기반 자체 호스팅 LLM 지식 플랫폼이다.
- txtai벡터 인덱스·그래프·관계형 DB를 합친 임베딩 데이터베이스 위에서 시맨틱 검색과 LLM 워크플로를 돌리는 Python AI 프레임워크다.
- PageIndex벡터 DB와 청킹 없이 문서를 계층적 트리 인덱스로 만들고, LLM이 그 트리를 추론으로 탐색해 근거 위치를 찾는 RAG 엔진이다.