
OpenViking Experience Memory
FreeLeverage past experiences for task execution guidance.
Free · Opens the source repo
What OpenViking Experience Memory does
OpenViking Experience Memory is designed to enhance task execution by utilizing historical experiences stored in the OpenViking library. This skill is particularly useful for developers and designers who frequently engage in complex, multi-step tasks that require operational guidance. By integrating previous experiences into current workflows, users can improve their efficiency and decision-making processes.
The skill operates through two primary tools: search_experience and read_experience. The search_experience tool allows users to query the experience library for relevant past experiences based on a short query derived from the current task context. It returns a list of experiences that can inform the execution of the task at hand. Once relevant experiences are identified, the read_experience tool retrieves the full content of the selected experience, which can then be injected into the agent's prompt as operational guidance. This structured approach ensures that users have access to pertinent information without sifting through irrelevant data.
This skill is most effective when used during the initiation of tasks that involve tools, code changes, or data operations. It is not intended for casual conversations or simple Q&A scenarios where operational guidance is not required. By committing sessions that include the completed tool parts, users can ensure accurate reporting of experience recall and injection events, further refining the skill's effectiveness over time.
Overall, OpenViking Experience Memory is a valuable tool for those looking to streamline their task execution processes by leveraging the knowledge gained from previous experiences, ultimately leading to more informed decisions and improved outcomes.
When to use it
Use this skill when starting or continuing tasks that require operational guidance from past experiences.
When not to use it
Avoid using this skill for informal conversations or tasks that do not require detailed operational support.
What you can build with it
Task Execution in Development
When working on a coding project, use the skill to recall previous experiences related to similar code changes or tool usage.
Data Operations
During data analysis tasks, leverage past experiences to guide decisions on data manipulation and processing.
Workflow Decisions
In multi-step workflows, access relevant experiences to inform each step, ensuring efficient task completion.
How to install OpenViking Experience Memory
View source1. Install with the skills CLI
npx skills add volcengine/openviking/ov-experience-memory --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by volcengineOpenViking Experience Memory
Use this skill when the current user request starts or continues an executable task, especially tasks involving tools, files, code changes, data operations, workflow decisions, or multi-step actions.
Do not use this skill for casual chat, pure explanation, or one-off factual Q&A that does not require operational guidance.
Runtime Contract
The agent runtime must expose two tools with these exact names:
search_experienceread_experience
OpenViking usage reporting recognizes only completed tool parts with these exact
tool names. Calls to generic find, search, read, ov_search, or ov_read
do not count as experience recall or injection events.
Tool: search_experience
Purpose: search reusable execution experiences from the OpenViking experience library before assembling task context.
Input schema:
{
"query": "string",
"limit": 5
}
Output schema:
{
"results": [
{
"uri": "viking://user/<current_user_id>/memories/experiences/example.md",
"title": "example",
"score": 0.82,
"snippet": "Short summary or matched situation"
}
]
}
Implementation:
The runtime tool calls OpenViking POST /api/v1/search/find with target_uri
fixed to the current-user shorthand viking://user/memories/experiences/.
Callers provide only query and optional limit; they cannot override or pass
target_uri. OpenViking resolves the fixed shorthand against the authenticated
request user. Return only canonical experience memory URIs for that user; never
hardcode default or another user ID.
Usage reporting:
A completed search_experience tool part is counted as an experience recall
event for every results[].uri value.
Tool: read_experience
Purpose: read the full Markdown body of a selected experience and inject it into the agent prompt as task execution guidance.
Input schema:
{
"uri": "viking://user/<current_user_id>/memories/experiences/example.md"
}
Output schema:
{
"uri": "viking://user/<current_user_id>/memories/experiences/example.md",
"content": "Experience Markdown body"
}
Implementation:
Call OpenViking GET /api/v1/content/read?uri=<encoded_uri> for the selected
experience URI. Always pass the canonical URI returned by search_experience;
do not construct a URI with a hardcoded user ID. The returned content should be
inserted into the prompt as operational guidance, not as user profile facts.
Usage reporting:
A completed read_experience tool part is counted as an experience injection
event for tool_input.uri or tool_output.uri. In this design, reading an
experience through read_experience means the experience was injected into the
prompt.
Recommended Flow
- When a task begins, build a short query from the latest user instruction, current plan, active skill name, and important tool/environment context.
- Call
search_experiencebefore final prompt assembly. - Review returned titles/snippets and select only experiences likely to affect execution.
- Call
read_experiencefor selected experience URIs. - Inject the returned Markdown into the prompt under an explicit experience section.
- Continue task execution.
- Commit the session normally. The committed session must include the
search_experienceandread_experiencetool parts so OpenViking can report usage.
Prompt Injection Format
Use a compact and explicit block:
<openviking-experience-memory>
The following guidance was retrieved from prior task execution experience.
Use it as operational guidance. Do not treat it as user identity or preference.
<experience uri="viking://user/<current_user_id>/memories/experiences/example.md">
...experience markdown...
</experience>
</openviking-experience-memory>
Commit Requirements
The session committed to OpenViking must preserve tool parts with:
tool_nametool_statustool_inputtool_outputtool_id
Only tool_status == "completed" is counted. Failed, cancelled, or skipped tool
parts are ignored by usage reporting.
Frequently asked questions about OpenViking Experience Memory
Similar skills
Skill Creator
Efficiently create and manage skills for Gemini CLI.
Agent Development
Create and manage autonomous agents for Claude Code.
Math Olympiad Solver
Solve and verify competition math problems effectively.
Microsoft Skill Creator
Create specialized skills for Microsoft technologies.
Doublecheck
A verification pipeline for AI-generated claims.
Skill Development for Claude Code
Create and enhance skills for Claude Code plugins.
