About this project
OpenViking is an open-source context database for AI agents, published by volcengine. It aims to give agents a persistent place to store knowledge, remember users, and reuse experience across sessions, unifying agent memory, knowledge RAG, and skills in one system.
Core concept: context is organized as a virtual filesystem under the viking:// URI scheme. Agents operate on it with familiar file-like commands such as ls, tree, read, write, find, search, and grep, browsing directories, reading or editing content, and searching within a directory scope. Directory summaries support on-demand loading.
Context types include resources (documents, repositories, web pages), memories (user preferences and experience), and skills (definitions of how to perform tasks). Each item has a viking:// URI for browsing and retrieval.
Layered loading: directories carry L0 abstracts (one-sentence summaries for relevance checks), L1 overviews (structure and key points for planning), and L2 full details loaded only when needed. This is intended to reduce tokens and latency by letting agents judge relevance before reading full files.
Retrieval: vector search finds candidate directories, then explores their contents. The find command runs a query directly, while search can use session context to plan retrieval. The README references research on directory-aware query and maintenance (TrieHI) and on token-efficient RAG over structured documents (VikingRAG).
Sessions and memory: committing a session archives the conversation and starts background extraction. Memory policies control what is retained, and candidates are compared with existing memories for creation, merging, or skipping. With VikingBot enabled, ov compile uses a skill to organize source material into a wiki, knowledge graph, or report.
Quick start requires Python 3.10+ plus access to an embedding model and a VLM (cloud or local). Installation is via pip install openviking, followed by openviking-server init, doctor, and start. Configuration is written to ~/.openviking/ov.conf, with supported providers including Volcengine, OpenAI, Codex OAuth, Kimi, GLM, and local Ollama. The package includes the ov CLI for adding resources, checking task status, listing and tree-viewing the filesystem, and running find/grep queries.
Integrations: native integrations are documented for Claude Code, Codex, Cursor, TRAE, OpenClaw, Hermes, OpenCode, pi, DeerFlow, DSH, Doubao Work, and LangChain/LangGraph, using hooks, MCP, plugins, or built-in support. General integration paths include Agent Plugins 1.0 and MCP clients. SDKs are provided for Python, Go, and TypeScript, along with an HTTP API.
Other components: a beta desktop app for macOS and Windows x64 that configures local agent integrations, inspects recall and capture events, and syncs local memories and skills; VikingBot, an agent framework built on OpenViking, installable via pip install "openviking[bot]" and started with openviking-server --with-bot plus ov chat; and a web studio for browsing context and trying semantic search, also available as a hosted demo.
Deployment: the open-source server runs under AGPLv3 with no activation key, supports accounts and user isolation plus opt-in resource ACLs, and can be deployed via Docker. Authentication should be configured before exposing it beyond localhost. Commercial editions include a managed SaaS on Volcano Engine and a self-managed/BYOC edition with distributed deployment and official support.
The README reports benchmark evaluations on long-conversation user memory (LoCoMo) and multi-turn agent tasks (tau2-bench), with reproduction scripts in the benchmark directory. It also lists partner projects and community channels (Lark, WeChat, Discord, X). Licensing differs by component: main project AGPLv3, crates/ov_cli and examples Apache 2.0, third_party under their original licenses.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.