Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
> /plugin marketplace add volcengine/openviking> /plugin install openviking-memory@openviking
What's inside
Website ยท Live Demo ยท GitHub ยท Issues ยท Docs
๐ Join our Community
๐ฑ Lark Group ยท WeChat ยท Discord ยท X
OpenViking is an open-source context database for AI agents. It stores memories, resources, and skills as one virtual filesystem under the viking:// protocol, so an agent browses its own context with ls, tree, and find instead of querying a black-box vector store. Content is processed into three tiers โ L0 abstract, L1 overview, L2 details โ and loaded on demand. Every retrieval leaves a trajectory you can watch and debug. Full introduction: Getting started.
The OpenViking Studio playground โ a live demo you can open in the browser, no installation required.
viking:// URI. Agents locate and manipulate context deterministically, like a developer working with files. โ Viking URI ยท Context typesHow the pieces fit together: Architecture. The thinking behind the design: The Database Paradigm for Context Engineering.
viking://
โโโ resources/ # Resources: project docs, repos, web pages, etc.
โ โโโ my_project/
โ โโโ docs/
โ โ โโโ api/
โ โ โโโ tutorials/
โ โโโ src/
โโโ user/
โโโ {user_id}/
โโโ memories/
โ โโโ preferences/
โ โโโ writing_style
โ โโโ coding_habits
โโโ resources/
โ โโโ private_project/
โโโ skills/
โ โโโ search_code
โ โโโ analyze_data
โโโ peers/
โโโ web-visitor-alice/
The three loading tiers:
Each directory carries its own L0/L1 layers, so relevance can be judged before any full file is read:
viking://resources/my_project/
โโโ .abstract # L0: ~100 tokens - quick relevance check
โโโ .overview # L1: ~2k tokens - structure and key points
โโโ docs/
โโโ .abstract
โโโ .overview
โโโ api/
โโโ auth.md # L2: full content, loaded on demand
โโโ endpoints.md
OpenViking 0.3.22 has been evaluated on long-conversation user memory (LoCoMo) and multi-turn agent tasks (tau2-bench). Full results and setup details, including knowledge-base QA, are in the benchmark report; reproduction scripts live in ./benchmark.
๐ก Want to see it in action first? Try OpenViking Studio โ a live hosted instance with a context playground, semantic search, and a multi-agent hub. No installation required.
Requires Python 3.10 or higher.
pip install openviking --upgrade
openviking-server init # interactive wizard: providers, models, ov.conf
openviking-server doctor # validate setup
openviking-server # start (background: nohup openviking-server > openviking.log 2>&1 &)
init walks you through provider setup and writes ~/.openviking/ov.conf. It supports Volcengine, OpenAI, Codex OAuth, Kimi, GLM, and local Ollama โ for Ollama it can detect and install the runtime and pull models suited to your hardware. doctor checks the config file, Python version, provider connectivity, and disk space without a running server. Manual ov.conf templates, per-provider examples, environment variables, and Windows setup: Configuration guide ยท Quick start docs.
The install already includes the ov client CLI. With the server running:
ov status
ov add-resource https://github.com/volcengine/OpenViking # --wait
ov ls viking://resources/
ov tree viking://resources/volcengine -L 2
# wait some time for semantic processing if not --wait
ov find "what is openviking"
ov grep "openviking" --uri viking://resources/volcengine/OpenViking/docs/en
Next steps:
ov config), standalone CLI installs (npm / cargo), and advanced usage such as index rebuilding: CLI setupIntegrations inject OpenViking recall into your agent's context and auto-commit session memory:
Setup instructions for each agent: Agent integrations overview.
OpenViking Helper is a desktop console, currently in beta for macOS and Windows x64:
SKILL.md skills, then syncs them to OpenViking.Download:
VikingBot is an AI agent framework built on top of OpenViking:
pip install "openviking[bot]"
openviking-server --with-bot
ov chat # in another terminal
The official Docker image bundles VikingBot and starts it by default alongside the server and console UI. Details: VikingBot guide.
For production, run OpenViking as a standalone HTTP service โ see Server deployment and the Deployment guide.
Prefer not to operate it yourself? OpenViking Personal is officially hosted and ready to use, scales far beyond local hardware with VikingDB, and includes a free trial for up to 50 files; existing open-source users can move over with the migration tool. โ openviking.ai
Officially hosted on Volcano Engine, available in China.
OpenViking open-sources a subset of the core capabilities described in the VikingMem paper:
VikingMem: A Memory Base Management System for Stateful LLM-based Applications Jiajie Fu, Junwen Chen, Mengzhao Wang, Aoxiang He, Maojia Sheng, Xiangyu Ke, Yifan Zhu, and Yunjun Gao. arXiv:2605.29640, 2026. Accepted by VLDB 2026. ๐ Read the paper on arXiv
OpenViking welcomes collaboration with other open-source projects to build the context data ecosystem. Our confirmed partners include:
Interested in joining our partner list? Please submit an issue to our community to apply.
OpenViking is still in its early stages, and there is plenty left to build.
This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md
The OpenViking project uses different licenses for different components:
.agents/
plugins/
marketplace.json
.clang-format
.claude-plugin/
marketplace.json
.github/
dependabot.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
question.yml
PULL_REQUEST_TEMPLATE.md
scripts/
stage-memory-plugin-marketplace.sh
workflows/
_build.yml
_codeql.yml
_docs-deploy.yml
_docs.yml
_publish.yml
_test_full.yml
_test_lite.yml
api_test_effect.yml
api_test.yml
build-docker-image.yml
ci.yml
clawhub-dev-release.yml
controlplane-mcp-release.yml
docs-tos.yml
docs.yml
oc2ov_test.yml
opencode-plugin-release.yml
pr.yml
python-langchain-release.yml
python-sdk-release.yml
release-tos.yml
release-vikingbot-first.yml
release.yml
rust-cli.yml
schedule.yml
typescript-sdk-release.yml
.gitignore
.pr_agent.toml
benchmark/
__init__.py
.gitignore
custom/
README.md
session_contention_benchmark.py
cuvs/
PRELIMINARY_RESULTS.md
README.md
run_collection_benchmark.py
run_index_benchmark.py
run_service_concurrency_benchmark.py
summarize_collection_runs.py
summarize_index_runs.py
summarize_service_runs.py
locomo/
claudecode/
config/
ov-hooks.json
ov-ingest.conf
ov-mcp.json
ov-qa.conf
sys-prompts/
ack.txt
summary.txt
eval.py
import_to_ov.py
ingest_e2e.py
ingest.py
judge.py
README.md
run_e2e.sh
run_prompted.sh
run_sdk_iso.sh
run_sdk_noiso.sh
scripts/
auto-capture.mjs
stat_judge_result.py
hermes/
eval.py
import_e2e.py
import_to_native.py
import_to_ov.py
judge.py
README.md
run_full_eval.sh
stat_judge_result.py
locomo_bad_case_questions.csv
mem0/
delete_user.py
eval.py
ingest.py
README.md
openclaw/
eval.py
import_to_ov.py
judge.py
run_full_eval.sh
stat_judge_result.py
openviking/
import_to_ov.py
judge.py
locomo_prompts.py
README.md
run_eval.py
stat_judge_result.py
README.md
supermemory/
delete_container.py
eval.py
ingest.py
README.md
vikingbot/
import_to_ov.py
judge.py
preflight_eval_config.py
preflight_eval_runtime.py
progress_utils.py
run_eval.py
run_full_eval.sh
stat_judge_result.py
longmemeval/
openviking/
import_to_ov.py
judge.py
longmemeval_prompts.py
README.md
run_eval.py
stat_judge_result.py
RAG/
.gitignore
config/
config.yaml
financebench_config.yaml
locomo_config.yaml
qasper_config.yaml
syllabusqa_config.yaml
ov.conf.example
README_zh.md
README.md
run.py
scripts/
__init__.py
download_dataset.py
prepare_dataset.py
run_sampling.py
sample_dataset.py
src/
__init__.py
adapters/
__init__.py
base.py
financebench_adapter.py
locomo_adapter.py
qasper_adapter.py
syllabusqa_adapter.py
core/
__init__.py
judge_util.py
llm_client.py
logger.py
metrics.py
monitor.py
vector_store.py
pipeline.py
retrieval/
grep/
vikingdb_bm25/
ai_wiki.txt
effectiveness/
step1_add_resource.py
step2_quality.py
performance/
step0_prepare_data.py
step1_add_resource.py
step2_reindex.py
step3_benchmark.py
README_CN.md
README.md
skillsbench/
skill_bench_eval.py
tau2/
__init__.py
common/
__init__.py
tau2_env/
__init__.py
tau2_environment.py
tau2_tool_provider.py
llm/
.gitignore
config/
baseline.yaml
fixed_first_user_bootstrap.yaml
no_memory.yaml
scope_prompts/
generic_memory_scope.md
template_indexed_trajectory.yaml
README.md
run_full_eval.sh
scripts/
build_fixed_first_user_fixture.py
run_eval.py
run_memory_v2_eval.py
setup_tau2_repo.sh
tau2_common.py
train/
__init__.py
_rollout_helpers.py
case_loader.py
experience_loader_template/
SKILL.md
README.md
restart_vikingbot_train_eval.sh
rollout_executor_native.py
rollout_executor_vikingbot.py
rollout_executor.py
run_batch_train_eval.sh
run_service.sh
service_app.py
vikingbot/
.gitignore
README.md
run_airline_2epochs.sh
run_full_test.sh
scripts/
commit_trajectory_to_memory.py
provision_openviking_user.py
run_eval_reward.sh
run_tau2_domain.sh
vikingbot_tau2_runner.py
setup_env.sh
vectordb_perf/
__init__.py
async_utils.py
README.md
run.py
bot/
.coveragerc
.dockerignore
.github/
workflows/
release.yml
test.yml
.gitignore
bridge/
package.json
src/
index.ts
server.ts
types.d.ts
whatsapp.ts
tsconfig.json
demo/
werewolf/
Cubic_11_1.010_R.ttf
GeistPixel-Square.woff2
README.md
SOUL-god.md
SOUL-player.md
start_werewolf_demo.py
werewolf_server.py
werewolfUI.html
deploy/
docker/
build-image.sh
build-multiarch.sh
deploy_langfuse.sh
deploy.sh
docker-entrypoint.sh
Dockerfile
image_upload.example.yaml
image_upload.sh
langfuse/
docker-compose.yml
README.md
stop.sh
Dockerfile
ecs/
README.md
vke/
deploy.sh
k8s/
deployment.yaml
pvc-nas-example.yaml
pvc-tos-example.yaml
pvc-tos.yaml
README.md
vke_deploy.example.yaml
docs/
en/
concepts/
01-architecture.md
02-agent-capabilities.md
03-channels-and-gateway.md
04-openviking-integration.md
05-channel.md
zh/
concepts/
01-architecture.md
02-agent-capabilities.md
03-channels-and-gateway.md
04-openviking-integration.md
05-channel.md
design/
rfc-openviking-cli-ov-chat.md
vikingbot-feedback-observability-design.md
vikingbot-langfuse-local-setup.md
vikingbot-openviking-context-plan.md
license/
LICENSE
package-lock.json
package.json
README_CN.md
README.md
scripts/
clean_vikingbot.sh
install_local_openclaw_plugin.sh
kill_openviking_server.sh
restart_openviking_server.sh
start_vikingbot_in_ecs.sh
test_all.sh
test_restart_openviking_server.sh
tests/
conftest.py
example.py
experience_data_mini.json
test_agent_loop_outcome.py
test_channel_delivery_metadata.py
test_channel_sender_name.py
test_chat_functionality.py
test_compile.py
test_feedback_stats.py
test_gateway_startup_security.py
test_image_format.py
test_image_tool_sandbox.py
test_langfuse_outcome_metadata.py
test_minimax_provider.py
test_openapi_auth.py
test_openviking_api_key_type.py
test_outcome_evaluator.py
test_sandbox_startup.py
test_skills_metadata.py
test_subagent_skills_context.py
test_werewolf_server_security.py
vikingbot/
__init__.py
__main__.py
agent/
__init__.py
context.py
loop.py
memory.py
skills.py
subagent.py
tools/
__init__.py
base.py
compile.py
cron.py
factory.py
filesystem.py
image.py
mcp.py
message.py
ov_file.py
registry.py
shell.py
spawn.py
web.py
websearch/
__init__.py
base.py
brave.py
ddgs.py
exa.py
registry.py
tavily.py
bus/
__init__.py
events.py
queue.py
channels/
__init__.py
base.py
botchannel.py
chat.py
dingtalk.py
discord.py
email.py
feishu_test.py
feishu.py
manager.py
mochat.py
openapi_models.py
... 1600 moreShowing a partial view of a very large repo.
FAQ
openviking is a Claude Code plugin with 8 hand-picked skills for data work, indexed on Flowy. Install it with the command on its page. It includes cron, github-proxy, github. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.