Skip to main content
Viking URI is the unified resource identifier for all content in OpenViking. It provides a filesystem-like abstraction that allows Agents to navigate, browse, and manipulate context through deterministic paths and standard filesystem commands.

URI Format

All resources in OpenViking are identified using the viking:// scheme:
string
required
Always viking - identifies this as an OpenViking resource
string
required
Top-level namespace: resources, user, agent, session, queue, or temp
string
Resource path within the scope, following filesystem conventions

Examples

Scopes

OpenViking organizes all content into six top-level scopes, each with different lifecycle and visibility characteristics:
Independent resources and knowledge
  • Lifecycle: Long-term persistent
  • Visibility: Global (can be shared across users/agents)
  • Content: Documentation, code repositories, articles, research papers
Examples:

Directory Structure

Moving away from traditional flat database thinking, OpenViking organizes all context as a filesystem. Agents can locate and browse data through deterministic paths and standard filesystem commands.

Complete Structure

URI Operations

Parsing URIs

Building URIs

API Usage

Targeting Specific Scopes

Filesystem Operations

Tree Traversal

Special Files

Each directory may contain special system-managed files. Do not manually edit these files.

Example: Relations File

Best Practices

Always include trailing slash when referring to directories:
Add resources to appropriate scopes:
Organize resources with clear, hierarchical paths:
Use URI patterns to filter search results:

Implementation Example

Architecture

System architecture and components

Context Types

Resource, Memory, and Skill types

Context Layers

L0/L1/L2 progressive loading

Storage

VikingFS and AGFS implementation