Back to skills
SKILL.md
2249 02 Context Types F5058e2d
ASecurityBased 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.
- 9 stars
- 0 votes
- 0 copies
- 1 view
- Added October 11, 2026
Works with
Security analysis
100/100npx -y skills add tools-only/X-Skills --skill 2249-02-context-types_f5058e2d --agent claude-codeAre you the author of 2249 02 Context Types F5058e2d?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-2249-02-context-types-f5058e2d)# Context Types
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
| Type | Purpose | Lifecycle | Initiative |
|------|---------|-----------|------------|
| **Resource** | Knowledge and rules | Long-term, relatively static | User adds |
| **Memory** | Agent's cognition | Long-term, dynamically updated | Agent records |
| **Skill** | Callable capabilities | Long-term, static | Agent invokes |
## Resource
Resources are external knowledge that Agents can reference.
### Characteristics
- **User-driven**: Resource information actively added by users to supplement LLM knowledge, such as product manuals and code repositories
- **Static content**: Content rarely changes after addition, usually modified by users
- **Structured storage**: Organized by project or topic in directory hierarchy, with multi-layer information extraction
### Examples
- API docs, product manuals
- FAQ databases, code repositories
- Research papers, technical specs
### Usage
```python
# Add resource
client.add_resource(
"https://docs.example.com/api.pdf",
reason="API documentation"
)
# Search resources
results = client.find(
"authentication methods",
target_uri="viking://resources/"
)
```
## Memory
Memories are divided into user memories and Agent memories, representing learned knowledge about users and the world.
### Characteristics
- **Agent-driven**: Memory information actively extracted and recorded by Agent
- **Dynamic updates**: Continuously updated from interactions by Agent
- **Personalized**: Learned for specific users or specific Agents
### 6 Categories
| Category | Location | Description | Update Strategy |
|----------|----------|-------------|-----------------|
| **profile** | `user/memories/.overview.md` | User basic info | ✅ Appendable |
| **preferences** | `user/memories/preferences/` | User preferences by topic | ✅ Appendable |
| **entities** | `user/memories/entities/` | Entity memories (people, projects) | ✅ Appendable |
| **events** | `user/memories/events/` | Event records (decisions, milestones) | ❌ No update |
| **cases** | `agent/memories/cases/` | Learned cases | ❌ No update |
| **patterns** | `agent/memories/patterns/` | Learned patterns | ❌ No update |
### Usage
```python
# Memories are auto-extracted from sessions
session = client.session()
await session.add_message("user", [{"type": "text", "text": "I prefer dark mode"}])
await session.commit() # Extracts preference memory
# Search memories
results = await client.find(
"UI preferences",
target_uri="viking://user/memories/"
)
```
## Skill
Skills are capabilities that Agents can invoke, such as current Skills, MCP, etc.
### Characteristics
- **Defined capabilities**: Tool definitions for completing specific tasks
- **Relatively static**: Skill definitions don't change at runtime, but usage memories related to tools are updated in memory
- **Callable**: Agent decides when to use which skill
### Storage Location
```
viking://agent/skills/{skill-name}/
├── .abstract.md # L0: Short description
├── SKILL.md # L1: Detailed overview
└── scripts # L2: Full definition
```
### Usage
```python
# Add skill
await client.add_skill({
"name": "search-web",
"description": "Search the web for information",
"content": "# search-web\n..."
})
# Search skills
results = await client.find(
"web search",
target_uri="viking://agent/skills/"
)
```
## Unified Search
Based on Agent's needs, supports unified search across all three context types, providing comprehensive information:
```python
# Search across all context types
results = await client.find("user authentication")
for ctx in results.memories:
print(f"Memory: {ctx.uri}")
for ctx in results.resources:
print(f"Resource: {ctx.uri}")
for ctx in results.skills:
print(f"Skill: {ctx.uri}")
```
## Related Documents
- [Architecture Overview](./01-architecture.md) - System architecture
- [Context Layers](./03-context-layers.md) - L0/L1/L2 model
- [Viking URI](./04-viking-uri.md) - URI specification
- [Session Management](./08-session.md) - Memory extraction mechanism
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.