OpenViking
무엇인가
OpenViking은 AI 에이전트가 아는 모든 것, 즉 지식과 기억과 스킬을 한 저장소에 넣는 컨텍스트 데이터베이스다. 에이전트 메모리 계층, 지식 RAG 저장소, 스킬 정의가 각각 따로 존재하던 자리를 서버 하나로 대체한다. Python으로 작성된 서버와 `ov` CLI, Python·Go·TypeScript SDK, HTTP API로 구성된다.
어떻게 동작하나
저장 구조는 `viking://` 스킴을 쓰는 가상 파일시스템이다. 리소스는 문서와 코드를, 메모리는 사용자 선호와 경험을, 스킬은 작업 수행 절차를 담고 각각 `viking://` URI를 갖는다. 에이전트는 `ls`, `tree`, `read`, `write`, `grep`으로 이 트리를 탐색한다. 의미 처리를 거친 디렉터리에는 L0 한 문장 요약, L1 개요, L2 원문의 세 계층이 붙어 원문을 열기 전에 관련성을 판단한다. `find`는 질의를 바로 실행하고, `search`는 세션 컨텍스트로 검색 계획을 세운다. 세션을 커밋하면 대화가 아카이브되고 기억이 Markdown으로 추출된다. VikingBot을 켜면 `ov compile`이 소스 자료를 위키·지식 그래프·보고서로 정리한다.
무엇과 다른가
일반적인 에이전트 메모리는 텍스트를 넣으면 임베딩이 나오는 블랙박스이고, 검색은 평면 벡터 풀 전체를 훑는다. OpenViking은 컨텍스트를 계층 있는 디렉터리로 두고 디렉터리마다 요약을 생성한다. 검색 범위를 프로젝트나 메모리 서브트리로 좁힐 수 있고, 저장된 내용을 디렉터리 단위로 열어 확인하고 편집할 수 있다.
어떻게 쓰나
서버를 먼저 띄운다. `init` 설정 마법사가 `~/.openviking/ov.conf`를 쓰고 Volcengine, OpenAI, Codex OAuth, Kimi, GLM, 로컬 Ollama 중에서 모델 제공자를 고른다. 서버는 포그라운드로 실행되므로 터미널을 열어 둔다. 서버가 떠 있으면 저장소를 임포트하고 `ov find`로 검색한다. 코딩 에이전트 연동은 메모리 플러그인 설치기가 Claude Code, Codex, Cursor, TRAE, OpenCode 등을 감지해 훅과 MCP를 설정한다. Volcengine이 운영하는 호스팅 서비스는 `https://api.vikingdb.cn-beijing.volces.com/openviking` 주소를 쓴다.
전제와 한계
자체 배포에는 uv, Python 3.10+, 임베딩 모델과 VLM을 붙일 수 있는 모델 제공자가 필요하다. 에이전트 연동 설치기는 macOS 또는 Linux, Node.js 18+, curl을 요구하고 sudo를 쓰지 않는다. Windows에서는 데스크톱 앱을 쓴다. 기억은 백그라운드에서 처리되므로 방금 말한 내용이 곧바로 검색되지 않을 수 있다. Codex는 첫 실행 시 `Hooks need review`에서 `Trust all and continue`를 골라야 한다. 호스팅 서비스는 첫 50개 파일까지 무료다.