volcengine /OpenViking

Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.

★ 41,910⑂ 3,429👁 109⑃ 5,419● 1,681▤ 105◈ 107
PythonAGPL-3.0Created 2026-01-05openviking.ai
41,910
stars
+66+529
3,429
forks
109
watchers
5,419
prs
1,681
issues
105
releases
107
discussions

README

The Context Database for AI Agents

English / 中文 / 日本語

Website · Live Demo · GitHub · Issues · Docs · Blog


  
  
  
  
  
  



  



   Lark ·
   WeChat ·
   Discord ·
   X








 What is OpenViking

OpenViking is an open-source context database for AI agents — one filesystem for everything an agent knows: knowledge, memory, and skills.

Most agent memory is a black box: text goes in, embeddings come out, and nobody can see what was actually stored. OpenViking organizes context as a virtual filesystem under viking:// instead. Agents navigate it like files — ls, tree, read, write, grep — and you can open any directory to inspect and edit what your agent knows. Every directory carries a generated summary, so agents can scan summaries first and decide what to read.


  
    
    
  


Try OpenViking Studio in your browser, no installation required. Self-host Web Studio.

 Why OpenViking

- One filesystem for knowledge, memory, and skills. Resources hold documents and code; memories retain user preferences and experience; skills define how to perform tasks — not just extracted facts, but the full context, each with a viking:// URI for browsing and retrieval. → Viking URI · Context types
- Search a directory, not the whole index. Scope semantic search to a project or memory subtree instead of scanning a flat vector pool. find runs a query directly; search plans retrieval from session context. → Retrieval
- Read the summary before the source. Generated directory abstracts (L0) and overviews (L1) let agents judge relevance before opening full content (L2). → Context layers
- Sessions become files you can read. Committing a session archives the conversation and extracts memories as Markdown you can inspect, edit, and merge. With VikingBot enabled, ov compile organizes source material into a wiki, knowledge graph, or report. → Sessions · Context compilation

Architecture · Design rationale


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:

- L0 (Abstract): a one-sentence summary for quick relevance checks.
- L1 (Overview): core information and usage scenarios for planning.
- L2 (Details): the full original data, read only when needed.

Semantically processed directories carry L0/L1 summaries, so agents can judge relevance before reading full files:


viking://resources/my_project/
├── .abstract.md            L0: quick relevance check
├── .overview.md            L1: structure and key points
└── docs/
    ├── .abstract.md
    ├── .overvi

Top issues

Discussions

Latest release

v0.5.3 v0.5.3 2026-11-02
OpenViking v0.5.3

 中文

OpenViking v0.5.3 在 v0.5.2.1 之上合入 98 个提交,重点是 Rules(Beta)、存储与路径锁可靠性、鉴权与账户管理、Gateway 多副本、Compile 加固和 Agent 插件改进。本版本包含少量管理接口与旧 Session 兼容的破坏性变更,升级前请阅读下方说明。配套发布 [email protected]。

 重点更新

- Rules(Beta):新增 Rule 服务,并向 Agent 暴露 openviking_rule_search 工具,附中英文指南与 API 参考(6364、6613)。
- 存储与路径锁:新增事务型 SQLite path lock、按 scope 批量刷新 Redis 租约、拒绝跨 scope 的 Tree 锁与路径别名绕过、令牌丢失后撤销租约授权、Provider 迁移后恢复持久化交接;修复递归删除导致 PathLock 提前失效、中文路径旧锁交接恢复;新增可选 Redis 目录 TTL、多写 IOPS 优化(6679、6665、6685、6687、6704、6745、6631、6620、6392、6646)。
- 鉴权与账户:支持用户自助轮换 API Key;管理员列表只显示调用者自己的 user key;校验身份角色;支持角色降级与大小写不敏感输入;Gro

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON