← Все новости

OpenViking: открытая контекстная база для ИИ-агентов с файловой системой памяти

Эффективность работы OpenViking

Эффективность работы OpenViking • Скриншот сайта github.com

• Категория: RAG / AI-агенты / автоматизация • Автор: Алексей Воронов • Проверил: Екатерина Морозова • 15.03.2026 22:18

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

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

Архитектурный выбор имеет значение, так как OpenViking не пытается полностью отказаться от семантического поиска. Он стремится ограничить и структурировать его. Пайплайн поиска сначала использует векторное восстановление для определения директории с высоким рейтингом, затем выполняет вторичный поиск внутри этой директории и при необходимости рекурсивно спускается в поддиректории. Этот подход называется Directory Recursive Retrieval (ДРР). Он предполагает сохранение как локальной релевантности, так и глобальной структуры контекста: система не только находит семантически похожий фрагмент, но и понимает, в какой директории он находится. Для агентов, работающих с репозиториями, документами и накопленной памятью, это более явная модель поиска по сравнению со стандартным RAG (Retrieval-Augmented Generation).

OpenViking также вводит механизм многоуровневой загрузки контекста. При записи контекст автоматически обрабатывается на три уровня: L0 — абстрактное описание, состоящее из одного предложения для быстрого поиска и идентификации; L1 — обзор с основной информацией и сценариями использования для планирования; L2 — полное оригинальное содержимое, предназначенное для детального чтения только при необходимости. В документации приведены примеры файлов .abstract и .overview, связанных с директориями, в то время как исходные документы остаются доступными как подробный контент. Это позволяет агенту загружать более высокие уровни сводок первыми, откладывая полный контекст до тех пор, пока задача не потребует его.

Еще одной важной системной функцией является наблюдаемость. OpenViking хранит траекторию обзора директорий и позиционирования файлов во время поиска. В документации это описывается как Visualized Retrieval Trajectory (ВРТ). На практике это означает, что разработчики могут видеть, как система навигирует по иерархии для извлечения контекста. Это полезно, потому что многие ошибки агентов не связаны с моделями в узком смысле; они возникают из-за проблем с маршрутизацией контекста. Если извлекается неправильная память, документ или навык, модель может давать плохие ответы даже при наличии достаточной модели. Подход OpenViking делает эту траекторию видимой, что дает разработчикам конкретные данные для отладки вместо того, чтобы рассматривать выбор контекста как черный ящик.

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

В документации также приведены результаты оценки плагина памяти OpenClaw на датасете LoCoMo10. В эксперименте используется 1540 случаев после удаления образцов категории 5 без эталонной разметки, версия OpenViking 0.1.18 и модель seed-2.0-code. Результаты показывают, что OpenClaw (memory-core) достигает 35.65% выполнения задач при 24,611,530 входных токенов, в то время как OpenClaw + плагин OpenViking (-memory-core) достигает 52.08% при 4,264,396 входных токенах и OpenClaw + плагин OpenViking (+memory-core) — 51.23% при 2,099,622 входных токенах. Эти результаты отражают цель системы: улучшение структуры поиска с одновременным снижением избыточного использования токенов.

Для работы с OpenViking требуются Python 3.10+, Go 1.22+ и GCC 9+ или Clang 11+. Поддерживается установка на Linux, macOS и Windows. Установка доступна через pip install openviking --upgrade --force-reinstall, а также есть необязательная CLI-утилита на Rust (ov_cli), которую можно установить скриптом или собрать с помощью Cargo. Реализация OpenViking требует двух моделей: VLM Model для понимания изображений и контента, и Embedding Model для векторизации и семантического поиска. Поддерживаемые пути доступа к VLM включают Volcengine, OpenAI и LiteLLM, а примеры конфигураций серверов — использование встраивания OpenAI через text-embedding-3-large и пример использования VLM с gpt-4-vision-preview.

Основные выводы

1. OpenViking рассматривает контекст AI-агентов как файловую систему, объединяя память, ресурсы и навыки в единую иерархическую структуру вместо плоского хранилища RAG.

2. Его пайплайн поиска рекурсивен и осведомлен о директориях, что позволяет сочетать позиционирование директорий с семантическим поиском для улучшения точности контекста.

3. Используется многоуровневая загрузка контекста (L0/L1/L2), позволяющая агентам читать сводки первыми и загружать полный контент только по необходимости, что снижает использование токенов.

4. OpenViking предоставляет визуализацию траекторий поиска, делая выбор контекста более наблюдаемым и легким для отладки по сравнению со стандартными черными ящиками RAG.

5. Проект поддерживает сессионное управление памятью, извлекающее долгосрочную память из диалогов, вызовов инструментов и истории выполнения задач.

https://github.com/volcengine/OpenViking

Теги: #ИИ, #машинное обучение, #AI-агенты, #OpenViking, #контекстная база, #файловая память, #Directory Recursive Retrieval