OpenViking: файловая система как мозг AI-агента

«Мы стремимся определить минималистичную парадигму взаимодействия агентов с контекстом, позволяя разработчикам навсегда забыть о хаосе управления контекстом.»

OpenViking — open-source контекстная база данных, инициированная и поддерживаемая командой Viking из ByteDance Volcano Engine, посвящённая созданию надёжной инфраструктуры контекстного инжиниринга для экосистемы AI-агентов.

Как база данных нового поколения, OpenViking предоставляет унифицированный уровень абстракции данных, интеллектуальный движок семантического разбора и высокопроизводительную систему гибридного поиска для поддержки всех видов AI-приложений.

Для кого это?

OpenViking создан прежде всего для разработчиков, строящих AI-агентов и автоматизированные пайплайны. Проект решает пять критических проблем, которые тормозят разработку агентов: фрагментированный контекст, нарастающий спрос на контекст, низкую эффективность поиска, ненаблюдаемые цепочки контекста и ограниченную итерацию памяти.

ℹ Целевая аудитория
OpenViking подойдёт разработчикам AI-агентов (Agentic Coding), исследователям контекстного инжиниринга и командам, которым нужна прозрачная, масштабируемая и само-обновляющаяся память агента без vendor lock-in.

Ключевые возможности

1. Файловая парадигма управления контекстом

OpenViking отказывается от фрагментированной модели векторного хранения традиционного RAG и инновационно применяет «парадигму файловой системы» для унифицированной структурированной организации воспоминаний, ресурсов и навыков агентов.

Независимо от того, является ли это воспоминанием, ресурсом или возможностью, они отображаются в виртуальные каталоги под протоколом viking://, каждый с уникальным URI. Эта парадигма даёт агентам беспрецедентные возможности манипулирования контекстом, позволяя точно и детерминированно находить, просматривать и управлять информацией с помощью стандартных команд ls и find.

Структура виртуальной файловой системы выглядит так:

viking://
├── resources/     # Ресурсы: документы, репозитории, веб-страницы
│   └── my_project/
│       ├── docs/
│       └── src/
├── user/          # Пользователь: предпочтения, привычки
│   └── memories/
│       ├── preferences/
│       └── coding_habits
└── agent/         # Агент: навыки, инструкции, воспоминания о задачах
    ├── skills/
    ├── memories/
    └── instructions/

2. Трёхуровневая загрузка контекста (L0 / L1 / L2)

Трёхуровневая структура L0/L1/L2 загружается по требованию, что значительно экономит затраты на токены.

OpenViking автоматически обрабатывает контекст на три уровня при записи: L0 (Abstract) — краткое изложение в одном предложении для быстрого поиска и идентификации. L1 содержит обзорное описание, L2 — полное содержимое. Такая многоуровневая загрузка сокращает потребление токенов на 80–90%, подгружая сначала резюме и полные детали только при необходимости.

3. Рекурсивный поиск по директориям

Пайплайн поиска сначала использует векторный поиск для нахождения директории с высоким скором, затем выполняет второй поиск внутри этой директории и рекурсивно углубляется в поддиректории при необходимости. Это называется Directory Recursive Retrieval.

Базовая идея состоит в том, что поиск должен сохранять как локальную релевантность, так и глобальную структуру контекста. Для агентных рабочих нагрузок, охватывающих репозитории, документы и накопленную память, это более явная модель поиска, чем стандартный одноуровневый RAG.

4. Визуализируемая траектория поиска

OpenViking хранит траекторию просмотра директорий и позиционирования файлов во время поиска. Это описывается как Visualized Retrieval Trajectory. На практике разработчики могут изучить, как система перемещалась по иерархии для получения контекста.

Это важно, потому что многие отказы агентов — не ошибки модели в узком смысле, а ошибки маршрутизации контекста. Подход OpenViking делает этот путь поиска видимым, давая разработчикам конкретный объект для отладки вместо трактовки выбора контекста как чёрного ящика.

5. Автоматическое управление сессиями и самообновление памяти

Автоматическое управление сессиями и самоитерация контекста: автоматически сжимает содержимое, ссылки на ресурсы, вызовы инструментов и т.д. в диалогах, извлекая долгосрочную память, делая агента умнее по мере использования.

Система извлекает 6 категорий воспоминаний (профиль, предпочтения, сущности, события, кейсы, паттерны) из сессий автоматически.

6. VikingBot и интеграция с мессенджерами

VikingBot позволяет общаться с агентом через Telegram, Discord, WhatsApp, Feishu, Mochat, DingTalk, Slack, Email или QQ — в любое время из любого места.

VikingBot также поддерживает инструменты сторонних MCP-серверов (файловые системы, GitHub, браузеры, базы данных и т.д.).

7. Полиглот-архитектура

OpenViking — полиглот-система, сочетающая несколько языковых экосистем: Python 3.10+ (основная логика, SDK и оркестрация сервисов), Go 1.22+ (высокопроизводительный файловый сервер AGFS), C++17 (нативные расширения векторной БД и индексирование HNSW), Rust (быстрый портативный CLI-инструмент ov).

Архитектура в схеме


graph TD
    A[AI-агент / OpenClaw / VikingBot] -->|viking:// URI| B[OpenViking Server]
    B --> C[VikingFS — виртуальная файловая система]
    C --> D[resources/]
    C --> E[user/memories/]
    C --> F[agent/skills/]
    B --> G[Semantic Processing]
    G --> H[L0: Abstract — 1 предложение]
    G --> I[L1: Overview — краткий обзор]
    G --> J[L2: Full Content — полное содержимое]
    B --> K[Directory Recursive Retrieval]
    K --> L[Visualized Trajectory]
    B --> M[Session Manager]
    M --> N[Автоизвлечение памяти]

Пример использования

import openviking as ov

# Инициализация клиента
client = ov.OpenViking(path="./data")
client.initialize()

# Добавление ресурса (URL, файл или директория)
client.add_resource("https://github.com/volcengine/OpenViking")

# Семантический поиск
results = client.find("what is openviking")

# Операции с файловой системой
client.ls("viking://resources/")
client.tree("viking://resources/volcengine/OpenViking", depth=2)

# Управление сессией и автоизвлечение памяти
session = client.session()
session.add(role="user", content="Как настроить OpenViking?")
session.add(role="assistant", content="Используй ov.conf...")
session.commit()  # автоматически извлекает воспоминания
💡 Быстрый старт

Установка занимает несколько минут:

pip install openviking --upgrade --force-reinstall

Для CLI-инструмента:

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

Поддерживаемые провайдеры моделей

Реализация OpenViking требует двух возможностей модели: VLM Model для понимания изображений и содержимого, и Embedding Model для векторизации и семантического поиска. Поддерживаемые пути доступа к VLM включают Volcengine, OpenAI и LiteLLM.

Volcengine (модели Doubao): рекомендуется, экономично с хорошей производительностью, бесплатная квота для новых пользователей.

Тарифы и цены

OpenViking — полностью бесплатный open-source проект. Основной проект распространяется под лицензией AGPLv3, CLI (ov_cli) и примеры — под Apache 2.0.

Оплачивать нужно только вызовы к моделям (VLM + Embeddings) у выбранного провайдера:

ПровайдерТипПримечание
Volcengine (Doubao)ПлатныйБесплатная квота для новых пользователей
OpenAI (GPT-4V + Embeddings)ПлатныйСтандартные тарифы OpenAI
LiteLLMПлатный / Self-hostedПоддержка широкого спектра моделей
⚠ Важно про лицензию
Основной проект OpenViking использует лицензию AGPLv3. Это означает, что при встраивании в коммерческий SaaS-продукт необходимо открывать исходный код производного ПО. Если это критично — проконсультируйтесь с юристом.

Плюсы и минусы

✅ Плюсы❌ Минусы
Полностью open-source, без vendor lock-inТребует самостоятельного развёртывания сервера
Файловая парадигма — интуитивно понятна разработчикамСложные зависимости: Python + Go + C++ + Rust
Трёхуровневый контекст снижает расходы на токены на 80–90%Лицензия AGPLv3 ограничивает коммерческое использование
Визуализация траектории поиска — отличный инструмент отладкиПроект ещё в ранней стадии, возможны breaking changes при обновлении
Автоизвлечение 6 категорий памяти из сессийНет managed-облака — всё придётся поддерживать самостоятельно
Поддержка MCP, интеграция с Telegram/Discord/Slack и другимиДокументация ещё не полная, часть примеров требует доработки
Активная разработка: >15 тыс. звёзд на GitHubНет нативного графа знаний (в отличие от Zep/Graphiti)

Сравнение с альтернативами

OpenViking рассматривает память как лишь одну часть более крупной контекстной операционной системы, тогда как Mem0 делает ставку на универсальный API памяти с извлечением, связыванием сущностей и гибридным поиском, а Zep — на временной граф знаний.

ПараметрOpenVikingMem0Zep
ЛицензияAGPLv3 (open-source)Open-source + CloudOpen-source (Graphiti) + Cloud
Модель храненияФайловая система (viking://)Векторное хранилище + графВременной граф знаний
Уровни контекстаL0/L1/L2 (авто)НетНет
Траектория поискаВизуализируетсяЧёрный ящикЧёрный ящик
Управление навыкамиДа (Skills)НетНет
Автоизвлечение памяти6 категорийДа (факты)Да (граф)
РазвёртываниеSelf-hostedCloud + Self-hostedCloud + Self-hosted
ЦенаБесплатно (только модели)От $0 до $249/месОт $0 (Graphiti) до $475/мес
Сложность setupСредняя–высокаяНизкаяСредняя
Временной графНетЧастичноДа (ключевое отличие)

Mem0 — наиболее известный игрок в этой области, построивший солидную managed-платформу с open-source вариантом самостоятельного развёртывания и облачным сервисом. Zep строится вокруг временного графа знаний через движок Graphiti с открытым кодом — каждый факт получает временну́ю метку, поэтому агент знает, когда что-то было истинным, а не просто что это было истиной.

📝 Когда выбрать OpenViking

OpenViking — лучший выбор, если:

  • Нужна полная прозрачность и контроль над контекстом агента
  • Критична минимизация затрат на токены при масштабировании
  • Требуется управление не только памятью, но и навыками и ресурсами в единой иерархии
  • Хочется отлаживать поиск с визуализацией траекторий

Mem0 предпочтительнее при быстром старте и наличии бюджета на managed-сервис. Zep — при необходимости отслеживать изменение фактов во времени (временной граф).

Дорожная карта проекта

Развитие делится на три ключевых фазы: Фаза 1 — строительство фундамента (базовые протоколы, интерфейсы, инфраструктура для AI-агентов); Фаза 2 — расширение экосистемы (плагины, интеграция с основными AI-фреймворками, корпоративные возможности); Фаза 3 — отраслевое внедрение (стандарты, сертификация, партнёрские экосистемы).

Вердикт

OpenViking — одна из самых концептуально зрелых open-source систем управления контекстом для AI-агентов на сегодняшний день. OpenViking создан специально для управления контекстом агентов, а не как обобщённый слой хранения данных, адаптированный для AI. Абстракция в стиле файловой системы лучше подходит для сложных агентных рабочих нагрузок, требующих памяти, ресурсов и навыков в одной модели.

Проект особенно силён в прозрачности, экономии токенов и унификации всех типов контекста. Слабые стороны — сложность развёртывания и лицензия AGPLv3, которая может стать препятствием для коммерческих продуктов.

Кому подойдёт:

  • 🟢 Разработчикам AI-агентов, которым нужна полная контрольность над памятью
  • 🟢 Командам, строящим сложные agentic-пайплайны с кодом, документами и навыками
  • 🟡 Стартапам, если готовы поддерживать self-hosted инфраструктуру
  • 🔴 Коммерческим SaaS-продуктам — нужна проверка совместимости с AGPLv3

Рейтинг: 8 / 10

КритерийОценка
Инновационность архитектуры⭐⭐⭐⭐⭐
Простота использования⭐⭐⭐
Документация⭐⭐⭐
Активность разработки⭐⭐⭐⭐⭐
Экосистема и интеграции⭐⭐⭐⭐
Экономия токенов⭐⭐⭐⭐⭐