OpenViking es una base de datos contextual de código abierto para agentes de IA de Volcengine. El proyecto se basa en un concepto arquitectónico simple: los sistemas de agentes no deben tratar el contexto como una colección plana de fragmentos de texto. En cambio, OpenViking organiza el contexto a través de un paradigma de sistema de archivos, con el objetivo de hacer que la memoria, los recursos y las habilidades sean manejables a través de una estructura jerárquica unificada. En el propio marco del proyecto, esta es una respuesta a cinco problemas recurrentes en el desarrollo de agentes: contexto fragmentado, volumen de contexto creciente durante tareas de larga duración, calidad de recuperación débil en canales RAG planos, mala observabilidad del comportamiento de recuperación e iteración de memoria limitada más allá del historial de chat.
Un sistema de archivos virtual para la gestión del contexto
En el centro del diseño hay un sistema de archivos virtual expuesto bajo el protocolo viking://. OpenViking asigna diferentes tipos de contexto en directorios, incluidos recursos, usuarios y agentes. En esos directorios de nivel superior, un agente puede acceder a documentos del proyecto, preferencias de usuario, memorias de tareas, habilidades e instrucciones. Se trata de un alejamiento de los ‘porciones de texto plano’ hacia objetos abstractos del sistema de archivos identificados por URI. El beneficio previsto es que un agente puede utilizar operaciones estándar de estilo de navegación, como ls y find, para localizar información de una manera más determinista, en lugar de depender únicamente de la búsqueda por similitud en un índice vectorial plano.
Cómo funciona la recuperación recursiva de directorio
Esa elección arquitectónica es importante porque OpenViking no intenta eliminar la recuperación semántica. Está tratando de limitarlo y estructurarlo. La canalización de recuperación del proyecto primero utiliza la recuperación de vectores para identificar un directorio de puntuación alta, luego realiza una segunda recuperación dentro de ese directorio y profundiza de forma recursiva en subdirectorios si es necesario. El README llama a esto recuperación recursiva de directorio. La idea básica es que la recuperación debe preservar tanto la relevancia local como la estructura del contexto global: el sistema no sólo debe encontrar el fragmento semánticamente similar, sino también comprender el contexto del directorio en el que se encuentra ese fragmento. Para cargas de trabajo de agentes que abarcan repositorios, documentos y memoria acumulada, ese es un modelo de recuperación más explícito que el RAG estándar de una sola vez.
Carga de contexto escalonada para reducir la sobrecarga de tokens
OpenViking también agrega un mecanismo incorporado para la carga de contexto por niveles. Cuando se escribe el contexto, el sistema lo procesa automáticamente en tres capas. L0 es un resumen, descrito como un resumen de una oración que se utiliza para una rápida recuperación e identificación. L1 es una descripción general que contiene información básica y escenarios de uso para la planificación. L2 es el contenido original completo, destinado a una lectura profunda solo cuando sea necesario. Los ejemplos del README muestran archivos .abstract y .overview asociados con directorios, mientras que los documentos subyacentes permanecen disponibles como contenido detallado. Este diseño está destinado a reducir la sobrecarga de solicitudes al permitir que un agente cargue primero resúmenes de nivel superior y posponga el contexto completo hasta que la tarea realmente lo requiera.
Observabilidad de recuperación y depuración
Una segunda característica importante de los sistemas es la observabilidad. OpenViking almacena la trayectoria de exploración de directorios y posicionamiento de archivos durante la recuperación. El archivo README describe esto como Trayectoria de recuperación visualizada. En términos prácticos, eso significa que los desarrolladores pueden inspeccionar cómo el sistema navegó por la jerarquía para obtener contexto. Esto resulta útil porque muchos fallos de agentes no son fallos de modelo en sentido estricto; son fallas de enrutamiento de contexto. Si se recupera el recuerdo, documento o habilidad incorrectos, el modelo aún puede producir una respuesta deficiente incluso cuando el modelo en sí sea capaz. El enfoque de OpenViking hace visible esa ruta de recuperación, lo que brinda a los desarrolladores algo concreto para depurar en lugar de tratar la selección de contexto como una caja negra.
Memoria de sesión y autoiteración
El proyecto también amplía la gestión de la memoria más allá del registro de conversaciones. OpenViking incluye gestión automática de sesiones con un bucle de autoiteración de memoria incorporado. Según el archivo README, al final de una sesión los desarrolladores pueden activar la extracción de memoria y el sistema analizará los resultados de la ejecución de la tarea y los comentarios de los usuarios, luego actualizará los directorios de memoria del Usuario y del Agente. Los resultados previstos incluyen memorias de preferencias del usuario y experiencia operativa del lado del agente, como patrones de uso de herramientas y consejos de ejecución. Eso hace que OpenViking esté más cerca de un sustrato de contexto persistente para agentes que una base de datos vectorial estándar utilizada solo para recuperación.
Resultados de evaluación de OpenClaw informados
El archivo README también incluye una sección de evaluación para un complemento de memoria OpenClaw en el conjunto de datos de diálogo de largo alcance LoCoMo10. La configuración utiliza 1.540 casos después de eliminar muestras de categoría 5 sin datos reales, informa OpenViking versión 0.1.18 y utiliza código semilla 2.0 como modelo. En los resultados informados, OpenClaw (memory-core) alcanza una tasa de finalización de tareas del 35,65 % con 24.611.530 tokens de entrada, mientras que OpenClaw + OpenViking Plugin (-memory-core) alcanza el 52,08 % con 4.264.396 tokens de entrada y OpenClaw + OpenViking Plugin (+memory-core) alcanza el 51,23 % con 2.099.622 fichas de entrada. Estos son resultados informados por el proyecto en lugar de puntos de referencia independientes de terceros, pero se alinean con el objetivo de diseño del sistema: mejorar la estructura de recuperación y al mismo tiempo reducir el uso innecesario de tokens.
Detalles de implementación
Los requisitos previos documentados son Python 3.10+, Go 1.22+ y GCC 9+ o Clang 11+, con soporte para Linux, macOS y Windows. La instalación está disponible a través de pip install openviking –upgrade –force-reinstall, y hay una CLI de Rust opcional llamada ov_cli que se puede instalar mediante script o compilarse con Cargo. La implementación de OpenViking requiere dos capacidades de modelo: un modelo VLM para la comprensión de imágenes y contenidos, y un modelo de incrustación para la vectorización y la recuperación semántica. Las rutas de acceso de VLM admitidas incluyen Volcengine, OpenAI y LiteLLM, mientras que las configuraciones de servidor de ejemplo incluyen incrustaciones de OpenAI a través de text-embedding-3-large y un ejemplo de OpenAI VLM usando gpt-4-vision-preview.
Conclusiones clave
OpenViking trata el contexto del agente como un sistema de archivos, unificando memoria, recursos y habilidades bajo una estructura jerárquica en lugar de un almacén plano estilo RAG. Su canal de recuperación es recursivo y tiene en cuenta los directorios, y combina el posicionamiento del directorio con la búsqueda semántica para mejorar la precisión del contexto. Utiliza carga de contexto por niveles L0/L1/L2, por lo que los agentes pueden leer los resúmenes primero y cargar el contenido completo solo cuando sea necesario, lo que reduce el uso de tokens. OpenViking expone trayectorias de recuperación, lo que hace que la selección de contexto sea más observable y más fácil de depurar que los flujos de trabajo RAG de caja negra estándar. También admite la iteración de memoria basada en sesiones, extrayendo memoria a largo plazo de conversaciones, llamadas a herramientas e historial de ejecución de tareas.
Consulte el repositorio. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 120.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.