Skip to main content
Based on a simplified mapping of human cognitive patterns and engineering considerations, OpenViking abstracts context into three basic types: Resource, Memory, and Skill, each serving different purposes in Agent applications.

Overview

Resource

External knowledge and rules
  • Long-term, static
  • User adds

Memory

Agent’s cognition
  • Long-term, dynamic
  • Agent records

Skill

Callable capabilities
  • Long-term, static
  • Agent invokes

Resource

Resources are external knowledge that Agents can reference - such as documentation, code repositories, research papers, and product manuals.

Characteristics

Resource information actively added by users to supplement LLM knowledge, such as product manuals and code repositories.
Content rarely changes after addition, usually modified by users rather than Agents.
Organized by project or topic in directory hierarchy, with multi-layer information extraction (L0/L1/L2).

Examples

  • API documentation and product manuals
  • FAQ databases and code repositories
  • Research papers and technical specifications
  • Web pages and articles

Usage

Storage Structure

Memory

Memories are divided into user memories and Agent memories, representing learned knowledge about users and the world.

Characteristics

Memory information actively extracted and recorded by Agent from interactions.
Continuously updated from interactions by Agent, reflecting learning and adaptation.
Learned for specific users or specific Agents, creating personalized experiences.

6 Memory Categories

OpenViking extracts memories into 6 categories, each with different update strategies:

User Memories

User basic information and identityStored in viking://user/{user_id}/.overview.mdExamples:
  • Name, role, occupation
  • Technical background
  • Communication style
Update: Appendable (can add new information)

Agent Memories

Specific problems and solutionsStored in viking://agent/{agent_id}/memories/cases/Examples:
  • How to debug a specific error
  • Solution to a particular API integration issue
  • Workaround for a known limitation
Update: Immutable (each case is independent)

Usage

Skill

Skills are capabilities that Agents can invoke, defined using the Claude Skills protocol format.

Characteristics

Tool definitions for completing specific tasks, with clear input/output specifications.
Skill definitions don’t change at runtime, but usage memories related to tools are updated in memory.
Agent decides when to use which skill based on task requirements.

Storage Location

Usage

OpenViking supports unified search across all three context types, providing comprehensive information based on Agent’s needs.

Context Type Implementation

Architecture

System architecture and data flow

Context Layers

L0/L1/L2 progressive loading model

Viking URI

URI specification and structure

Session Management

Memory extraction mechanism