OpenViking: контекстная БД для AI-агентов
Обзор OpenViking — open-source контекстной базы данных от ByteDance Volcengine для AI-агентов: файловая парадигма, уровни L0/L1/L2, память и навыки.
OpenViking: файловая система как мозг AI-агента
«Мы стремимся определить минималистичную парадигму взаимодействия агентов с контекстом, позволяя разработчикам навсегда забыть о хаосе управления контекстом.»
OpenViking — open-source контекстная база данных, инициированная и поддерживаемая командой Viking из ByteDance Volcano Engine, посвящённая созданию надёжной инфраструктуры контекстного инжиниринга для экосистемы AI-агентов.
Как база данных нового поколения, OpenViking предоставляет унифицированный уровень абстракции данных, интеллектуальный движок семантического разбора и высокопроизводительную систему гибридного поиска для поддержки всех видов AI-приложений.
Для кого это?
OpenViking создан прежде всего для разработчиков, строящих AI-агентов и автоматизированные пайплайны. Проект решает пять критических проблем, которые тормозят разработку агентов: фрагментированный контекст, нарастающий спрос на контекст, низкую эффективность поиска, ненаблюдаемые цепочки контекста и ограниченную итерацию памяти.
Ключевые возможности
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 | Поддержка широкого спектра моделей |
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полностью 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 — на временной граф знаний.
| Параметр | OpenViking | Mem0 | Zep |
|---|---|---|---|
| Лицензия | AGPLv3 (open-source) | Open-source + Cloud | Open-source (Graphiti) + Cloud |
| Модель хранения | Файловая система (viking://) | Векторное хранилище + граф | Временной граф знаний |
| Уровни контекста | L0/L1/L2 (авто) | Нет | Нет |
| Траектория поиска | Визуализируется | Чёрный ящик | Чёрный ящик |
| Управление навыками | Да (Skills) | Нет | Нет |
| Автоизвлечение памяти | 6 категорий | Да (факты) | Да (граф) |
| Развёртывание | Self-hosted | Cloud + Self-hosted | Cloud + Self-hosted |
| Цена | Бесплатно (только модели) | От $0 до $249/мес | От $0 (Graphiti) до $475/мес |
| Сложность setup | Средняя–высокая | Низкая | Средняя |
| Временной граф | Нет | Частично | Да (ключевое отличие) |
Mem0 — наиболее известный игрок в этой области, построивший солидную managed-платформу с open-source вариантом самостоятельного развёртывания и облачным сервисом. Zep строится вокруг временного графа знаний через движок Graphiti с открытым кодом — каждый факт получает временну́ю метку, поэтому агент знает, когда что-то было истинным, а не просто что это было истиной.
OpenViking — лучший выбор, если:
- Нужна полная прозрачность и контроль над контекстом агента
- Критична минимизация затрат на токены при масштабировании
- Требуется управление не только памятью, но и навыками и ресурсами в единой иерархии
- Хочется отлаживать поиск с визуализацией траекторий
Mem0 предпочтительнее при быстром старте и наличии бюджета на managed-сервис. Zep — при необходимости отслеживать изменение фактов во времени (временной граф).
Дорожная карта проекта
Развитие делится на три ключевых фазы: Фаза 1 — строительство фундамента (базовые протоколы, интерфейсы, инфраструктура для AI-агентов); Фаза 2 — расширение экосистемы (плагины, интеграция с основными AI-фреймворками, корпоративные возможности); Фаза 3 — отраслевое внедрение (стандарты, сертификация, партнёрские экосистемы).
Вердикт
OpenViking — одна из самых концептуально зрелых open-source систем управления контекстом для AI-агентов на сегодняшний день. OpenViking создан специально для управления контекстом агентов, а не как обобщённый слой хранения данных, адаптированный для AI. Абстракция в стиле файловой системы лучше подходит для сложных агентных рабочих нагрузок, требующих памяти, ресурсов и навыков в одной модели.
Проект особенно силён в прозрачности, экономии токенов и унификации всех типов контекста. Слабые стороны — сложность развёртывания и лицензия AGPLv3, которая может стать препятствием для коммерческих продуктов.
Кому подойдёт:
- 🟢 Разработчикам AI-агентов, которым нужна полная контрольность над памятью
- 🟢 Командам, строящим сложные agentic-пайплайны с кодом, документами и навыками
- 🟡 Стартапам, если готовы поддерживать self-hosted инфраструктуру
- 🔴 Коммерческим SaaS-продуктам — нужна проверка совместимости с AGPLv3
Рейтинг: 8 / 10
| Критерий | Оценка |
|---|---|
| Инновационность архитектуры | ⭐⭐⭐⭐⭐ |
| Простота использования | ⭐⭐⭐ |
| Документация | ⭐⭐⭐ |
| Активность разработки | ⭐⭐⭐⭐⭐ |
| Экосистема и интеграции | ⭐⭐⭐⭐ |
| Экономия токенов | ⭐⭐⭐⭐⭐ |