본문으로 건너뛰기

OpenViking: AI 에이전트를 위한 파일시스템 패러다임 컨텍스트 데이터베이스

정석

OpenViking

AI 에이전트가 장기 실행 작업을 수행할 때 가장 큰 병목은 무엇일까요? 모델 성능도, 툴 능력도 아닙니다. 컨텍스트 관리입니다.

메모리는 코드에, 리소스는 벡터 DB에, 스킬은 흩어져 있습니다. 전통적 RAG는 평면 저장으로 글로벌 뷰가 부족하고, 검색 체인은 불투명해 디버깅이 어렵습니다.

OpenViking은 이 문제를 “파일시스템”이라는 익숙한 패러다임으로 해결합니다. viking:// URI 하나로 메모리, 리소스, 스킬을 통합 관리하고, 계층형 로딩으로 토큰 비용을 90% 이상 절감합니다.


탄생 배경: Volcengine의 에이전트 인프라 노하우

Volcengine(바이트댄스)은 수천 개의 AI 에이전트를 운영하면서 다섯 가지 핵심 문제를 발견했습니다:

  1. 단편화된 컨텍스트 — 메모리는 코드에, 리소스는 벡터 DB에, 스킬은 흩어져
  2. 급증하는 컨텍스트 수요 — 장기 실행 작업의 컨텍스트 관리
  3. 낮은 검색 효과 — 전통적 RAG의 평면 저장, 글로벌 뷰 부족
  4. 불투명한 컨텍스트 — 암시적 검색 체인, 디버깅 어려움
  5. 제한된 메모리 반복 — 사용자 상호작용 기록만, 작업 메모리 부족

OpenViking은 이 모든 문제를 가상 파일시스템이라는 단일 패러다임으로 해결합니다.


5가지 핵심 개념

1. 파일시스템 관리 패러다임

모든 컨텍스트를 viking:// 프로토콜로 통합합니다:

viking://
├── resources/          # 프로젝트 문서, 리포, 웹페이지
├── user/               # 개인 선호, 습관
│   ├── memories/
│   └── preferences/
└── agent/              # 스킬, 인스트럭션, 작업 메모리
    ├── skills/
    ├── memories/
    └── instructions/

익숙한 명령어로 조작합니다:

ov ls viking://resources/           # 리소스 목록
ov tree viking://resources/xx -L 2  # 트리 구조
ov find "what is openviking"        # 검색
ov grep "openviking" --uri viking:// # 그렙

2. 계층형 컨텍스트 로딩 (L0/L1/L2)

토큰 비용 절감의 핵심입니다. 모든 데이터를 3단계로 계층화합니다:

레벨크기용도
L0 (Abstract)~100 토큰한 문장 요약
L1 (Overview)~2k 토큰핵심 정보
L2 (Details)전체 원본상세 데이터

에이전트는 먼저 L0으로 전체 스캔, 관련 영역을 L1으로 확대, 필요시에만 L2 접근합니다. 이 방식으로 LoCoMo10 벤치마크에서 91% 토큰 비용 절감을 달성했습니다.

3. 디렉토리 재귀 검색

기존 RAG의 평면 검색과 달리, 디렉토리 구조를 활용한 계층형 검색을 수행합니다:

의도 분석 → 초기 위치 → 정밀 탐색 → 재귀 드릴다운 → 결과 집계

“높은 점수 디렉토리 먼저, 그 다음 내용 정밀 탐색” 원칙으로 검색 정확도를 높입니다.

4. 시각화된 검색 궤적

검색 과정이 투명하게 추적됩니다:

“왜 이 결과가 나왔는지”를 디버깅할 수 있습니다.

5. 자동 세션 관리

세션 종료 시 자동으로:

  1. 메모리 추출 메커니즘 작동
  2. 사용자 메모리 업데이트
  3. 에이전트 경험 축적

다음 세션에서 이전 경험이 자동으로 활용됩니다.


OpenClaw 성능 개선: LoCoMo10 벤치마크

실제 성능 개선은 인상적입니다:

실험군작업 완료율입력 토큰 비용
OpenClaw (memory-core)35.65%24,611,530
OpenClaw + LanceDB44.55%51,574,530
OpenClaw + OpenViking52.08%4,264,396

핵심 성과:

더 적은 토큰으로 더 높은 성능을 달성하는 비결은 L0/L1/L2 계층형 로딩입니다.


설치 및 설정

Python 패키지

pip install openviking --upgrade --force-reinstall

CLI 도구

curl -fsSL https://raw.githubusercontent.com/volcengine/OpenViking/main/crates/ov_cli/install.sh | bash

설정 파일 (~/.openviking/ov.conf)

{
  "storage": {
    "workspace": "/home/your-name/openviking_workspace"
  },
  "embedding": {
    "dense": {
      "api_base": "https://api.openai.com/v1",
      "api_key": "your-api-key",
      "provider": "openai",
      "dimension": 3072,
      "model": "text-embedding-3-large"
    }
  },
  "vlm": {
    "api_base": "https://api.openai.com/v1",
    "api_key": "your-api-key",
    "provider": "openai",
    "model": "gpt-4-vision-preview"
  }
}

CLI 명령어

# 서버 시작
openviking-server

# 상태 확인
ov status

# 리소스 추가
ov add-resource https://github.com/xx

# 리소스 목록
ov ls viking://resources/

# 트리 구조
ov tree viking://resources/xx -L 2

# 검색
ov find "what is openviking"

# 그렙
ov grep "openviking" --uri viking://

VikingBot: 대화형 채팅

VikingBot을 사용하면 OpenViking과 대화형으로 상호작용할 수 있습니다:

pip install "openviking[bot]"
openviking-server --with-bot
ov chat

지원 모델

OpenViking은 다양한 LLM 백엔드를 지원합니다:

프로바이더모델
VolcengineDoubao 시리즈
OpenAIGPT-4, GPT-4V
LiteLLMAnthropic, DeepSeek, Gemini, Qwen, vLLM, Ollama 등

LiteLLM을 통해 거의 모든 주요 LLM을 사용할 수 있습니다.


요구사항


OpenClaw 플러그인으로 사용

OpenViking은 OpenClaw의 플러그인으로 직접 통합할 수 있습니다. 위 벤치마크 결과에서 보듯, OpenClaw + OpenViking 조합은 가장 효율적인 컨텍스트 관리 솔루션입니다.


컨텍스트 관리의 패러다임 전환

OpenViking의 진정한 혁신은 기술적 우위보다 패러다임 전환에 있습니다.

기존 RAG 시스템들은 “어떻게 벡터를 더 잘 검색할까”에 집중했습니다. OpenViking은 “컨텍스트를 파일처럼 관리하면 어떨까”라고 물었습니다.

결과는 명확합니다:

5,900+ 스타가 증명하는 커뮤니티 검증. Volcengine의 프로덕션 노하우. 그리고 오픈소스.

컨텍스트 관리의 새로운 표준을 확인해보세요.


🔗 관련 정보

이전
Hatice: Harness Engineering 실현 — OpenAI Symphony를 TypeScript로 재구현
다음
Sirchmunk: 인덱스 없는 RAG — 벡터 DB 없이 자가 진화하는 지식 베이스